arcgis api for flex 开发入门(四)Darw控件的使用
arcgis api for flex 在客户端提供了强大的绘制功能,可以通过简单的调用来
完成复杂的绘制工作,达到很好的交互效果,提供完美的用户体验,感觉不出来
是在web上操作。
下面我们就一起来实现绘制功能。
首先,我们需要定义一个draw 控件,使用<esri
raw>标签来完成创建工作,如
下面的代码
<esri
raw id="drawToolbar" map="{myMap}"
graphicsLayer="{myGraphicsLayer}" />
<esri
raw >标签的map属性要绑定要你需要绘制的map上。graphicsLayer属性要
绑定到一个graphicsLayer上,所有绘制的结果都会添加到graphicsLayer上,
graphicsLayer的创建可以参考第二讲的内容。
控件创建好了,我们下面就可以调用这个控件的函数来完成绘制任务。
和上一讲一样,我们创建一个controlbar 来响应这些绘制的操作。
<mx:ControlBar horiz paddingBottom="0" paddingTop="0">
<mx:Button label="点" click="drawToolbar.activate
(Draw.MAPPOINT)" />
<mx:Button label="线" click="drawToolbar.activate
(Draw.POLYLINE)" />
<mx:Button label="流线" click="drawToolbar.activate
(Draw.FREEHAND_POLYLINE)" />
<mx:Button label="矩形" click="drawToolbar.activate
(Draw.EXTENT)" />
<mx:Button label="多边形" click="drawToolbar.activate
(Draw.POLYGON)" />
<mx:Button label="流多边形" click="drawToolbar.activate
(Draw.FREEHAND_POLYGON) "/>
<mx:Button label="结束绘制" click="drawToolbar.deactivate
() "/>
</mx:ControlBar>
在button 的click 响应函数里,我们只需要调用draw控件的activate函数来激活
当前绘制工具就可以了。
当你不想绘制的时候,调用deactivate函数就ok了,释放掉当前选择的绘制工具。
完整代码:
Code <? xml version="1.0" encoding="utf-8" ?> < mx:Application xmlns:mx ="http://www.adobe.com/2006/mxml" xmlns:esri ="http://www.esri.com/2008/ags" pageTitle ="Using ArcGIS API for Flex to connect to a cached ArcGIS Online service" styleName ="plain" > < esri:Draw id ="drawToolbar" map ="{myMap}" graphicsLayer ="{myGraphicsLayer}" /> < esri:SpatialReference id ="sr" wkid ="4326" /> < mx:ControlBar horizontalGap ="0" paddingBottom ="0" paddingTop ="0" > < mx:Button label ="点" click ="drawToolbar.activate (Draw.MAPPOINT)" /> < mx:Button label ="线" click ="drawToolbar.activate (Draw.POLYLINE)" /> < mx:Button label ="流线" click ="drawToolbar.activate (Draw.FREEHAND_POLYLINE)" /> < mx:Button label ="矩形" click ="drawToolbar.activate (Draw.EXTENT)" /> < mx:Button label ="多边形" click ="drawToolbar.activate (Draw.POLYGON)" /> < mx:Button label ="流多边形" click ="drawToolbar.activate (Draw.FREEHAND_POLYGON) " /> < mx:Button label ="结束绘制" click ="drawToolbar.deactivate () " /> </ mx:ControlBar > < esri:Map crosshairVisible ="true" id = "myMap" > < esri:extent > < esri:Extent id = "esriMapExtent" xmin ="116" ymin ="39.5" xmax ="116.5" ymax ="40.5" /> </ esri:extent > < esri:ArcGISTiledMapServiceLayer url ="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap _World_2D/MapServer" /> < esri:GraphicsLayer id ="myGraphicsLayer" spatialReference ="{sr}" /> </ esri:Map > </ mx:Application > 原文地址:
本文转自温景良(Jason)博客园博客,原文链接:http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494543.html,如需转载请自行联系原作者