描述
本例展示瞭如何在另外一個任務裡使用一個任務的結果。單擊地圖檢視被單擊的點的1公里範圍內的快取(如果需要可以修改這個預設的快取距離)。也可以看快取區的這些點的人口普查街區資訊。單擊一個點檢視更多的人口普查街區的資訊。
透過GeometryService, QueryTask和一些事件監聽器實現了所有的功能:
·GeometryService物件提供訪問到ArcGIS Server的幾何服務,該服務可以緩衝,投影和簡化幾何體。·QueryTask能根據地理或屬性條件從地圖圖層檢索要素。在本例中,查詢基於地理(在快取中的區域)。有趣地是,地圖圖層(人口普查街區組點)不是初始顯示在地圖上的。對很多這樣的查詢任務,可以僅僅顯示需要的結果元素。·事件監聽器幫助指令碼知道事件什麼時候發生。監聽器說,“當A發生,做B”。監聽器可以將幾個操作連在一起,象查詢後快取。每當見到dojo.connect()方法,指令碼正在監聽一個事件。這有一個監聽器的例子:· dojo.connect(map, "onClick", function(evt) {....}
這三個引數表示物件的事件將在哪發生(the map),本身是什麼事件(a mouse click)和當事件發生時執行什麼函式。
下面是本例中事情發生的順序:
1.某人單擊地圖,觸發地圖的"onClick"事件
2.幾何服務快取點,觸發幾何服務的"onBufferComplete"事件
3.快取的虛線符號被增加到地圖上並且查詢任務執行,觸發查詢任務的"onComplete"事件
4.人口普查區被增加到地圖上,使用函式sumPopulation統計人口
最新評論