arcgis总结——网络分析服务的发布以及路径规划

来源:互联网 发布:手机重装系统后数据恢复 编辑:程序博客网 时间:2024/06/01 18:57

       说明:不方便截图,发布步骤全文字描述

       这里只说明通过图层文件shapefile如何生成network dataset从而发布网络分析服务,对于通过数据库的方式这里不做说明

       1、打开arcCatalog

       2、点击菜单customize->extensions,勾选network analyst

       3、在需要创建network dataset的图层上右键,点击new network dataset。如果不进行第二部操作,这里的new network dataset则为灰色的

       4、如果没有什么特殊要求,全部直接下一步即可

       5、打开arcMap

       6、点击菜单customize->extensions,勾选network analyst

       7、点击菜单customize->toolbar,勾选network analyst

       8、这个时候可以看到network analyst的工具栏,但是选项出了options之外都是灰色的

       9、鼠标右键图层,选择add data,选中之前建立的network dataset

       10、这个时候network analyst工具栏可以使用了,点击new route,这个时候则会生成路径图层

       11、点击菜单file->share as->server

       12、同发布地图服务一样,一直到service editor窗口

       13、在service editor窗口中点击Capabilities,勾选Network Analysis

       14、接下来的步骤和发布地图服务一样


       路径规划也是通过调用rest服务实现

       前端关键代码如下:

      

function solveRoute(startPos,endPos){  <pre name="code" class="javascript">   dojo.xhrGet({     url:'http://testtest:8080/arcgisDemo/solveRoute?startPos='+startPos+'&endPos='+endPos,     load:function(data){       var json=dojox.json.ref.fromJson(data);       showResults(json.candidates[0].location.x+";"+json.candidates[0].location.y);     }   });}

      后端servlet关键代码如下:

    

@Overrideproptected void doGet(  HttpServletRequest request,  HttpServletResponse response){  response.setContentType("text/html;charset=UTF-8");  response.setContentType("application/json;charset=UTF-8");  String startPos=request.getParameter("startPos");  String endPos=request.getParameter("endPos");  PrintWriter out=null;  try{      String rs=ClientUtil.executeHttp("http://server_url:6080/arcgis/rest/services/serverName/NAServer/Route/solve?stops="+startPos.split(",")[0]+"%2C"+startPos.split(",")[1]+"%3B"+endPos.split(",")[0]+"%2C"+endPos.split(",")[1]+"&barriers=&polylineBarriers=&polygonBarriers=&outSR=&ignoreInvalidLocations=true&accumulateAttributeNames=&impedanceAttributeName=Length&restrictionAttributeNames=&attributeParameterValues=&restrictUTurns=esriNFSBAllowBacktrack&useHierarchy=false&returnDirections=false&returnRoutes=true&returnStops=false&returnBarriers=false&returnPolylineBarriers=false&returnPolygonBarriers=false&directionsLanguage=en-US&directionsStyleName=&outputLines=esriNAOutputLineTrueShapeWithMeasure&findBestSequence=false&preserveFirstStop=false&preserveLastStop=false&useTimeWindows=false&startTime=0&outputGeometryPrecision=&outputGeometryPrecisionUnits=esriDecimalDegrees&directionsOutputType=esriDOTComplete&directionsTimeAttributeName=&directionsLengthUnits=esriNAUMiles&returnZ=false&f=pjson");      out=response.getWriter();      out.write(rs);  }catch(Exception e){      e.printStactTrace();  }finally{      if(out!=null){      out.close();  }}


0 0