1.关键技术实现知识点:
(1)最近设施点的网络分析服务:http://localhost:6080/arcgis/rest/services/dlClosestFacility/NAServer/Closest%20Facility
(2)最近设施点分析的参数名称为:RouteClosestFacilityParameters,同样它也继承自BaseRouteParameters。其主要的参数(属性)有:
属性名称 Incidents 表示事件点 Facilities 表示设施点 Barriers 表示障碍点,还有线障碍:PolylineBarriers,面障碍:PolygonBarriers DefaultCutoff 表示默认终断值,即不会搜索超出该值的设施点(从事件点到设施点,反之同理) ReturnDirections 表示是否返回方向指南 DirectionsLanguage 表示返回方向指南使用的描述语言(默认与网络分析图层一致,NAServer中只有英语,其他语言需要自己安装) DirectionsLengthUnits 表示计算方向时使用的长度单位。默认与路径网络图层的设置一致。可用的值包括esriFeet,esriKilometers, esriMeters,esriMile,esriNauticalMiles和esriYards ReturnRoutes 表示是否返回设施点与事件点的路径 ReturnFacilities 表示是否返回设施点 ReturnIncidents 表示是否返回事件点 TravelDirection 表示路径的方向(从设施点到事件点还是事件点到设施点) UseHierarchy 表示是否启用等级属性 FacilityReturnType 表示设施返回类型,默认为FacilityReturnType.ServerFacilityReturnAll DefaultTargetFacilityCount 表示默认搜索的设施点个数
(3)初始化RouteTask:
//初始化事故点以及应急资源图层 ems.route.params = new esri.tasks.ClosestFacilityParameters(); ems.route.params.defaultCutoff= 7.0; ems.route.params.defaultTargetFacilityCount = 6.0; ems.route.params.returnFacilities=true; ems.route.params.returnIncidents=true; ems.route.params.returnRoutes=true; ems.route.params.returnDirections=true; ems.route.closestFacilityTask = new esri.tasks.ClosestFacilityTask(MapConfig.routeUrl);
2.整体实现的流程如下:
(1)点击地图某点,以该点为中心,以一定半径来画圆形(esri.geometry.Circle);
(2)以圆形的范围的geometry,作为query的geometry条件,查询餐饮点图层,获取范围内的餐饮点总数作为route.params.facilities参数值,中心点为route.params.incidents 参数值;
(3)初始化RouteTask的参数条件之后,可以执行附近设施点分析函数,获取最终的结果
ems.route.closestFacilityTask.solve(ems.route.params, function(solveResult){ if(solveResult.routes.length>0){ } },ems.route.routeError);