API V3 mise à Jour marqueur de position de façon dynamique

J'ai ce code qui lit les données à partir d'un fichier xml et met le marqueur sur la carte.

Ce que je veux faire est de lire le fichier xml automatiquement toutes les 5 secondes, et ainsi de mettre à jour la position du marqueur.

J'ai essayé d'ajouter setInterval à la fonction, mais le problème est que le marqueur précédent n'est pas supprimé. Juste ajouter un marqueur à la carte et ainsi de suite.

(Je ne veux pas l'ensemble de la carte mise à jour, juste le marqueur)

<script type="text/javascript"> 


var map = null;



function createMarker(latlng, html) {
var contentString = html;

var image = new google.maps.MarkerImage('http://www.google.com/mapfiles/markerA.png',
new google.maps.Size(20, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));

var shadow = new google.maps.MarkerImage('http://www.google.com/mapfiles/shadow50.png',
new google.maps.Size(37, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));

var marker = new google.maps.Marker({
position: latlng,
map: map,
shadow: shadow,
icon: image,
zIndex: Math.round(latlng.lat()*-100000)<<5


});

google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString); 
infowindow.open(map,marker);

});

}




function initialize() {

var myOptions = {
zoom: 13,
center: new google.maps.LatLng(-18.432713,-70.317993),
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}

map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);



google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});



setInterval(function() { 
downloadUrl("data.xml", function(doc) {

var xmlDoc = xmlParse(doc);

var markers = xmlDoc.documentElement.getElementsByTagName("marker");

for (var i = 0; i < markers.length; i++) {

var lat = parseFloat(markers[i].getAttribute("lat"));

var lng = parseFloat(markers[i].getAttribute("lng"));

var point = new google.maps.LatLng(lat,lng);

var html = "<strong>Taxi Arica</strong></br><strong>Latitud:</strong> " +       markers[i].getAttribute("lat") + "</br><strong>Longitud:</strong> " +  markers[i].getAttribute("lng");

var marker = createMarker(point,html);

}

});

},5000);


}



var infowindow = new google.maps.InfoWindow(
{size: new google.maps.Size(150,50)});


</script> 
Bonjour francis, avez-vous une solution pour cela? J'ai un besoin similaire et qu'il l'aidera grandement.
suivez ce lien stackoverflow.com/questions/1544739/... s'il vous Plaît suivez les étapes.

OriginalL'auteur francis | 2012-01-12