Недавно я спросил около referencing the data of an existing GeoJSON Leaflet object. Моя карта Leaflet состоит из данных, поступающих в поток к моему объекту GeoJSON Leaflet. Входы пользователя могут изменять фильтр для данных GeoJSON, поэтому чтобы фильтр применялся как к существующим, так и к новым данным, я отслеживаю свои данные в массиве с именем myFeatures
. Всякий раз, когда фильтры изменить или элемент в myFeatures
изменений, я делаю следующее:Как изменить или удалить некоторые существующие данные в объекте GeoJSON Leaflet?
myGeoJson.clearLayers();
myGeoJson.addData(myFeatures);
Это работает, чтобы сделать мое обновление карт в соответствии с недавно обновленными данными характеристиками или изменений в фильтре.
Я подаю всплывающие окна на объект GeoJSON, когда я инициализировать мой GeoJSON объект:
var myGeoJson = L.geoJson(myFeatures, {
style: function(feature) {
...
},
pointToLayer: function(feature, latlng) {
return L.circleMarker(latlng, geojsonMarkerOptions);
},
filter: function(feature, layer) {
...
},
onEachFeature: function(feature, layer) {
if (feature.properties && feature.properties.popupContent) {
layer.bindPopup(feature.properties.popupContent);
}
}
});
Когда я нажимаю на индивидуальной функции, появляется всплывающее окно. Тем не менее, всплывающее окно довольно быстро уходит, благодаря вызову clearLayers
и addData
. :(
Есть ли какое-то способ остановить всплывающий отклоняя в этой ситуации
Или - лучше спросить - есть ли способ изменения существующих данных в объекте GeoJSON или удалить некоторые (не все) данных от объекта GeoJSON?
Для того чтобы обеспечить некоторый контекст, мой GeoJSON показывает маркеры окружности для каждой функции. Маркеры круга окрашены в зависимости от свойства этой функции. Свойство может меняться с течением времени, поэтому стиль маркера должен быть обновлен. Маркер также истекает через некоторое время и должен быть удален с карты, но другие маркеры должны оставаться на карте.
Ваш отдельный слой для всплывающих окон. Благодарю. Но мне любопытно, каковы «лучшие способы сделать это»? – carmenism