Member 14097367 Ответов: 0

Как очистить прошлые маркеры 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) {

но если я это сделаю, то он не обновит местоположения до тех пор, пока я вручную не обновлю страницу

0 Ответов