Comment calculer la distance à l’aide des API Google Maps

la programmation


Salut

Je construis un logiciel pour une société de taxi et je souhaite calculer la distance entre le point de prise en charge et le lieu de dépôt et fournira le tarif. comment puis-je y parvenir en utilisant PHP

Ce que j’ai essayé :

j’ai déjà essayé d’utiliser l’API à distance mais cela ne fonctionne pas pour moi

Solution 1

En supposant que vous utilisez l’API Distance Matrix (et non l’API Directions), alors la forme d’une demande doit être :

https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters

Et votre code devrait ressembler à ceci :

https://maps.googleapis.com/maps/api/distancematrix/json?destinations=New%20York%20City%2C%20NY&origins=Washington%2C%20DC%7CBoston&units=imperial&key=YOUR_API_KEY

Évidemment, vous devez remplacer “YOUR_API_KEY” par votre clé API de Google pour laquelle vous avez besoin d’un compte de facturation configuré et Maps Javascript API activé. L’ensemble complet des paramètres facultatifs est décrit ci-dessous. Vous recevrez une réponse au format JSON (ou XML si vous remplacez json? avec xml? que vous devez analyser. Un exemple de code PHP pour analyser une requête API Distance Matrix est présenté ci-dessous. Toutes les informations dont vous avez besoin se trouvent sur Demande et réponse de l’API Distance Matrix | Google pour les développeurs[^].

PHP
<?php
// We need to get the JSON response into a string variable $jsonResponse
// First assign the URL of the Distance Matrix API request to a string
$url = 'href="https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters';

// Use file_get_contents() to send a GET request to the URL
$jsonResponse = file_get_contents($url);

// Decode the JSON response
$data = json_decode($jsonResponse, true);

// Check if the status is OK
if ($data['status'] == 'OK') {
    // Loop through each row (origin-destination pair)
    foreach ($data['rows'] as $row) {
        // Loop through each element (information about the origin-destination pair)
        foreach ($row['elements'] as $element) {
            // Check if the status is OK
            if ($element['status'] == 'OK') {
                // Get the distance and duration
                $distance = $element['distance']['text'];
                $duration = $element['duration']['text'];

                // Print the distance and duration
                echo "Distance: $distance\n";
                echo "Duration: $duration\n";
            } else {
                echo "Error: " . $element['status'] . "\n";
            }
        }
    }
} else {
    echo "Error: " . $data['status'] . "\n";
}
?>

Demande d’API de matrice de distance :
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters

outputFormat peuvent être soit json ou xml.

Et parameters inclure :

origins

Le point de départ pour calculer la distance et le temps de trajet. Vous pouvez fournir un ou plusieurs emplacements sous la forme d’une adresse, de coordonnées de latitude/longitude ou d’un identifiant de lieu.
destinations

Un ou plusieurs emplacements vers lesquels calculer la distance et la durée du trajet.
mode (facultatif)
Spécifie le mode de transport. Les options incluent la conduite automobile, la marche, le vélo et les transports en commun.
units (facultatif)
Spécifie le système d’unités à utiliser lors de l’expression de la distance sous forme de texte. Les options incluent le système métrique et impérial.
departure_time (facultatif)
Spécifie l’heure de départ souhaitée sous forme d’entier en secondes depuis minuit, le 1er janvier 1970 UTC.
traffic_model (facultatif)
Spécifie les hypothèses à utiliser lors du calcul du temps dans le trafic. Les options incluent best_guess, pessimiste et optimiste.

Mike

コメント

タイトルとURLをコピーしました