arcgis runtime sdk for wpf/silverlight中的三種常用的查詢:querytask、findtask、identifytask都是繼承自esri.arcgis.client.tasks,關系如下圖所示:
1、querytask:是一個進行空間和屬性查詢的功能類,它可以在某個地圖服務的某個子圖層内進行查詢,順便提一下的是,querytask進行查詢的地圖服務并不必須加載到map中進行顯示。querytask的執行需要兩個先決條件:一個是需要查詢的圖層url、一個是進行查詢的過濾條件。
下面是querytask的基本過程:
2、findtask:允許對地圖中一個或多個圖層的要素進行基于屬性字段值的查詢(search one or more layers in a map for features with attribute values that match or contain an input value)。findtask不能進行“空間查詢”,因為findtask可以對多個圖層進行查詢,所有它的url屬性需要指向所查詢的地圖服務的rest url,而不像querytask需要指定某個圖層的url。
下面是findtask的基本過程:
3、identifytask:是一個在地圖服務中識别要素(feature)的功能類。通過identifytask可以搜尋地圖層中與輸入幾何形相交的要素(search the layers in a map for features that intersect an input geometry)。因為也是在多個圖層中查詢,是以task的url是動态圖層服務的位址。同樣,傳回的要素都可以作為graphic被添加到地圖的graphicslayer上。
基本過程如下:
三種查詢的傳回結果:
querytask:傳回的是一個featureset。featureset.features[i]可以加入到graphicslayer上顯示,也可以通過attributes屬性字段得到屬性資訊。
findtask:傳回的是一個findresults數組, findresults[i].feature可以加入到graphicslayer上顯示,也可以通過attributes屬性字段得到屬性資訊。
identifytask:傳回的是一個identifyresults數組,identifyresults[i].feature可以加入到graphicslayer上顯示,也可以通過attributes屬性字段得到屬性資訊。
參考:
<a href="http://help.arcgis.com/en/webapi/silverlight/1.2/help/index.html">http://help.arcgis.com/en/webapi/silverlight/1.2/help/index.html</a>
<a href="http://resources.arcgis.com/en/help/runtime-wpf/concepts/index.html#/querying_and_searching_overview/0170000000m4000000/">http://resources.arcgis.com/en/help/runtime-wpf/concepts/index.html#/querying_and_searching_overview/0170000000m4000000/</a>
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
http://www.cnblogs.com/luxiaoxun/p/3297654.html