У меня есть функциональный слой Mapbox (с источником geoJSON в качестве источника) со всплывающими окнами для каждого маркера (с divIcon). Мы изменяем размер значка маркера на разных уровнях масштабирования (используя css). Как сбросить смещение всплывающего окна на разных уровнях масштабирования?Mapbox- сбросить всплывающее смещение dynamcally
Вот начальная настройка маркера и всплывающие окна (это все работает):
var curOffset = [0,1];
Markers.on('layeradd', function(la) {
var Icon = la.layer,
feature = Icon.feature;
var popupContent = "<some html>"
var popupOptions = {
autoPan:true,
closeButton: false,
minWidth: 220,
maxWidth: 220,
zoomAnimation:true,
offset: curOffset
};
Icon.setIcon(L.divIcon(Iconfeature.properties.icon));
Markers.bindPopup(popupContent, popupOptions);
});
Я попытался сбросить смещение на события масштабирования, как это так, но он не работает:
map.on('zoomend', function(e) {
if (layerOn == true) {
size = map.getZoom();
switch (size){
case 14: console.log("14"); curOffset = [0,5]; break;
...
}
}
});
Должен ли я закрыть, а затем открыть всплывающее окно? Я пробовал что-то в этом направлении, но у меня была ошибка.
я получил это предложение от вкладчика листовка Github, но я не смог получить эту работу либо/
«Обновление popup.options.offset, а затем вызвать частный метод popup._updatePosition «.