Как очистить прошлые маркеры Google maps
В настоящее время у меня возникли проблемы с очисткой прошлого маркера google maps у меня есть функция clearoverlays но она не работает вот код
маркеры var=[];
var customLabel = {
ресторан: {
этикетка: 'R'
},
бар: {
этикетка: 'B'
}
};
функция initMap() {
ВАР карта = новый Google.карты.Карта(документ.метода getElementById('карта'), {
центр: Новые google.maps.Latlng с(17.1899, -88.534721),
Зум: 8
});
var infoWindow = новый google.maps.InfoWindow;
// Измените это значение в зависимости от имени вашего PHP-или XML-файла
setInterval(function() {downloadUrl('xml1.php', функция(данные) {
ВАР XML-код = сведения.по стандартизации;
маркеры = xml.documentElement.getElementsByTagName('маркер');
Array.prototype.forEach.call(маркеры, функция(markerElem) {
var id = markerElem.getAttribute('id');
var name = markerElem.getAttribute('имя');
var address = markerElem.getAttribute('адрес');
var type = markerElem.getAttribute('type');
var point = новый google.maps.Latlng с(
parseFloat(markerElem.getAttribute('lat')),
parseFloat(markerElem.getAttribute('lng')));
ВАР infowincontent = документ.метод createElement('див');
ВАР сильный = документ.метод createElement('сильный');
сильным.текстового содержимого = имя
infowincontent.appendChild(сильный);
infowincontent.метода appendChild(документ.метод createElement('БР'));
ВАР текст = "документ".метод createElement('текст');
текст.текстового содержимого = идентификатор
infowincontent.appendChild(текст);
var icon = customLabel[id] || {};
var marker = новый google.maps.Маркер({
карта: карта,
позиция: точка,
метка: значок.этикетка
});
marker.addListener('click', функция() {
infoWindow.setContent(infowincontent);
infoWindow.open(карта, маркер);
});
});
clearOverlays();
});
}, 0500);
}
функция clearOverlays() {
for (var i = 0; i < markers.length; i++ ) {
маркеры[i].setMap(null);
}
}
функция downloadUrl(url, обратный вызов) {
var request = окно.Открытие ?
новый ActiveXObject('Microsoft.XMLHTTP') :
новый XMLHttpRequest;
request.onreadystatechange = функция() {
if (request.readyState == 4) {
запрос.внутренний = пусто;
обратный вызов(запрос, request.status);
}
};
request.open('GET', url, true);
запрос.отправить(нуль);
}
функция set interval просто автоматически загружает информацию от нескольких человек из базы данных mysql каждые полсекунды для подключения к карте она отлично работает только в том случае, если оставляет предыдущие местоположения в качестве маркеров на карте.
Что я уже пробовал:
я также пытался заставить clearoverlay работать с заданным интервалом, но это не работает, и я попытался поставить clearoverlay сразу после этого
setInterval(function() {downloadUrl('xml1.php', function(data) {
но если я это сделаю, то он не обновит местоположения до тех пор, пока я вручную не обновлю страницу