Récupérer des points gps et afficher itinéraire
Résolu
abirgl
Messages postés
147
Statut
Membre
-
abirgl Messages postés 147 Statut Membre -
abirgl Messages postés 147 Statut Membre -
Bonjour,
Dans mon application web, j'ai un tableau qui contient la liste de mes clients, chaque client possède des coordonnées géographiques, je souhaite, à partir de ces coordonnées géographiques, afficher l'itinéraire pour arriver à ce client (depuis mon emplacement courant), j'ai réussi à afficher mon emplacement courant sur une carte google maps, mais j'ai pas une idée comment à partir des variables php les transformer en javascript pour les utiliser lors de calcul de l'itinéraire,
Quelqu'un peut m'aider SVP ?
Dans mon application web, j'ai un tableau qui contient la liste de mes clients, chaque client possède des coordonnées géographiques, je souhaite, à partir de ces coordonnées géographiques, afficher l'itinéraire pour arriver à ce client (depuis mon emplacement courant), j'ai réussi à afficher mon emplacement courant sur une carte google maps, mais j'ai pas une idée comment à partir des variables php les transformer en javascript pour les utiliser lors de calcul de l'itinéraire,
Quelqu'un peut m'aider SVP ?
1 réponse
-
Salut,
Selon ce que tu souhaites, tu n'a p-e pas besoin d'utiliser javascript pour afficher ton itinéraire.
Tu peux utiliser tes variables PHP pour simplement créer un lien http pointant vers Google Map avec les coordonnées de départs et d'arrivées :$latOrigin = '47.71'; $lngOrigin = '2.88'; $latDest = '50.62'; $lngDest = '2.16'; echo "<a href='https://www.google.com/maps/dir/$latOrigin,$lngOrigin/$latDest,$lngDest' rel="nofollow noopener noreferrer" target="_blank">Itinéraire</a>";
Bonne journée,-
-
-
Tu peux utiliser l'API Google Map Distance Matrix pour récupérer la distance et la durée de transport entre deux points.
Soit en php via le web service : https://developers.google.com/maps/documentation/distance-matrix/overview?hl=fr
Soit en javascript via l'API js : https://developers.google.com/maps/documentation/javascript/distancematrix?hl=fr -
Merci beaucoup Pitet,
voici le code si quelqu'un aura le même besoin un jour:
function GetDrivingDistance($lat1, $lat2, $long1, $long2)
{
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$lat1.",".$long1."&destinations=".$lat2.",".$long2."&mode=driving&language=fr-FR";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response, true);
$dist = $response_a['rows'][0]['elements'][0]['distance']['text'];
$time = $response_a['rows'][0]['elements'][0]['duration']['text'];
return array('distance' => $dist, 'time' => $time);
}
Pour l'appel :
//$latOrg,$lngOrg,$latDest,$lngDest doivent être déjà définis , soit récupérés de bdd
$coordinates1=array($latOrg,$lngOrg);
$coordinates2=array($latDest,$lngDest);
if ( !$coordinates1 || !$coordinates2 )
{
echo 'Bad address.';
}
else
{
$dist = GetDrivingDistance($latOrigin, $latDest, $lngOrigin, $lngDest);
echo "Distance : ".$dist['distance']."<br> Durée : ". $dist['time'];
}
Merci encore Pitet ^^
-