ArcGIS API For Flex(查询数据)

查看原文:http://www.ibloger.net/article/353.html

Version 3.6

摘录地址: https://developers.arcgis.com/flex/guide/tutorial-query-your-data.htm

在本教程中,您将了解如何使用查询任务的工作,从一个ArcGIS服务查询数据。典型的情况是查询中涉及的过程的四个步骤:

  1. 设置Map和GraphicsLayer
  2. 使用查询过滤器设置QueryTask
  3. 执行QueryTask与用户输入
  4. 显示查询结果
在本教程中使用的例子是,在美国的一个州的名字键入一个查询任务。在此基础上输入的名称匹配的所有状态都显示在地图上。

总体代码片段

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   xmlns:esri="http://www.esri.com/2008/ags">
	
	<!-- 设置页面布局 -->
	<s:layout>
		<s:VerticalLayout gap="10" horizontalAlign="center" paddingBottom="20" paddingLeft="25" paddingRight="25" paddingTop="20"/>
	</s:layout>
	
	<fx:Script>
		<![CDATA[
			import com.esri.ags.FeatureSet;
			import mx.controls.Alert;
			import mx.rpc.AsyncResponder;
			
			private function doQuery():void {
				queryTask.execute(query, new AsyncResponder(onResult, onFault));
				
				function onResult(featureSet:FeatureSet, token:Object = null):void {
					// 在这个简单的实例中不需要写入代码,因为图形层是使用graphicProvider绑定到查询结果=“{queryTask.executeLastResult.features}”
					// graphicProvider="{queryTask.executeLastResult.features}"
				}
				
				function onFault(info:Object, token:Object = null):void {
					Alert.show(info.toString(), "Query Problem");
				}
			}
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<!-- 美国区域层 -->
		<esri:QueryTask id="queryTask" showBusyCursor="true" useAMF="false"
						url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5"/>
		<esri:Query id="query" outSpatialReference="{myMap.spatialReference}" returnGeometry="true" text="{qText.text}">
			
			<esri:outFields>
				<fx:String>MED_AGE</fx:String>
				<fx:String>POP2007</fx:String>
			</esri:outFields>
		</esri:Query>
	</fx:Declarations>
	
	<s:Panel height="60" backgroundColor="0xB2BFC6" title="查询层(搜索状态)">
		<s:layout>
			<s:HorizontalLayout/>
		</s:layout>
		<s:TextInput id="qText" width="100%" enter="doQuery()" text="California"/>
		<s:Button label="搜索" click="doQuery()"/>
	</s:Panel>
	
	<esri:Map id="myMap">
		<esri:extent>
			<esri:Extent xmax="-6815000" xmin="-14298000" ymax="7117000" ymin="2748000">
				<esri:SpatialReference wkid="102100"/>
			</esri:Extent>
		</esri:extent>
		
		<esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer"/>
		<esri:GraphicsLayer id="myGraphicsLayer" graphicProvider="{queryTask.executeLastResult.features}"/>
	</esri:Map>
	
</s:Application>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值