videos puntos profe los google geograficos entre ejemplos distancia coordenadas calcular php geolocation

php - puntos - Distancia entre dos direcciones



php calcular distancia entre coordenadas google maps (1)

API de Google Maps: las indicaciones son un buen lugar para comenzar.

Enviar una solicitud utilizando el patrón de URL:

http://maps.google.com/maps/api/directions/xml?origin=[FROM_ADDRESS]&destination=[TO_ADDRESS]&sensor=false // [FROM_ADDRESS] is a Google-Recognisable address for the Start // [TO_ADDRESS] is a Google-Recognisable address for the End

Ejemplo: "¿Cómo llego al Carnegie Hall? (De Sony Music Entertainment)"

Dirección de inicio: 550 Madison Avenue, Nueva York, NY, Estados Unidos Dirección final: 881 7th Avenue, Nueva York, NY, Estados Unidos

La URL para las direcciones XML de Google sería

http://maps.google.com/maps/api/directions/xml?origin=550+Madison+Avenue,+New+York,+NY,+United+States&destination=881+7th+Avenue,+New+York,+NY,+United+States&sensor=false

El resultado es:

<DirectionsResponse> <status>OK</status> <route> <summary>E 57th St</summary> <leg> <step> <travel_mode>DRIVING</travel_mode> <start_location> <lat>40.7612400</lat> <lng>-73.9731300</lng> </start_location> <end_location> <lat>40.7622900</lat> <lng>-73.9723600</lng> </end_location> <polyline> <points>wdxwF`{nbMqEyC</points> <levels>BB</levels> </polyline> <duration> <value>9</value> <text>1 min</text> </duration> <html_instructions> Head <b>northeast</b> on <b>Madison Ave</b> toward <b>E 56th St</b> </html_instructions> <distance> <value>133</value> <text>436 ft</text> </distance> </step> <step> <travel_mode>DRIVING</travel_mode> <start_location> <lat>40.7622900</lat> <lng>-73.9723600</lng> </start_location> <end_location> <lat>40.7655300</lat> <lng>-73.9800500</lng> </end_location> <polyline> <points>ikxwFfvnbMgS`o@</points> <levels>BB</levels> </polyline> <duration> <value>148</value> <text>2 mins</text> </duration> <html_instructions> Turn <b>left</b> at the 2nd cross street onto <b>E 57th St</b> </html_instructions> <distance> <value>741</value> <text>0.5 mi</text> </distance> </step> <step> <travel_mode>DRIVING</travel_mode> <start_location> <lat>40.7655300</lat> <lng>-73.9800500</lng> </start_location> <end_location> <lat>40.7651800</lat> <lng>-73.9803000</lng> </end_location> <polyline> <points>q_ywFhfpbMdAp@</points> <levels>BB</levels> </polyline> <duration> <value>39</value> <text>1 min</text> </duration> <html_instructions> Turn <b>left</b> at the 3rd cross street onto <b>7th Ave</b> <div style="font-size:0.9em">Destination will be on the left</div> </html_instructions> <distance> <value>45</value> <text>148 ft</text> </distance> </step> <duration> <value>196</value> <text>3 mins</text> </duration> <distance> <value>919</value> <text>0.6 mi</text> </distance> <start_location> <lat>40.7612400</lat> <lng>-73.9731300</lng> </start_location> <end_location> <lat>40.7651800</lat> <lng>-73.9803000</lng> </end_location> <start_address>550 Madison Ave, New York, NY 10022, USA</start_address> <end_address>881 7th Ave, New York, NY 10019, USA</end_address> </leg> <copyrights>Map data ©2010 Google, Sanborn</copyrights> <overview_polyline> <points>wdxwF`{nbMqEyCgS`o@dAp@</points> <levels>B@?B</levels> </overview_polyline> </route> </DirectionsResponse>

Entonces, la ruta más rápida entre esos dos puntos tendrá detalles de:

  • Duración en segundos

    DirectionsResponse> ruta> pierna> duración> valor

  • Duración en texto sin formato

    DirectionsResponse> ruta> pierna> duración> texto

  • Distancia en la Unidad Base de Mediciones Locales (Pies o Metros)

    DirectionsResponse> route> leg> distance> value

  • Distancia en texto plano para medición local (millas o kilómetros)

    DirectionsResponse> ruta> pierna> distancia> texto

Estoy escribiendo un sitio web de reserva en php y necesitaría una biblioteca o un servicio remoto (similar a la API de Google Maps) que calcule la distancia entre 2 direcciones.

Idealmente prefiero la distancia por carretera pero no me importa demasiado el tipo de distancia.

¿Me puedes ayudar?

Muchas gracias, toda ayuda será bienvenida.