双击以获取DynamciLayer的弹出窗口

时间:2013-11-09 19:56:07

标签: javascript popup arcgis

我有一个动态图层,我想为其定义弹出窗口。

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);
}

为什么我必须单击两次以使弹出窗口正常工作?单击一下即可突出显示该区域,然后我需要再次单击以获取弹出窗口。

1 个答案:

答案 0 :(得分:4)

第一次单击时,将触发map click事件并调用executeQueryTask。在queryTask完成之前,没有从服务器下载任何功能,因此弹出窗口不会显示任何内容。第二次单击地图时,将下载该功能并单击实际图形,弹出窗口将显示该图形的信息。为了绕过这个,您需要在显示弹出窗口之前将queryTask的结果设置为弹出窗口。您可以通过调用showResults函数中的map.infoWindow.setFeatures来实现。