日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

地图查询定位功能(Flex API)

發布時間:2024/10/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 地图查询定位功能(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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。