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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
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 javascript : Sélectionner tout - Visualiser dans une fenêtre à part
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 .
Partager