Здравствуйте.
Имеется вот такой скрипт вывода маркеров на сайт:
var markers;
function reload_marker(map_left,map_right,map_top,map_down) {
$.getJSON('/json.php', {left:map_left,right:map_right,top:map_top,down:map_down}, function (serv) {
massiv =[]; // Создаем массив
// Получаем данные из json.php
serv.features.forEach(function(n) {
marker = new L.marker([n.geometry.coordinates[0],n.geometry.coordinates[1]]);
massiv.push(marker); // добавляем marker к массиву
});
})
.done(function() {
// Удаляем старые маркеры
if(markers) {
markers.clearLayers();
}
// Добавляем новые
markers = L.featureGroup(massiv).addTo(map);
});
}
Суть в том, что при перемещении карты / загрузки карты впервые / несколько раз в процессе перемещения () выполняется функция
reload_marker(map_left,map_right,map_top,map_down) где map_left и т.д. - это границы карты. Выводятся из json только те маркеры, которые попадают в просматриваемые пользователем границы.
Код выше при выполнении функции удаляет все маркеры и загружает, добавляет на карту новые на основе новых данных от json.php
Проблема в том, что никак не могу реализовать так, чтобы те маркеры которые в данный момент есть на карте не удалялись, а использовалась функция setLatLng, те маркеры которые не вернулись их json но в данный момент присутствуют на карте - удалились, новые - добавились.. Как можно реализовать такую функцию, в какую сторону смотреть?
Проблема так-же в том, что у маркеров постоянно меняется leaflet_id..