加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ArcGIS Flex Viewer 实现i查询

发布时间:2020-12-15 03:40:44 所属栏目:百科 来源:网络整理
导读:widget代码: ?xml version="1.0" encoding="utf-8"?viewer:BaseWidget 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:viewer="com.esri.viewer.*" xmlns:esri="

widget代码:

<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget 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:viewer="com.esri.viewer.*"
				   xmlns:esri="http://www.esri.com/2008/ags"
                   layout="absolute"
				   width="100%" height="100%"
                   >

	<fx:Style>
		@namespace esri "http://www.esri.com/2008/ags";
		@namespace mx "library://ns.adobe.com/flex/mx";
		
		esri|InfoWindow
		{
			backgroundAlpha: 0.8;
			backgroundColor: #353930;
			borderThickness: 0;
			infoPlacement: top;
			shadowAlpha: 0.5;
			shadowDistance: 10;
			upperRightRadius: 0;
		}
		mx|ToolTip
		{
			backgroundColor: #E4342A;
			color: #FFFFFF;
			fontFamily: "Helvetica";
			fontSize: 14;
		}
	</fx:Style>
    <fx:Script>
        <![CDATA[
			import com.esri.ags.FeatureSet;
			import com.esri.ags.Graphic;
			import com.esri.ags.events.GraphicEvent;
			import com.esri.ags.events.MapMouseEvent;
			import com.esri.ags.geometry.MapPoint;
			import com.esri.ags.layers.FeatureLayer;
			import com.esri.ags.layers.GraphicsLayer;
			import com.esri.ags.layers.Layer;
			import com.esri.ags.tasks.QueryTask;
			import com.esri.ags.tasks.supportClasses.Query;
			
			import mx.controls.Alert;
			import mx.rpc.AsyncResponder;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			import mx.core.Application;
			import mx.formatters.DateFormatter;
			import mx.managers.CursorManager;
			
			[Embed(source="assets/images/iMouse.png")]
			private var imageCursor:Class;
			
			private var isSearch:Boolean=true;
			private var dateFormatter:DateFormatter = new DateFormatter();
			
			private function msToDate(ms:Number,dateFormat:String,useUTC:Boolean):String
			{
				var date:Date = new Date(ms);
				if (date.milliseconds == 999) // workaround for REST bug
				{
					date.milliseconds++;
				}
				if (useUTC)
				{
					date.minutes += date.timezoneOffset;
				}
				
				if (dateFormat)
				{
					dateFormatter.formatString = dateFormat;
					var result:String = dateFormatter.format(date);
					if (result)
					{
						return result;
					}
					else
					{
						return dateFormatter.error;
					}
				}
				else
				{
					return date.toLocaleString();
				}
			}
			
			private function myMap_mapClickHandler(event:MapMouseEvent):void
			{
				map.defaultGraphicsLayer.clear();
				var query:Query = new Query();
				query.outSpatialReference = map.spatialReference;
				query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS;
				query.geometry = event.mapPoint;
				query.returnGeometry=true;
				var url:String=Application.application.currentURL+"/0";
				if(url.indexOf("TDCB")>-1){
					query.outFields=["DKBH","DKMC","DKWZ","DKZT","RKMJ","RKRQ","CKMJ","SYMJ"];
				}else{
					query.outFields=["QPH","TDJB","JZDJ","QPFW","MJ","FJDZ","DJRQ","KFCD"];
				}
				var queryTask:QueryTask=new QueryTask();
				queryTask.showBusyCursor=true;
				queryTask.url=url;
				queryTask.method=URLRequestMethod.POST;
				queryTask.execute(query,new AsyncResponder(onResult,onFault,null));
				function onResult(featureSet:FeatureSet,token:XMLList = null):void
				{
					map.defaultGraphicsLayer.clear();
					if(featureSet.features.length==0){
						map.infoWindow.hide();
						mx.controls.Alert.show("未查到");
					}
					if(url.indexOf("TDCB")>-1){
						for each (var graphic:Graphic in featureSet.features)
						{
							var p:Graphic=new Graphic();
							p.symbol=greenSymbol;
							p.geometry=graphic.geometry;
							map.defaultGraphicsLayer.add(p);
							var obj:Object=graphic.attributes;
							var poi2:PoiDetails2=new PoiDetails2();
							poi2.DKBH=obj.DKBH;
							poi2.DKMC=obj.DKMC;
							poi2.DKWZ=obj.DKWZ;
							poi2.DKZT=obj.DKZT;
							poi2.RKMJ=obj.RKMJ;
							var dateMS:Number = Number(obj.RKRQ);
							if (!isNaN(dateMS))
							{
								poi2.RKRQ=msToDate(dateMS,"YYYY-MM-DD",true);
							}
							poi2.CKMJ=obj.CKMJ;
							poi2.SYMJ=obj.SYMJ;
							map.infoWindowContent = poi2;
							map.infoWindow.show(event.mapPoint);
						}
					}else{
						for each (var graphic1:Graphic in featureSet.features)
						{
							var p1:Graphic=new Graphic();
							p1.symbol=greenSymbol;
							p1.geometry=graphic1.geometry;
							map.defaultGraphicsLayer.add(p1);
							var obj1:Object=graphic1.attributes;
							var poi:PoiDetails=new PoiDetails();
							poi.QPH=obj1.QPH;
							poi.TDJB=obj1.TDJB;
							poi.JZDJ=obj1.JZDJ;
							poi.QPFW=obj1.QPFW;
							poi.MJ=obj1.MJ;
							poi.FJDZ=obj1.FJDZ;
							var dateMS:Number = Number(obj1.DJRQ);
							if (!isNaN(dateMS))
							{
								poi.DJRQ=msToDate(dateMS,true);
							}
							poi.KFCD=obj1.KFCD;
							map.infoWindowContent = poi;
							map.infoWindow.show(event.mapPoint);
						}
					}
				}
				
				function onFault(info:Object,token:Object = null):void
				{
					map.defaultGraphicsLayer.clear();
					map.infoWindow.hide();
					mx.controls.Alert.show("查询失败");
				}
		
			}
			
			private function do_Click():void
			{
				if(isSearch){
					map.addEventListener(MapMouseEvent.MAP_CLICK,myMap_mapClickHandler);
					map.infoWindow.addEventListener(Event.CLOSE,function():void{map.defaultGraphicsLayer.clear();});
					CursorManager.setCursor(imageCursor)
					isSearch=false;
				}else{
					map.defaultGraphicsLayer.clear();
					map.infoWindow.hide();
					map.removeEventListener(MapMouseEvent.MAP_CLICK,myMap_mapClickHandler);
					CursorManager.removeAllCursors();
					isSearch=true;
				}
			}
        ]]>
    </fx:Script>
	<fx:Declarations>
		<esri:SimpleFillSymbol id="greenSymbol" alpha="0.2" color="0x009933"/>
	</fx:Declarations>
	<s:ToggleButton id="iSearchBtn" label="i查询" click="do_Click();" buttonMode="true" />
	
</viewer:BaseWidget>

弹出框代码:

<?xml version="1.0" encoding="utf-8"?>
<s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
		 xmlns:s="library://ns.adobe.com/flex/spark"
		 top="-27" >
	<fx:Script>
		<![CDATA[
			
			[Bindable]
			private var _QPH:String;
			[Bindable]
			private var _TDJB:String;
			[Bindable]
			private var _JZDJ:String;
			[Bindable]
			private var _QPFW:String;
			[Bindable]
			private var _MJ:String;
			[Bindable]
			private var _FJDZ:String;
			[Bindable]
			private var _DJRQ:String;
			[Bindable]
			private var _KFCD:String;
			
			public function get QPH():String
			{
				return _QPH;
			}
			public function set QPH(value:String):void
			{
				_QPH = "" + value;
			}
			public function get TDJB():String
			{
				return _TDJB;
			}
			public function set TDJB(value:String):void
			{
				_TDJB = "" + value;
			}

			public function get JZDJ():String
			{
				return _JZDJ;
			}
			public function set JZDJ(value:String):void
			{
				_JZDJ =""+ value;
			}
			
			public function get QPFW():String
			{
				return _QPFW;
			}
			public function set QPFW(value:String):void
			{
				_QPFW =""+value;
			}
			
			public function get MJ():String
			{
				return _MJ;
			}
			public function set MJ(value:String):void
			{
				if(value==null){
					_MJ ="0";
				}else{
					var index:int=value.indexOf('.');  
					if(index>-1){
						_MJ=value.substring(0,index+3);
					}else{
						_MJ =value;
					}
					
				}
			}
			public function get FJDZ():String
			{
				return _FJDZ;
			}
			public function set FJDZ(value:String):void
			{
				if(value==null){
					_FJDZ="";
				}else{
					_FJDZ=value;
				}
				
			}
			
			public function get DJRQ():String
			{
				return _DJRQ;
			}
			public function set DJRQ(value:String):void
			{
				_DJRQ =""+value;
			}
			
			public function get KFCD():String
			{
				return _KFCD;
			}
			public function set KFCD(value:String):void
			{
				_KFCD =""+value;
			}
			
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<s:Group left="5" width="250" right="5">
		<s:Label text="区片号:{_QPH}" left="10" top="10" styleName="widgetLabel" fontSize="14" />
		
		<s:Rect left="0" right="0" height="1" top="33">
			<s:fill>
				<s:SolidColor color="#CCCCCC" />
			</s:fill>
		</s:Rect>
		
		<s:VGroup gap="3" width="100%" height="100%" top="40" paddingLeft="10">
			<s:Label text="土地级别:{_TDJB}" width="100%" styleName="widgetLabel" 
					 visible="{_TDJB!=null}" includeInLayout="{_TDJB!=null}"/>
			<s:Label text="基准地价:{_JZDJ}" width="100%" styleName="widgetLabel" 
					 visible="{_JZDJ!=null}" includeInLayout="{_JZDJ!=null}"/>
			<s:Label text="区片范围:{_QPFW}" width="100%" styleName="widgetLabel"
					 visible="{_QPFW!=null}" includeInLayout="{_QPFW!=null}"/>
			<s:Label text="面积:{_MJ}平方米" width="100%" styleName="widgetLabel"
					 visible="{_MJ!=null}" includeInLayout="{_MJ!=null}"/>
			<s:Label text="附件地址:{_FJDZ}" width="100%" styleName="widgetLabel"
					 visible="{_FJDZ!=null}" includeInLayout="{_FJDZ!=null}"/>
			<s:Label text="地价日期:{_DJRQ}" width="100%" styleName="widgetLabel"
					 visible="{_DJRQ!=null}" includeInLayout="{_DJRQ!=null}"/>
			<s:Label text="开发程度:{_KFCD}" width="100%" styleName="widgetLabel"
					 visible="{_KFCD!=null}" includeInLayout="{_KFCD!=null}"/>
		</s:VGroup>
	</s:Group>
</s:VGroup>

效果如图:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读