Javascript 双击以获取DynamiCilayer的弹出窗口
我有一个动态层,我想定义一个弹出窗口Javascript 双击以获取DynamiCilayer的弹出窗口,javascript,popup,arcgis,Javascript,Popup,Arcgis,我有一个动态层,我想定义一个弹出窗口 DynamicLayer1 = new esri.layers.ArcGISDynamicMapServiceLayer( "http://testServer/arcgis/rest/services/TestMap/MapServer"); 我创建了一个新的queryTask对象,以对URL标识的层资源执行查询: dojo.connect(map, "onClick", executeQueryTask); query
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);
}
为什么我必须单击两次才能使弹出窗口正常工作?单击一次将突出显示该区域,然后我需要再次单击以获取弹出窗口。第一次单击时,将触发map click事件并调用ExecuteQuery任务。在queryTask完成之前,不会从服务器下载任何功能,因此弹出窗口不会显示任何内容。第二次单击地图时,功能将被下载,并且您正在单击实际图形,因此弹出窗口将显示此图形的信息。为了绕过此问题,您需要在显示弹出窗口之前将查询任务的结果设置为弹出窗口。您可以通过在showResults函数中调用map.infoWindow.setFeatures来完成此操作。第一次单击时,将触发map click事件并调用ExecuteQuery任务。在queryTask完成之前,不会从服务器下载任何功能,因此弹出窗口不会显示任何内容。第二次单击地图时,功能将被下载,并且您正在单击实际图形,因此弹出窗口将显示此图形的信息。为了绕过此问题,您需要在显示弹出窗口之前将查询任务的结果设置为弹出窗口。您可以通过在showResults函数中调用map.infoWindow.setFeatures来实现这一点