1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
var map;
var gx = [];
var kmlLayerOptions = {preserveViewport:true};
var lastPos = "";
function initialisation() {
var mapDiv = document.getElementById("map_canvas");
var latlng =new google.maps.LatLng(45.0000, 5.0000);
var myOptions = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(mapDiv, myOptions);
gx[0]=new google.maps.KmlLayer("http://......generated_file.kml?"+aleat(),kmlLayerOptions);
gx[0].setMap(map);
var timer = setInterval(function(){reloadKml(map)}, 5000);
}
google.maps.event.addDomListener(window, 'load', initialisation);
function reloadKml(aMap) {
//on charge un nouveau KML
gx[1]=new google.maps.KmlLayer("http://......generated_file.kml?"+aleat(),kmlLayerOptions);
//Attente du chargement complet et lecture de l'attribut "description" du KML dans lequel j'ai également stocké les coordonnées lat / lon en amont
google.maps.event.addListenerOnce(gx[1], 'metadata_changed', function(){
result = gx[1].getMetadata();
newPos = result.description;
if (newPos != lastPos){
alert("Position différente");
//on enleve l'ancien KML de la map et on affiche le nouveau
lastPos = newPos;
// -- Tentative d'afficher le KML si la position est différente
gx[0].setMap(null);
gx[1].setMap(aMap);
gx[0] = gx[1];
//mais il ne se passe rien ...
}else{
alert("Position identique");
//on ne fait rien
}
});
}
function aleat(){
return Math.round(Math.random() * 1000000);
} |
Partager