1. 程式人生 > >ArcGIS API for JS實現要素的查詢與定位

ArcGIS API for JS實現要素的查詢與定位

1、實現多要素查詢與定位

a、線查詢與定位

線要素主要是那些到路線,在查詢下下拉選擇某種道路型別,便可以獲得該圖層的layerid,將該ID值傳遞給要查詢的URL,形成完整的查詢URL,通過Query()和QueryTask實現查詢過程,獲取查詢結果的features,迴圈遍歷每個feature,新增Graphic樣式,在圖上高亮顯示。

以上部分都比較容易,關鍵是定位。

之前實現過通過獲取單個要素的extent可以定位到單個要素,那麼多個要素的定位主要思路就是,獲取查詢到的每個feature的extent,比較每個extent,保留最大包圍extent,具體程式碼如下:

再通過map.setExtent()方法就可以定位到所有查詢要素了

b、點查詢與定位

選擇一些點地物,比如建制村,同理獲取點要素的所有feature,比較所有點要素的經緯度座標,獲取到經度的最大最小值和緯度的最大最小值,來組合成一個新的Extent,再通過map.setExtent()定位

這裡需要注意,點要素的樣式就不能使用線要素的樣式了,線要素使用SimpleLineSymbol,點要素要使用SimpleMarkerSymbol

2、將查詢到的要素與FearueTable關聯

主要意思是將在地圖上查詢到的要素,點選檢視屬性控制元件後還可以看到對應要素的屬性,點選每個要素行還可以定位。

這裡實現的主要思路是,查詢到的每個要素,獲取到它們的crowid屬性,並將這些屬性儲存到全域性變數crowids陣列中,這樣查詢到的要素就可以與FeatureTable關聯上了,你查詢到什麼要素FeatureTable就可以根據你查詢到的要素的crowid獲取到對應的屬性表並顯示在FeatureTable中。

這裡有個細節,每次查詢下拉選擇圖層時都要講該圖層ID傳遞給FeatureTable中的LayerID變數組成正確的查詢URL