REST API下的ArcServer 9.3.0与9.3.1使用Javascript实现路径分析的不同方式

上次说了,9.3.0中没有直接的对routeTask进行支持,但是跟ESRI的工程师联系了下,对方有解决方案,就是使用GeoProcessing Service来做,用了发现这个GPserver还是很强大的,可以做的事情还有缓冲区之类的,挺好。

使用9.3.0做路径分析的时候,数据要使用建模工具做一下,具体的模型做法及服务设置可参考这里

http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#geoprocessing/guide_-1963186772.htm

 

发布完数据后,在javascript中使用GPserver,可参考Geoprocessor Task的官方示例,关键代码如下:

_gpShortService = new esri.tasks.Geoprocessor(_GPShortRouteURL);

_routeParams = new esri.tasks.FeatureSet();

添加起点终点,在地图的onClick事件中处理

var stop = map.graphics.add(new esri.Graphic(evt.mapPoint, stopSymbol));

_routeParams.features.push(stop);

设置参数具体内容

var params = { "Feature_set":_routeParams };

在这里,“Feature_set”是根据不同的处理模型中定义的输入参数名称,可能不同

执行路径分析:

_gpShortService.execute(params,showRoute,errorHandler);

参数第一个不用说了,第二个是结果集处理,第三个是错误处理

如下:

showRoute(routeResults, messages)

路径结果按这样取出:routeResults[0].value.features[0];

然后对其setSymbol就可以显示在地图上了。

 

你可能感兴趣的:(REST API下的ArcServer 9.3.0与9.3.1使用Javascript实现路径分析的不同方式)