Script Ajax api googlemap
Bon je vais essayé d'être claire pour que se soit assez rapide j'espère^^.
J'ai un projet dont le but est de récupérer les coordonné de longitude et latitude d'un véhicule et l'afficher sur un marqueur.
pour cela je n'ai pas de problème, cependant je préférai pouvoir voir mon marqueur se déplacer dans le googlemap sans avoir à rafraichir la l'api de google Map en entier.
donc j'ai créer un script php qui récupère la latitude et la longitude du véhicule en question "getpos2.php" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| $req7 = $bdd -> query('SELECT * FROM position where IdBus='.$Numbus) or die(print_r($bdd -> errorInfo()));
$count = $req7 -> rowCount();
//$i = 0;
while ($donnee7 = $req7 -> fetch()) {
//$stations[] = $donnee['Nom_de_la_station'];
$Positionbus[] = array("IdBus" => $donnee7['IdBus'],"IdLigne" => $donnee7['IdLigne'],"IdChauffeur" => $donnee7['IdChauffeur'], "longitude" => $donnee7['Longitude'], "latitude" => $donnee7['Latitude']);
//echo $donnee['Nom_de_la_station'];
}
//echo count($stations);
$Pos4 = '{"item":' . json_encode($Positionbus) . '}'; |
puis dans ma page php voila le script qui récupère la map et génère les marqueurs de mes stations et également le marker2 qui représente le positionnement du bus :
Code:
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
| $(function() {
var Pos = JSON.parse('<?php echo $Pos3 ?>');
var obj = JSON.parse('<?php echo $msg ?>');
var latlng = new google.maps.LatLng(32.31006000, -9.23662805);
var map = new google.maps.Map(document.getElementById("Gmap"), {
zoom : 12,
center : latlng,
mapTypeId : google.maps.MapTypeId.ROADMAP,
});
var i=0;
while (i<obj.item.length){
var marker = new google.maps.Marker({
position : new google.maps.LatLng(obj.item[i].latitude, obj.item[i].longitude),
map : map,
title : obj.item[i].nom
});
i++;
}
var marker2 = new google.maps.Marker({
position : new google.maps.LatLng(Pos.item[0].latitude, Pos.item[0].longitude),
map : map,
title : 'BUS'
});
movePositionMarker(marker2);
}); |
Puis enfin la fonction movePostionMarker qui me pose problème, cette fonction est sensé mettre a jour régulièrement le positionnement du marker2 en passant par le script php plus haut. (maqueur du véhicule) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| function movePositionMarker(marker){
$.ajax({
url: "getpos2.php", // fait bien attention à l'adresse par contre
success: function() {
Pos2 = JSON.parse('<?php echo $Pos4 ?>');
marker.setPosition( new google.maps.LatLng( Pos2.item[0].latitude, Pos2.item[0].longitude));
}
});
// déplace le marker
// rappel de la fonction
setTimeout( function(){
movePositionMarker(marker);
}, 10000);
} |
La variable $pos4 que mon script php est sensé me retourné n'est pas reconnu d'après mes tests... pourtant le code me parait juste.
Quelqu'un pourrait m’éclairer Je vous prie ? (aie-je commis une faute dans le codage ? )
Je vous remercie d'avance pour tout aide :).