首页 > 其他 > 详细

网络分析

时间:2014-02-21 11:25:35      阅读:249      评论:0      收藏:0      [点我收藏+]

<mx:Script>

<![CDATA[

[Bindable]private var stops:FeatureSet = new FeatureSet([]);

[Bindable]private var barriers:FeatureSet = new FeatureSet([]);

[Bindable] private var lastRoute:Graphic;

private function mapClickHandler(event:MapMouseEvent):void

{

if (selectedBtn == addStopsBtn)

{

var stop:Graphic = new Graphic(event.mapPoint, stopSymbol);

inputsLayer.add(stop);

stops.features.push(stop);

}

else

{

var barrier:Graphic = new Graphic(event.mapPoint, barrierSymbol);

inputsLayer.add(barrier);

barriers.features.push(barrier);

}

if (stops.features.length > 1)

{

routeTask.solve(routeParams);

}

}

private function solveCompleteHandler(event:RouteEvent):void

{

var routeResult:RouteResult = event.routeSolveResult.routeResults[0];

lastRoute = routeResult.route;

}

]]>

</mx:Script>

<esri:RouteTask id="routeTask"

concurrency="last" requestTimeout="30" showBusyCursor="true"

solveComplete="solveCompleteHandler(event)" url="http://tasks.arcgisonline.com/ArcGIS/rest/services/NetworkAnalysis/ESRI_Route_NA/NAServer/Route"/>

<esri:RouteParameters id="routeParams" stops="{stops}" barriers="{barriers}"/>

<esri:Map mapClick="mapClickHandler(event)">

<esri:GraphicsLayer graphicProvider="{lastRoute}" symbol="{routeSymbol}"/>

<esri:GraphicsLayer id="inputsLayer"/>

</esri:Map>

在这个例子中,每次在地图上点击会添加一个停靠点或路障点,每次点击后都会调用RouteTask进行计算,计算的条件就是前面在地图上点击添加的停靠点及路障点;当然,由于设置了concurrency属性,因此只有最后一次调用可以返回结果。在这里顺便说一下concurrency属性,其实前面的那些功能类也都有这个属性,它是BaseTask基类的一个属性,它指示的是该功能是否允许多次调用,你可以选择多次调用、单次调用或者取消前面的调用仅执行最后一次调用。

下面让我们看一下路径分析的结果:

图 20 RouteTask的使用

7 Locator

网络分析

原文:http://www.cnblogs.com/GISerp/p/3558444.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!