我知道将弹出窗口绑定到 ESRI 的L.esri.DynamicMapLayer
here。下面的代码是成功的。
$.ajax({
type: 'GET',
url: url + '?f=json',
data: { layer: fooType },
dataType: 'json',
success: function(json) {
var foo_layer = fooLayers[fooType].layers;
foo = L.esri.dynamicMapLayer({
url: url,
layers: [foo_layer],
transparent: true
}).addTo(map).bringToFront();
foo.bindPopup(function(error, featureCollection) {
if (error || featureCollection.features.length === 0) {
return false;
} else {
var obj = featureCollection.features[0].properties;
var val = obj['Pixel Value'];
var lat = featureCollection.features[0].geometry.coordinates[1];
var lon = featureCollection.features[0].geometry.coordinates[0];
new L.responsivePopup({
autoPanPadding: [10, 10],
closeButton: true,
autoPan: false
}).setContent(parseFloat(val).toFixed(2)).setLatLng([lat, lon]).openOn(map);
}
});
}
});
但是,click
我想知道您是否可以在动态地图上mouseover
使用而不是响应。bindTooltip
我查看了文档,L.esri.DynamicMapLayer
其中说它是L.ImageOverlay
. 但也许这里概述了一个我不完全理解的问题。也许它甚至没有关系。
除此之外,我一直在测试即使是最简单的代码的多种变体,以使事情在下面工作,但没有成功。也许因为这是异步行为,所以这是不可能的。寻找任何指导和/或解释。非常新手程序员,非常需要专业知识。
$.ajax({
type: 'GET',
url: url + '?f=json',
data: { layer: fooType },
dataType: 'json',
success: function(json) {
var foo_layer = fooLayers[fooType].layers;
foo = L.esri.dynamicMapLayer({
url: url,
layers: [foo_layer],
transparent: true
}).addTo(map).bringToFront();
foo.bindTooltip(function(error, featureCollection) {
if (error || featureCollection.features.length === 0) {
return false;
} else {
new L.tooltip({
sticky: true
}).setContent('blah').setLatLng([lat,lng]).openOn(map);
}
});
}
});