ArcGIS Flex Viewer 实现i查询

来源:互联网 发布:cpu散热器哪个好 知乎 编辑:程序博客网 时间:2024/06/10 06:50

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, "YYYY-MM-DD", 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>

效果如图:


0 0
原创粉丝点击