arcgis api for flex 开发入门(四)Darw控件的使用3sNews.Net——3S社区&资讯平台o4I[1o2`:yT}6f
arcgis api for flex 在客户端提供了强大的绘制功能,可以通过简单的调用来
完成复杂的绘制工作,达到很好的交互效果,提供完美的用户体验,感觉不出来
是在web上操作。3sNews.Net——3S社区&资讯平台W~3QC,Qz1w.f
下面我们就一起来实现绘制功能。3sNews.Net——3S社区&资讯平台7q:DT$U5M'|0P
首先,我们需要定义一个draw 控件,使用<esri:Draw>标签来完成创建工作,如
下面的代码3sNews.Net——3S社区&资讯平台.EB~!p!@+zAM
<esri:Draw id="drawToolbar" map="{myMap}"
graphicsLayer="{myGraphicsLayer}" />
6iRU|i0<esri:Draw >标签的map属性要绑定要你需要绘制的map上。graphicsLayer属性要
绑定到一个graphicsLayer上,所有绘制的结果都会添加到graphicsLayer上,
graphicsLayer的创建可以参考第二讲的内容。
7W[r2f.Y
[^0控件创建好了,我们下面就可以调用这个控件的函数来完成绘制任务。3sNews.Net——3S社区&资讯平台W OPw"|OhK
和上一讲一样,我们创建一个controlbar 来响应这些绘制的操作。3sNews.Net——3S社区&资讯平台
f"Z/YlS!s
<mx:ControlBar horizontalGap="0" paddingBottom="0" paddingTop="0">3sNews.Net——3S社区&资讯平台5XOU/Qsz fEl
<mx:Button label="点" click="drawToolbar.activate
(Draw.MAPPOINT)" />3sNews.Net——3S社区&资讯平台2?#_)[6F$i}
<mx:Button label="线" click="drawToolbar.activate(Draw.POLYLINE)"
/> 3sNews.Net——3S社区&资讯平台Z8e
hXb6H-ub;EG
<mx:Button label="流线" click="drawToolbar.activate
(Draw.FREEHAND_POLYLINE)" />
U C8pd7m
|0 <mx:Button label="矩形" click="drawToolbar.activate
(Draw.EXTENT)" />
i;S&zgEU0 <mx:Button label="多边形" click="drawToolbar.activate
(Draw.POLYGON)" />
R wQ{B{G%zk0 <mx:Button label="流多边形" click="drawToolbar.activate
(Draw.FREEHAND_POLYGON) "/> 3sNews.Net——3S社区&资讯平台+aulfY U.f
<mx:Button label="结束绘制" click="drawToolbar.deactivate
() "/> 3sNews.Net——3S社区&资讯平台]$[-x#ICM&Ma
</mx:ControlBar>
在button 的click 响应函数里,我们只需要调用draw控件的activate函数来激活
当前绘制工具就可以了。
K}N{/V7Te0当你不想绘制的时候,调用deactivate函数就ok了,释放掉当前选择的绘制工具
。
)w~6ZdG:IH0so easy,enjoy it;3sNews.Net——3S社区&资讯平台%w#P4E#?h`
效果:
e8].i(I-n sN0Flash:demo
1qbs$\
h%`0
完整代码:3sNews.Net——3S社区&资讯平台FCXn+QKQ%|,~'x
<?xml version="1.0" encoding="utf-8"?>3sNews.Net——3S社区&资讯平台mV.t A8T
<mx:Application
%qg7OpVt~I0 xmlns:mx="http://www.adobe.com/2006/mxml"3sNews.Net——3S社区&资讯平台
R"e
Kr\$F
xmlns:esri="http://www.esri.com/2008/ags"3sNews.Net——3S社区&资讯平台H.E&n2q-x{pQ
pageTitle="Using ArcGIS API for Flex to connect to a cached ArcGIS
Online service"
4A2}B2_ c0 styleName="plain">3sNews.Net——3S社区&资讯平台!uCTR&JG!{w
<esri:Draw id="drawToolbar" map="{myMap}"
graphicsLayer="{myGraphicsLayer}" />3sNews.Net——3S社区&资讯平台:?*x3ga)vrvx9M_
<esri:SpatialReference id="sr" wkid="4326"/>
Yt9}+lt#d#P$`9M0 <mx:ControlBar horizontalGap="0" paddingBottom="0" paddingTop="0">3sNews.Net——3S社区&资讯平台"jzM l{4Eu-t
<mx:Button label="点" click="drawToolbar.activate
(Draw.MAPPOINT)" />3sNews.Net——3S社区&资讯平台!JTG9ac
<mx:Button label="线" click="drawToolbar.activate
(Draw.POLYLINE)" /> 3sNews.Net——3S社区&资讯平台W/K_Z*j0x\9V}
<mx:Button label="流线" click="drawToolbar.activate
(Draw.FREEHAND_POLYLINE)" />3sNews.Net——3S社区&资讯平台7T3yH7\s$ee0b
<mx:Button label="矩形" click="drawToolbar.activate
(Draw.EXTENT)" /> 3sNews.Net——3S社区&资讯平台$KoDwA
<mx:Button label="多边形" click="drawToolbar.activate
(Draw.POLYGON)" />
4T:EtL#p)N)Wp0 <mx:Button label="流多边形" click="drawToolbar.activate
(Draw.FREEHAND_POLYGON) "/> 3sNews.Net——3S社区&资讯平台'x0]~+Uea
<mx:Button label="结束绘制" click="drawToolbar.deactivate
() "/>
R;n3H-q,D a%B{!Hi0 </mx:ControlBar>3sNews.Net——3S社区&资讯平台%a)v,PE_}5b
B|
<esri:Map crosshairVisible="true" id = "myMap">
,n,}T5uWD!`
aF2U0 <esri:extent>3sNews.Net——3S社区&资讯平台$LF}PLB.U%r
<esri:Extent id = "esriMapExtent" xmin="116"
ymin="39.5" xmax="116.5" ymax="40.5"/>3sNews.Net——3S社区&资讯平台c$Vn.B4R PLH
</esri:extent>
&H.l5So
r/zn[
]!j0 <esri:ArcGISTiledMapServiceLayer3sNews.Net——3S社区&资讯平台#B?9n0U F6kn
url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap
_World_2D/MapServer" />3sNews.Net——3S社区&资讯平台 F[:pA5xSb
<esri:GraphicsLayer id="myGraphicsLayer"
spatialReference="{sr}"/>
&mzq`8Uva#v/X.`0 </esri:Map>3sNews.Net——3S社区&资讯平台VIo)kl8?n6gV/s
</mx:Application>3sNews.Net——3S社区&资讯平台5Uh;u(xn]