我的传单 Map 上有两个图层组 .
var firstMarkerLayer = L.geoJson(firstGroup, {
onEachFeature: function(feature, layer) {
layer.bindPopup(feature.properties.name);
}
});
var secondMarkerLayer = L.geoJson(secondGroup, {
onEachFeature: function(feature, layer) {
layer.bindPopup(feature.properties.name);
}
});
var overlays = {
"first" : firstMarkerLayer,
"second" : secondMarkerLayer
};
我还有一个代码,从下拉列表中选择第一层上的标记,并显示相应的工具提示 .
var selector = L.control({
position: 'topleft'
});
selector.onAdd = function(map) {
var div = L.DomUtil.create('div', 'mySelector');
div.innerHTML = '(places)';
return div;
};
selector.addTo(map);
firstMarkerLayer.eachLayer(function(layer) {
var optionElement = document.createElement("option");
optionElement.innerHTML = layer.feature.properties.name;
optionElement.value = layer._leaflet_id;
L.DomUtil.get("marker_select").appendChild(optionElement);
});
var marker_select = L.DomUtil.get("marker_select");
L.DomEvent.addListener(marker_select, 'click', function(e) {
L.DomEvent.stopPropagation(e);
});
L.DomEvent.addListener(marker_select, 'change', changeHandler);
function changeHandler(e) {
if (e.target.value == "init") {
map.closePopup();
} else {
firstMarkerLayer._layers[e.target.value].openPopup();
}
}
但它只适用于一层 . 有人可以建议我如何完成我的代码以实现任何选定重叠层的所有功能?