Я пытаюсь переключить между возможностью видеть всплывающие подсказки или всплывающие окна для маркеров на моей карте, в зависимости от расстояния от них. Существует простой способ, чтобы включить всплывающие окна, но есть ли способ похож наКак «развязать» всплывающие окна в Mapbox? Разрешить только всплывающие окна с маркерами в определенном диапазоне (изменение при перемещении пользователя)
marker.bindPopup(entries[i].text_content);
удалить возможность просмотра всплывающего окна снова?
Для справки, здесь полная часть кода
$http.get(ApiEndpoint.entry).then(function(data) {
entries = data.data;
for (i=0; i<entries.length; i++){
var lat = entries[i].lat;
var long = entries[i].long;
}
var markers = new L.MarkerClusterGroup({maxClusterRadius: 40, removeOutsideVisibleBounds: true, singleMarkerMode: true});
for (var i = 0; i < entries.length; i++) {
var a = entries[i];
var title = a[2];
marker = L.marker(new L.LatLng(a.lat, a.long), {
icon: L.mapbox.marker.icon({'marker-symbol': 'post', 'marker-color': '0044FF'}),
});
if(haversineDistance(current_lat, current_long, entries[i].lat, entries[i].long)<26){
marker.bindPopup(entries[i].text_content);
};
markers.addLayer(marker);
}
map.addLayer(markers);
});
Если функция haversineDistance используется для вычисления расстояния от текущего местоположения маркеров.
Что мне нужно, это часть кода, которая может быть запущена в цикле, которая удаляет все всплывающие окна за промежуток времени, что позволяет мне снова использовать if-statement, чтобы всплывающие окна для маркеров в пределах диапазона, пользователь перемещается.
Это был marker.unbindPopup, который я искал. :) Я выяснил, что лучше сделать расчет расстояний на внутреннем сервере и использовать кеш для хранения информации о том, какие из них нужно изменить всплывающее окно. Частично ваш ответ предоставил необходимую информацию, но также дал мне представление о функции .distanceTo, которая, возможно, заменит функцию haversine. Поэтому я буду отмечать это как правильно. :) Благодаря. –