arcgis api for flex 开发入门(七)Geometry service 的使用<转>

arcgis api for flex 开发入门(七)Geometry service 的使用
Geometry service 顾名思义,就是提供针对几何层级的服务,比如说Project,  
Simplify , Buffer,Areas And Lengths , Lengths 等
详细信息可以到下面的地址去看一下
http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/Geo
metryServer
这个网址发布了上面5个Geometry service。
下面我们就来讲解如何在你的flex 地图中使用Geometry service,我们拿最常用
buffer来做例子。
首先 定义一个GeometryService
<esri:GeometryService id="myGeometryService"        
url="http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/Geometr
y/GeometryServer"/>
id 唯一标识了这个GeometryService,url指定了GeometryService的地址
和identify工具类似,要进行buffer操作我们先创建一个需要做buffer的几何,
然后定义一个BufferParameters ,然后执行buffer操作,最后将buffer的结果绘
制到GraphicsLayer上。
下面我们介绍一下BufferParameters参数的意义distances为buffer半径,
features 为需要做buffer的要素集合,unit为单位bufferSpatialReference为
buffer操作时的空间参照系。
设置完参数后,要添加buffer完成时间的EventListener,当buffer完成后我们就
可以处理这个buffer的结果了,如下面AS3脚本
               
var bufferParameters : BufferParameters = new BufferParameters();      
         bufferParameters.features = [point];               
bufferParameters.distances = [3000];               
bufferParameters.unit = BufferParameters.UNIT_METER;               
bufferParameters.bufferSpatialReference = new SpatialReference(         
                      02113);  myGeometryService.addEventListener
(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler);         
      myGeometryService.buffer( bufferParameters );
关键的一点,bufferParameters.features参数设置的features 一定要有空间参
考系,不然buffer不成功。
其余的绘制操作,将结果绘制到GraphicsLayer上的操作和上一讲基本相同,就不
再讲了。
完整代码:

Code

原文地址:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=35667&extra=page%3D4%26amp%3Borderby%3Ddateline

posted @ 2009-06-02 15:01  温景良(Jason)  Views(3394)  Comments(0Edit  收藏  举报