地图查询定位功能(Flex API)
?ArcGIS Server 10.0+Flex API 2.5. 實現查詢定位,目標區域邊界高亮。
1.使用QueryTask獲得查詢信息。
2.將查詢結果以Graphic形式放在GraphicsLayer上。
3.對相應graphic設置Symbol,高亮顯示,使用SimpleFillSymbol、SimpleLineSymbol,其中SimpleFillSymbol設置為空,設置outline,即實現邊界高亮效果。
效果圖:
具體:
1.使用QueryTask獲得查詢信息:
where語句中格式需注意,字符的值使用單引號,數字不需單引號。
//省區域查詢protected function button1_clickHandler():void{var queryTask:QueryTask=new QueryTask;var query:Query=new Query();queryTask.url="http://192.168.100.226:8399/arcgis/rest/services/abs_cni/ChinaRegion/MapServer/2";query.returnGeometry=true;query.outFields = ["name"];query.outSpatialReference = map.spatialReference;query.where="name like '%"+sheng.text+"%'";queryTask.execute(query,new AsyncResponder(onResult,onFault)); }2.將查詢結果以Graphic形式放在GraphicsLayer上,并定位(居中顯示),即獲得查詢結果graphic的extent。
可能在瀏覽器上居中顯示時,區域邊界部分顯示不完全,可以將區域放大,即“map.extent = graphic.geometry.extent.expand(1.5);”,代表將范圍在原有基礎上擴大50%。
此處犯過兩個錯誤:
? (1).使用以下方法,實質獲得graphic之和的extent。
var graphicProvider:ArrayCollection = myGraphicsLayer.graphicProvider as ArrayCollection;var graphicsExtent:Extent = GraphicUtil.getGraphicsExtent(graphicProvider.toArray());
? (2).結果函數里忘記清除之前graphic,即“myGraphicsLayer.clear();”,這樣一來,由于之前查詢結果的graphic的影響,多次查詢后extent也是錯誤的。
改正后正確方法如下:
private function onResult(featureSet:FeatureSet,token:Object = null):void{for each(var graphic:Graphic in featureSet.features){myGraphicsLayer.clear();graphic.symbol=QuerySymbol;myGraphicsLayer.add(graphic);map.extent = graphic.geometry.extent.expand(1.5);} }private function onFault(info:Object, token:Object = null ):void{Alert.show("Error!");}3.設置高亮顯示的symbol,面符號中可設置為空,加上outline,這樣即可邊界高亮顯示。
<esri:SimpleFillSymbol id="QuerySymbol"color="0xFF0000"alpha="0.6"outline="{sls}"style="null"></esri:SimpleFillSymbol><esri:SimpleLineSymbol id="sls"color="0xFF0000"alpha="1"style="solid"></esri:SimpleLineSymbol>另:如果使用FlexViewer,單獨做成widget的話,別忘了設置widget初始化函數加載graphicslayer,以及關閉wigdet時的清除graphic(“myGraphicsLayer.clear();”)
?
轉載于:https://www.cnblogs.com/colinhou/archive/2012/12/13/2815657.html
總結
以上是生活随笔為你收集整理的地图查询定位功能(Flex API)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样合理减少企业所得税
- 下一篇: 中文乱码问题汇总