ArcGIS API for Flex:IdentifyTask 使用指南

需积分: 9 2 下载量 178 浏览量 更新于2024-09-14 收藏 58KB DOC 举报
"arcgisapiforflex开发入门(六):使用identify方法进行地图交互" 在GIS应用开发中,`identify`是一个非常重要的功能,它允许用户查询地图上的特定对象并获取相关信息。在ArcGIS API for Flex中,Esri提供了一个`IdentifyTask`类,使得开发者能够方便地实现这个功能。`IdentifyTask`是用于处理地图上指定位置的识别请求,并返回相关的图层信息。 首先,我们需要在Flex应用程序中创建一个`IdentifyTask`实例,通常通过`<esri:IdentifyTask>`标签完成。以下是一个示例: ```xml <esri:IdentifyTask id="identifyTask" identifyComplete="identifyCompleteHandler(event)" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer"/> ``` 这里的`url`属性指定了服务的地址,`identifyComplete`属性绑定到处理识别结果的事件处理函数。 当`IdentifyTask`执行完成时,它会触发`identifyComplete`事件。我们可以在事件处理函数中接收到识别的结果,并对其进行处理,例如将结果显示在图形图层上。 执行`IdentifyTask`前,需要创建一个`IdentifyParameters`对象来配置识别请求的参数。以下是AS3代码示例: ```actionscript var identifyParams:IdentifyParameters = new IdentifyParameters(); identifyParams.returnGeometry = true; identifyParams.tolerance = 3; identifyParams.width = 600; identifyParams.height = 550; identifyParams.geometry = geometry; identifyParams.layerOption = IdentifyParameters.LAYER_OPTION_ALL; identifyParams.mapExtent = map.extent; identifyTask.execute(identifyParams); ``` - `returnGeometry`:设置为`true`表示在结果中返回几何信息。 - `tolerance`:定义了鼠标点击或触摸点周围的容差半径,用于确定识别哪些地图对象。 - `width`和`height`:表示地图视口的尺寸,用于计算相对于地图的比例。 - `geometry`:表示用户交互的几何对象,通常是鼠标点击的点或者选择的区域。 - `layerOption`:定义要识别的图层选项,`IdentifyParameters.LAYER_OPTION_ALL`表示识别所有可见图层。 - `mapExtent`:当前地图的范围,用于限制识别的地理范围。 执行`execute`方法后,`IdentifyTask`将向服务器发送请求,并在完成时调用`identifyCompleteHandler`,其中`event`参数包含了识别的结果。 识别结果通常包含一个`IdentifyResult`对象列表,每个对象对应地图上被识别的一个图层和特征。你可以遍历这些结果,提取出所需的信息,如特征的名称、属性值等,并根据需求显示给用户。 总结起来,`IdentifyTask`和`IdentifyParameters`是ArcGIS API for Flex中用于地图对象识别的核心组件,它们帮助开发者实现与地图的交互,获取地图上的详细信息,是GIS应用开发中的重要工具。理解并熟练运用这两个类,可以极大地提升GIS应用的用户体验。