服务区分析
服务区分析是为网络上指定的服务中心点查找其服务范围。例如:为网络上某点计算其 30 分钟的服务区,则结果服务区内,任意点出发到该点的时间都不会超过30分钟。
以长春数据为例,然后在地图中选择将要分析的服务中心点(支持多中心),根据选择服务中心点的顺序依次按照 400、500、600...递增的数值作为服务半径进行缓冲区分析。即第一个服务中心点的服务半径为 400,第二个服务中心店的服务半径为 500,依次类推。
服务区分析接口使用方法:
设置服务区分析参数 findServiceAreasParams,包括交通网络分析通用参数、途径站点等。
//添加中心点
var marker = L.marker([-3375, 5605]);
//网络分析结果参数
var resultSetting = new SuperMap.TransportationAnalystResultSetting({
//是否在分析结果中包含弧段要素集合
returnEdgeFeatures: true,
//返回的弧段要素集合中是否包含集合对象信息
returnEdgeGeometry: true,
//返回的结果中是否包含经过弧段ID集合
returnEdgeIDs: true,
//返回的分析结果总是否包含结点要素集合
returnNodeFeatures: true,
//返回的结点要素集合中是否包含集合对象信息
returnNodeGeometry: true,
//返回的分析结果中是否包含经过结点ID集合
returnNodeIDs: true,
//返回分析结果中是否包含行驶导引集合
returnPathGuides: true,
//返回结果中是否包含路由对象集合
returnRoutes: true
};
//网络分析通用参数
var analystParameter = new SuperMap.TransportationAnalystParameter({
//分析结果返回的内容
resultSetting: resultSetting,
//阻力字段的名称
weightFieldName: "length"
});
//服务区分析参数
var findServiceAreasParams = new SuperMap.FindServiceAreasParameters({
//服务站点数组
centers: [marker.getLatLng()],
//是否通过节点ID指定路径分析的结点
isAnalyzeById: false,
//交通网络分析通用参数。
parameter: analystParameter,
//每个服务站点提供服务的阻力半径
weights: weightsArray
});
定义服务区分析服务对象,用于将客户端设置的服务区分析服务参数(parameters)传递给服务端, 并接收服务端返回的动态分段分析结果数据。当向服务端发送请求并且服务端成功返回结果时,用户可对获得的服务区分析结果做相应处理。
//定义服务区分析服务
var serviceUrl = "http://support.supermap.com.cn:8090/iserver/services/transportationanalyst-sample/rest/networkanalyst/RoadNet@Changchun";
//创建服务区分析服务实例
var service = L.supermap.networkAnalystService(serviceUrl);
//向服务器发送请求,并获取返回的结果
service.findServiceAreas(findServiceAreasParams, function (serviceResult) {
//获取服务器返回的结果
var result = serviceResult.result;
});