Я не могу заставить CircleMarkers показывать связанные всплывающие окна в Leaflet.Вот что я делаю:
var markerGroup;
fetch("<FILE_NAME_REMOVED>").then(function(response){
return response.text();
}).then(function(text){
var lines = text.split("\n");
var markerArray = [];
for (var i=1; i<lines.length; i++) {
var parts = lines[i].split(",");
if (typeof parts[2] !='undefined') {
marker = new L.CircleMarker([parts[3],parts[2]], {
radius: 4,
color: 'red',
opacity: 0.95,
weight: 1.2,
dashArray: "2,3",
fillOpacity: 0.2
}).bindPopup("I am at " + parts[0] + "," + parts[1]);
markerArray.push(marker);
};
}
markerGroup = L.featureGroup(markerArray).addTo(map);
map.fitBounds(markerGroup.getBounds());
}).catch(function(err){
console.log(err);
});
Всплывающие окна просто не отображаются - на самом деле, когда я нажимаю на круги, карта просто увеличивается. Если я заменю L.CircleMarker просто L.Marker, хотяработает нормально, но на самом деле мне нужны круги.
Я даже пытался добавить функцию маркера при нажатии, но ничего не вышло.
Может кто-нибудь помочь?Я использую листовку 1.3.4.
РЕДАКТИРОВАТЬ:
Я не упомянул (потому что я не думал, что это имеет значение), что маркеры добавляются в последнюю очередькарта, но карта также имеет слой geoJson.Я заметил (случайно), что всплывающие окна очень хорошо отображаются в области карты, не покрытой слоем geoJson.Это странно для меня, потому что слой geojson установлен обратно с самого начала:
var datalayer;
$.getJSON("<FILE_NAME_REMOVED>",function(data){
datalayer = L.geoJson(data ,{
onEachFeature: function(feature, featureLayer) {
featureLayer.setStyle({fillColor: 'white'});
featureLayer.setStyle({weight:1});
featureLayer.setStyle({fillOpacity:0.1});
featureLayer.bringToBack();
}
}).addTo(map);
map.fitBounds(datalayer.getBounds());
});