Я рисую маркеры на карте Google после ее панорамирования или масштабирования.
Если область просмотра изменилась не полностью, то маркеры, которые появились до перемещения и должны появиться после того, как они нарисованы поверх себяснова и снова.
Я знаю, что должен удалить все маркеры с карты до того, как новые маркеры будут нарисованы, и я знаю, что должен использовать marker.setMap(null);
.
Я просто не знаю, как и где соответствоватьэто в моем коде.
google.maps.event.addListener(map, 'idle', showMarkers);
function showMarkers(){
// get viewport bounds
var southWestLat = map.getBounds().getSouthWest().lat();
var southWestLng = map.getBounds().getSouthWest().lng();
var northEastLat = map.getBounds().getNorthEast().lat();
var northEastLng = map.getBounds().getNorthEast().lng();
var marker;
$.ajax({
type: "POST",
url: "markers.php",
dataType: "json",
data: ({'southWestLat' : southWestLat , 'southWestLng' : southWestLng , 'northEastLat' : northEastLat , 'northEastLng' : northEastLng}),
success: function(coordinatesMap){
for (var id in coordinatesMap){
if (coordinatesMap.hasOwnProperty(id)){
marker = new google.maps.Marker({
position: new google.maps.LatLng(coordinatesMap[id].lat,coordinatesMap[id].lng),
map: map
});
}
}
}
});
}