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> 效果如图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |