Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Tomar datos desde una url de Google Maps

Estas en el tema de Tomar datos desde una url de Google Maps en el foro de PHP en Foros del Web. Hola a todos. Queria saber si me pueden ayuda: tengo este script que saque de Google Maps para tomar la distancia entre dos direcciones. Código ...
  #1 (permalink)  
Antiguo 12/05/2017, 21:26
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Pregunta Tomar datos desde una url de Google Maps

Hola a todos. Queria saber si me pueden ayuda: tengo este script que saque de Google Maps para tomar la distancia entre dos direcciones.

Código PHP:
$origins "Direccion uno";
$destination "Direccion dos";

$urlApi "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$origins."&destinations=".$destination."&mode=driving&key=unakey";
$result file_get_contents($urlApi);
$data   json_decode($resulttrue);

echo 
"<markers>"print_r($urlApi); echo "</markers>"
El resultado es una url que al redireccionarla da como respuesta lo siguiente:

Código:
{
   "destination_addresses" : [
      "Direcciondos+CodigoPostal+Barrio, Buenos Aires, Argentina"
   ],
   "origin_addresses" : [ "Direccionuno+CodigoPostal+Barrio, Buenos Aires, Argentina" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "4.4 km",
                  "value" : 4383
               },
               "duration" : {
                  "text" : "8 min",
                  "value" : 459
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}
Hasta ahi, todo cumple con lo previsto, pero necesito saber como tomo los datos que figuran en esa lista. Mas que nada necesito los kilometros y el tiempo en llagar.

Gracias y espero me ayuden.
__________________
Zreep
  #2 (permalink)  
Antiguo 12/05/2017, 22:39
 
Fecha de Ingreso: agosto-2011
Mensajes: 87
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Tomar datos desde una url de Google Maps

usa la funcion de PHP json_decode y luego haces un print_r() para ver como puedes acceder a la array que deseas

Última edición por Camatagua123; 12/05/2017 a las 22:51
  #3 (permalink)  
Antiguo 12/05/2017, 23:16
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Tomar datos desde una url de Google Maps

Gracias Camatagual23, pero veo la función json_decode esta en el scrpt de php, pero no se como extraer el dato. No pido que los hagas, pero que me orientes un poco porque no se como tendria que hacerlo desde esta url:

Código:
https://maps.googleapis.com/maps/api/distancematrix/json?origins=calle%20numero,%20barrio&destinations=calle%20numero,%20barrio&mode=driving&key=unaKey
Gracias
__________________
Zreep
  #4 (permalink)  
Antiguo 12/05/2017, 23:39
 
Fecha de Ingreso: agosto-2011
Mensajes: 87
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Tomar datos desde una url de Google Maps

Mira este tema.. es muy parecido a lo que tienes o quieres

http://www.forosdelweb.com/f18/leer-...terna-1146102/

se usa la funcion file_get_contents para extraer el JSON desde la url, luego utiliza la funcion json_decode para tratarlo como un objeto

Cita:
Recuerda Verificar que esté activada la función file_get_content en el archivo php.ini
  #5 (permalink)  
Antiguo 13/05/2017, 00:24
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Tomar datos desde una url de Google Maps

Gracias nuevamente, la verdad avance mucho. Tengo la url en condiciones, ahi habia otro error que ya arregle y pude hacer que me muestre un array:

Código PHP:
$urlApi 'https://maps.googleapis.com/maps/api/distancematrix/json?...';
$result file_get_contents($urlApi);
$data   json_decode($resulttrue);
$lst $data['rows'][0];
echo 
"<pre>";
print_r($lst);
exit; 
Esto me muestra los siguiente:

Código:
Array
(
    [elements] => Array
        (
            [0] => Array
                (
                    [distance] => Array
                        (
                            [text] => 4.4 km
                            [value] => 4383
                        )

                    [duration] => Array
                        (
                            [text] => 8 mins
                            [value] => 459
                        )

                    [status] => OK
                )

        )

)

Ahora, viene lo que nunca hice, como extraigo un dato determinado de esta array? Solo me interesa saber la distancia en km y la duración.

Gracias
__________________
Zreep
  #6 (permalink)  
Antiguo 13/05/2017, 01:03
 
Fecha de Ingreso: agosto-2011
Mensajes: 87
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Tomar datos desde una url de Google Maps

es facil manejar los array des pues de que ahces un print_r

si queremos obtener KMs
tenemos que ir adentrandonos entre los array


1.- Accedemos al array $lst

Código PHP:

$Kms 
$lst
2.- Acceder al array elements que está dentro de $lst

Código PHP:

$Kms 
$lst['elements']; 
3.- Acceder al array 0 que está dentro de elements que está dentro de $lst

Código PHP:

$Kms 
$lst['elements'][0]; 

4.- Acceder al array distance que está dentro de 0 que está dentro de elements que está dentro de $lst

Código PHP:
$lst['elements'][0]['distance'
5.- Y por ultimo acceder al TEXTO que está dentro de la variable text que está dentro del array distance que está dentro de 0 que está dentro de elements que está dentro de $lst
Código PHP:
$Kms $lst['elements'][0]['distance']['text'
y asi haces tambien para obtener la duracion.

deberia de quedarte algo asi, si no estoy equivocado


Código PHP:
echo $Kms $lst['elements'][0]['distance']['text']; //Los Distancia en Kilometros 
echo $duracion $lst['elements'][0]['duration']['text']; // La Duración en minutos 
__________________
No le pare bola a la vida, que la vida no le para bolas a uno!

Última edición por Camatagua123; 13/05/2017 a las 01:20
  #7 (permalink)  
Antiguo 13/05/2017, 01:26
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Tomar datos desde una url de Google Maps

Muchas, pero muchas gracias... quedo asi:

Código PHP:

echo $data['rows'][0]['elements'][0]['distance']['text']; 
Lo que da como resultado la distancia.

Gracias nuevamente...

pd: termine lo que quedaba de la pizza para darle fin a esto... je
__________________
Zreep
  #8 (permalink)  
Antiguo 13/05/2017, 07:35
 
Fecha de Ingreso: agosto-2011
Mensajes: 87
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Tomar datos desde una url de Google Maps

Me alegra haberte ayudado ! jejeje saludos y suerte

PD: No te ovides de marcar como solucionado el tema!
__________________
No le pare bola a la vida, que la vida no le para bolas a uno!

Etiquetas: google, maps, tomar, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:50.