問題は、その上に動的レイヤーがあるときにマップをクリックすると、間違った情報が表示されるか、情報がまったく表示されないことです。
わかりやすくするための例:
追加される動的レイヤーは次のとおりです。
vestigingLayer1 = L.esri.dynamicMapLayer("http://ags101.prvgld.nl/arcgis/rest/services/IBIS_bedrijventerrein_app/IBIS_bedrijventerrein_app/MapServer",
{
layers: [0],
position: 'front',
})
map.addLayer(vestigingLayer1);
レイヤーのマウスクリックに反応するコード部分は次のとおりです。
map.on("click", function(e) {
if(typeof vestigingLayer1 === 'undefined'){
}
else{
vestigingLayer1.identify(e.latlng, function(data) {
if(data.results.length > 0) {
// Popup toevoegen en informatie toevoegen
popupText = "<div style='overflow:scroll; max-width:250px; max-height:260px;'>";
for (prop in data.results[0].attributes) {
var val = data.results[0].attributes[prop];
if (val != 'undefined' && val != "0" && prop !="OBJECTID" && prop != "Name") {
popupText += "<b>" + prop.replace(" (Esri)",'') + "</b>: " + val + "<br>";
}
}
popupText += "</div>";
//Popup toevoegen op de plaats waar geklikt is.
var popup = L.popup()
.setLatLng(e.latlng)
.setContent(popupText)
.openOn(map);
}
});
}
そのため、firebug を介してコード部分をたどると、データの結果が常に同じレイヤーの情報を提供するか (1)、結果がないことがわかります。
また、もう少し明確にするために、作業中のWebサイトへのリンク。 http://geodev.prvgld.nl/geoapp/definitief/kaart.html
誰かがこれに対する答えを知っているなら、私は本当に感謝しています。