2013-11-09 36 views
2

我有一個動態圖層,我想爲其定義一個彈出窗口。雙擊以獲取DynamciLayer彈出框

DynamicLayer1 = new esri.layers.ArcGISDynamicMapServiceLayer(
       "http://testServer/arcgis/rest/services/TestMap/MapServer"); 

我創建了一個新的queryTask對象由URL標識的層資源執行一個查詢:

dojo.connect(map, "onClick", executeQueryTask); 
query = new esri.tasks.Query(); 
query.returnGeometry = true; 
query.outFields = layersInfoWindow[layerId]['outFields']; 
infoTemplate = new esri.InfoTemplate() 


function executeQueryTask(evt) { 
     query.geometry = evt.mapPoint; 
     queryTask[activeLayer].execute(query, showResults); 
} 

爲什麼我必須單擊兩次以彈出的工作?點擊一下就會突出顯示該地區,然後我需要再次單擊以獲得彈出窗口。

回答

4

第一次點擊時,地圖點擊事件被觸發,executeQueryTask被調用。在queryTask完成之前,不會從服務器下載任何功能,因此彈出窗口不會顯示任何內容。第二次單擊地圖時,將下載該功能,並且您正在點擊一個實際圖形,因此彈出窗口將顯示該圖形的信息。爲了繞過這個,您需要在顯示彈出窗口之前將queryTask的結果設置爲彈出窗口。您可以通過在showResults函數內調用map.infoWindow.setFeatures來完成此操作。