ArcGIS API for Flex —— ArcGIS中的图形层Graphics

ArcGIS API for Flex —— ArcGIS中的图形层Graphics

使用图形

当Flex的ArcGIS API是第一次发布,显示信息的唯一选择客户端是通过使用一个图形层。图形层允许您在地图上动态显示图形。图形可以由用户标记或输入一个任务,或者他们可以由应用程序来响应一个任务。例如,应用程序可能会将查询的结果添加到地图图形。

一个图形由以下组成:

Geometry(几何)— 几何确定图形的位置。它可以是点,多点,多段线,多边形或范围(extent).

Symbol(符号)—  符号的符号决定了图形的外观。它可以是一个标志符号(和多点几何),线符号(折线),或填充符号(多边形)

Attributes(属性)— 这些是描述图形的名称 - 值对。如果您创建的图形,你需要分配的属性。如果图形是响应创建一个图层执行的任务,图形自动包含图层的字段属性。某些任务用于限制返回到所得图形的属性。 Query.outFields是限制任务的返回的属性的属性的一个例子。

图形(Graphics )不需要所有上面列出的三个项目。例如,许多任务结果作为FeatureSet图形对象返回。让它们返回时这些图形具有为一个geometry和attributes,如果你想向地图添加图形,您必须定义一个Symbol

如果你编写代码,允许用户在地图上绘制图形,绘制工具可以使你的工作更容易。DrawTool是一个类,它可以帮助您获取用户在屏幕上绘制的几何。然后,您可以定义一个符号和应用于一个新的图形对象的几何形状。DrawTool示例演示了此工作流。

当你添加一个task 任务的结果,根据task的类型到地图上作为图形方式,如果你的task返回一个featrue集合,,你会得到一个数组的图形(FeatureSet.features),您可以指定graphicProvider GraphicsLayer。下面的代码展示了如何从QueryTask这样做结果。

这段代码定义了一个符号的图形层分配给所有图形添加到这一层。

private function doQuery():void {  
    queryTask.execute(query, new AsyncResponder(onResult, onFault));  
    function onResult(featureSet:FeatureSet, token:Object = null):void {  
        myGraphicsLayer.graphicProvider = featureSet.features;  
    }  
    function onFault(info:Object, token:Object = null):void {  
        Alert.show( info.toString() );  
    }  
}
<esri:SimpleMarkerSymbol id="sms" size="10" color="0xFF0000" style="circle" />  
<esri:GraphicsLayer id="myGraphicsLayer" symbol="{sms}"/>

其他任务没有提供Feature结果但提供几何,你可以使用它来创建一个图形。例如,查询一个位置定位,其属性是一个MapPoint几何位置。您可以使用此几何创建一个图形显示的地址位置,如下代码

for each (var candidate:AddressCandidate in candidates) {  
    if (candidate.score > 80) {  
        var myGraphic:Graphic = new Graphic();  
        myGraphic.geometry = candidate.location;  
        myGraphic.symbol = mySymbol;  
        myGraphic.attributes = { address: candidate.address,score: candidate.score, locatorName: candidate.attributes.Loc_name };  
        myGraphicsLayer.add(myGraphic);  
    }  
}

3.0及以上

从Flex ArcGIS的3.0版本的API,defaultGraphicsLayer属性被添加到映射类。这引用默认图形层,总是显示在地图中的所有其他层。这个图形层不能被删除。

扩展图形层

图形层是一个非常有用的类,它提供了大量的功能。可以添加到现有的功能提供的图形层通过扩展它来构建您自己的自定义图形层。一个例子为什么您可能想要创建一个可扩展的版本的图形层将是如果你有属性信息,应该对应于一个特定的地理位置,如人口普查数据与县多边形。可以创建一个自定义的图形层,利用ArcGIS Server服务和相应的几何属性信息可能来自另一个后端服务,结合他们在一个自定义的图形层中创建图形对象。FeatureLayer类介绍了ArcGIS 2.0版本的API Flex和扩展GraphisLayer类的是一个典型的例子。

概念与图形的概述

下面提供了高级步骤处理图形的API:

获取图形层。

创建或检索一个图形。

设置图形的几何(如果尚未设置)。

应用图形的象征。

将图片添加到图形层。

原文摘录:https://developers.arcgis.com/flex/guide/using-graphic.htm

未经允许请勿转载:程序喵 » ArcGIS API for Flex —— ArcGIS中的图形层Graphics

点  赞 (0) 打  赏
分享到: