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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
function initialiser(listechauffeurs)
{
// paramètres initiaux de la carte
var centreDepart = new google.maps.LatLng(47.238222, -1.5609655); // Nantes
var dernierePosition = new google.maps.LatLng();
var listeMarqueurs = []; // tableau de marqueurs
var listePanneaux = []; // tableau de panneauxinfos
var zoneMarqueurs = new google.maps.LatLngBounds(); // zone rectangulaire
function setMarker(data, lat_user, lng_user, nom, forme)
{
var myLatlng = new google.maps.LatLng(lat_user, lng_user);
var marqueur = new google.maps.Marker({
'map': carte,
'flat': true,
'icon': iconeCamion32,
'title': nom,
'position': myLatlng
});
contentString = '<div class="infomarqueur">' + data + '</div>'; // Contenu de l'infobulle
var panneauInfo = new google.maps.InfoWindow({
content: contentString,
position: myLatlng
});
// on ajoute le marqueur à la liste des marqueurs
listeMarqueurs.push(marqueur);
listePanneaux.push(panneauInfo);
// attache le panneau au marqueur
panneauInfo.open(carte, marqueur);
} // fin function setMarker
// options de la carte
var options = {
center: centreDepart,
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// var positions;
function enleveMarqueurs() {
for (var i = 0; i < listeMarqueurs.length; i++)
{
listeMarqueurs[i].setMap(null);
}
listeMarqueurs = [];
for (var i = 0; i < listePanneaux.length; i++)
{
listePanneaux[i].close();
}
listePanneaux = [];
}
// on créé la carte.
// NB. j'ai déclaré sans mettre var devant pour rendre l'objet carte visible de l'extérieur de cette fonction
carte = new google.maps.Map(document.getElementById("carte_tu"), options);
// on enregistre la dernière position connue
carte.addListener('center_changed', function() {
dernierePosition = carte.getCenter();
});
// on affiche les marqueurs
function afficheMarqueurs(strListe)
{
// on cherche les positions à afficher en AJAX
$.ajax({
type : 'GET', // envoi des données en GET ou POST
url : 'get_adresses.php', // url du fichier de traitement
dataType: "json",
data : 'lc=' + escape(strListe), // données à envoyer
success : function(data){ // traitements JS à faire APRES le retour de l'url
positions = data; // récupération des résultats en JSON
if (positions.length > 0)
for (i = 0; i < positions.length; i++) {
// alert(positions[i].lat);
setMarker(positions[i].loc, positions[i].lat, positions[i].lng, positions[i].nom, window['blue' + positions[i].forme]);
}
}
}); // fin ajax
// carte.panTo(dernierePosition);
// rappel de la fonction
setTimeout( function(){
enleveMarqueurs();
afficheMarqueurs(strListe);
}, 60000);
}
afficheMarqueurs(listechauffeurs);
} // fin fonction initialiser() |
Partager