[ad_1]
Hola
Estoy creando un software para una compañía de taxis y quiero calcular la distancia desde el punto de recogida hasta el punto de entrega y me proporcionarán la tarifa. ¿Cómo puedo lograr esto usando PHP?
Lo que he probado:
Ya intenté usar la API de distancia pero no me funciona.
Solución 1
Suponiendo que está utilizando la API Distance Matrix (y no la API Directions), el formulario de solicitud debe ser:
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters
Y su código debería verse así:
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
Obviamente, debe reemplazar “YOUR_API_KEY” con su clave API de Google para la cual necesita configurar una cuenta de facturación y Maps Javascript API
activado. El conjunto completo de parámetros opcionales se describe a continuación. Recibirás una respuesta en formato JSON (o XML si reemplazas json?
con xml?
que necesitas analizar. A continuación se muestra un ejemplo de código PHP para analizar una solicitud API de Distance Matrix. Toda la información que necesitas la puedes encontrar en Solicitud y respuesta de la API Distance Matrix | Google para desarrolladores[^].
<?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"; } ?>
Solicitud de API de matriz de distancia:
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters
Dónde outputFormat
podría ser cualquiera json
o xml
.
Y parameters
incluir :
origins
El punto de partida para calcular la distancia y el tiempo de viaje. Puede proporcionar una o más ubicaciones en forma de dirección, coordenadas de latitud/longitud o un ID de lugar.
destinations
Una o más ubicaciones a las que calcular la distancia y el tiempo de viaje.
mode
(opcional)
Especifica el modo de transporte. Las opciones incluyen conducir, caminar, andar en bicicleta y utilizar el transporte público.
units
(opcional)
Especifica el sistema de unidades que se utilizará al expresar la distancia como texto. Las opciones incluyen métrico e imperial.
departure_time
(opcional)
Especifica la hora de salida deseada como un número entero en segundos desde la medianoche del 1 de enero de 1970 UTC.
traffic_model
(opcional)
Especifica las suposiciones que se utilizarán al calcular el tiempo en el tráfico. Las opciones incluyen best_guess, pesimista y optimista.
Miguel
[ad_2]
コメント