ArcGIS GraphicsLayer层的特殊要求

如果你要使用GraphicsLayer这个绘图层,那么你需要注意自己的布局的模式不可以使用:layout="absolute"

如果你使用了这个布局,那么你的GraphicsLayer层可能会无法使用:比如下面的程序就是因为设置了 layout="absolute"而无法使用Draw工具去画点,线,以及面的。


<?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="DrawToolbar"
				styleName="plain"
				layout="absolute"
				>

	<mx:Script>
		<![CDATA[
			import mx.events.ItemClickEvent;
			private function itemClickHandler(event:ItemClickEvent):void {
				switch(event.label)
				{
					case "Point":
					{
						drawToolBar.activate(Draw.MAPPOINT);
						break;
					}
					case "Multipoint":
					{
						drawToolBar.activate(Draw.MULTIPOINT);
						break;
					}
					case "Line":
					{
						drawToolBar.activate(Draw.LINE);
						break;
					}
					case "Polyline":
					{
						drawToolBar.activate(Draw.POLYLINE);
						break;
					}
					case "FreeHand Polyline":
					{
						drawToolBar.activate(Draw.FREEHAND_POLYLINE);
						break;
					}
					case "Rectangle":
					{
						drawToolBar.activate(Draw.EXTENT);
						break;
					}

				}

			}
		]]>
	</mx:Script>

	<!-- Symbol for all points-->
	<esri:SimpleMarkerSymbol id="sms" style="square" color="0xFF0000" size="11"/>

	<!-- Symbol for all lines -->
	<esri:SimpleLineSymbol id="sls" style="dash" color="0xFF0000" width="2"/>

	<!-- Symbol for all polygons (note: rectangle only supports solid fill style)-->
	<esri:SimpleFillSymbol id="sfs" style="diagonalcross">
		<esri:outline>
			<esri:SimpleLineSymbol color="0xFF0000" width="2" />
		</esri:outline>	
	</esri:SimpleFillSymbol>

	<esri:Draw id="drawToolBar" map="{myMap}" graphicsLayer="{myGrapicLayer}" markerSymbol="{sms}" lineSymbol="{sls}" fillSymbol="{sfs}"/>

	<mx:ControlBar width="100%" horizontalAlign="center">
		<mx:ToggleButtonBar id="tbb"
							creationComplete="tbb.selectedIndex =-1"
							itemClick="itemClickHandler(event)"
							valueCommit="if(tbb.selectedIndex==-1){drawToolBar.deactivate()}"
							toggleOnClick="true"
							>
			<mx:dataProvider>
				<mx:Array>
					<mx:String>Point</mx:String>
					<mx:String>Multipoint</mx:String>
					<mx:String>Line</mx:String>
					<mx:String>Polyline</mx:String>
					<mx:String>FreeHand Polyline</mx:String>
					<mx:String>Polygon</mx:String>
					<mx:String>Freehand Polygon</mx:String>
					<mx:String>Rectangle</mx:String>
				</mx:Array>
			</mx:dataProvider>

		</mx:ToggleButtonBar>
	</mx:ControlBar>

	<esri:Map id="myMap">
		<esri:extent>
			<esri:Extent xmin="15" ymin="25" xmax="40" ymax="70">
				<esri:SpatialReference wkid="4326"/>
			</esri:Extent>
		</esri:extent>
		<esri:ArcGISDynamicMapServiceLayer
										   url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"/>
		<esri:GraphicsLayer id="myGrapicLayer"/>
	</esri:Map>

	<mx:TraceTarget includeCategory="true" includeLevel="true"/>
</mx:Application>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值