Der folgende Code lädt eine Google-Karte und aktualisiert die Positionen der Markierungen jede Sekunde. Das Problem ist, dass der Code den Standort der Marker immer wieder neu schreibt. Gibt es eine Möglichkeit, den vorherigen Marker vor dem Schreiben eines neuen zu entfernen?Entfernen von Google-Markierungen
Das Problem ist, dass, wenn es die Markierungen löscht clearOverlays(); es aktualisiert keine neuen.
Jede Hilfe oder Beratung wäre sehr willkommen.
Diese Frage unterscheidet sich von vorherigen Fragen, da das Problem beim Aufruf von clearOverlays() auftritt; von der Funktion refreshDiv() wird es nicht aktualisiert.
<!DOCTYPE html>
<html>
<head>
<style>
#map {
height: 100%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body onload='refreshDiv()'>
<div id='map'></div>");
<script>
function refreshDiv()
{
clearOverlays();
var refresher = setTimeout('refreshDiv()', 1000);
updateMarker(map);
}
function initMap()
{
window.map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: {lat: ".$latitude.", lng: ".$longitude."}
});
}
function clearOverlays()
{
for (var i = 0; i < marker.length; i++)
{
marker[i].setMap(null);
}
marker.length = 0;
for (var i = 0; i < beach.length; i++)
{
beach[i].setMap(null);
}
beach.length=0;
}
function updateMarker(map)
{
var beaches = [['"Jim"', 55.0102686,-1.5847956999999724],];
var image = {
url: '1.png',
// This marker is 20 pixels wide by 32 pixels high.
size: new google.maps.Size(20, 32),
// The origin for this image is (0, 0).
origin: new google.maps.Point(0, 0),
// The anchor for this image is the base of the flagpole at (0, 32).
anchor: new google.maps.Point(0, 32)
};
var shape = {
coords: [1, 1, 1, 20, 18, 20, 18, 1],
type: 'poly'
};
for (var i = 0; i < beaches.length; i++) {
window.beach = beaches[i];
window.marker = new google.maps.Marker({
position: {lat: beach[1], lng: beach[2]},
map: map,
icon: image,
shape: shape,
title: beach[0],
zIndex: beach[3]
});
}
}
</script>
<script async defer
src='https://maps.googleapis.com/maps/api/js?key=AIzaSyBVQaENEYHY2g-mRhD6_tj1cSK8DhQoqHI&callback=initMap'>
</script>
</body>
</html>
Danke. Gesehen, dass auf Google, aber das Problem ist, dass der Code die Markierungen löscht, aber sie nicht wieder aktualisiert. Ich habe clearOverlays() hinzugefügt; aber das scheint danach kein update zu erlauben. Irgendwelche Gedanken? – user7763438
Es gibt eine ähnliche Frage, die Sie diese Lösung versuchen können. Ich denke, es sollte funktionieren. http://stackoverflow.com/questions/8229827/update-markercluster-after-removing-markers-from-array –
Ich arbeitete auf Google Maps API lange zurück. Ich werde versuchen, in meinen alten Code-Dateien herauszufinden, wie ich das gemacht habe. –