tres - Uso de PHP y google Maps Api para calcular la distancia entre 2 códigos postales(Reino Unido)
obtener distancia google maps (5)
Echa un vistazo a la lista de correo aquí:
http://groups.google.com/group/Google-Maps-API/browse_thread/thread/71e6aa2c3de66127
Una vez que decida si desea una línea recta o una distancia de conducción, puede calcularlo realmente fácilmente. No tienes que usar PHP pero hay ejemplos.
Mira esto también:
Hay, me pregunto cómo calcular la distancia entre 2 códigos postales usando PHP y Google Maps Api.
Cualquiera tiene alguna idea o enlaces a ejemplos.
La API de Google Maps está en JavaScript, no en PHP. Para lograr lo que desea, gire los 2 códigos postales a las coordenadas LatLang y use la función distanceFrom
para encontrar la distancia entre ellos.
Echa un vistazo a este artículo para ver algunos ejemplos de código.
No sé si la API de V3 cambia algo, pero he estado usando esto durante bastante tiempo y todavía funciona:
Desde y hacia se expresan cada uno como latitud, longitud (una dirección probablemente funcionaría; estoy seguro de que lo intenté pero no recuerdo y de todas formas tenía las coordenadas)
$base_url = ''http://maps.googleapis.com/maps/api/directions/xml?sensor=false'';
$xml = simplexml_load_file("$base_url&origin=$from&destination=$to");
$distance = (string)$xml->route->leg->distance->text;
$duration = (string)$xml->route->leg->duration->text
Sobre la base de la respuesta de Daniel, puede utilizar la API de codificación geográfica de Google para obtener fácilmente distancias en automóvil, transporte público, caminar y andar en bicicleta:
$postcode1=''W1J0DB'';
$postcode2=''W23UW'';
$result = array();
$url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=$postcode1&destinations=$postcode2&mode=bicycling&language=en-EN&sensor=false";
$data = @file_get_contents($url);
$result = json_decode($data, true);
print_r($result);
Asegúrese de reemplazar & mode = biking con su parámetro preferido:
- & mode = conducir
- & mode = ciclismo
- & mode = tránsito
- & mode = caminando
Suponiendo que está buscando la distancia geográfica , primero necesita obtener la latitud y la longitud de sus dos códigos postales con los servicios de geocodificación del lado del servidor de Google Maps como en el siguiente ejemplo:
$url = ''http://maps.google.com/maps/geo?q=EC3M,+UK&output=csv&sensor=false'';
$data = @file_get_contents($url);
$result = explode(",", $data);
echo $result[0]; // status code
echo $result[1]; // accuracy
echo $result[2]; // latitude
echo $result[3]; // longitude
Luego, puede calcular la distancia entre las coordenadas de sus dos códigos postales utilizando una implementación de gran distancia de círculo como la siguiente:
Tenga en cuenta que el servicio de geocodificación del lado del servidor solo se puede utilizar junto con la visualización de resultados en un mapa de Google; Los resultados de geocodificación sin mostrarlos en un mapa están prohibidos por los Términos de servicio de la API de Google Maps Restricciones de licencia .
ACTUALIZAR:
Si está buscando la distancia de conducción en lugar de la distancia geográfica, tenga en cuenta que no hay un método documentado y aprobado en este momento para acceder a la API de indicaciones de Google Maps a través de una solicitud HTTP en el lado del servidor.
Sin embargo, un método no documentado que devuelve una salida JSON es el siguiente:
http://maps.google.com/maps/nav?q=from:London%20to:Dover
Esto le devolverá las direcciones de manejo, junto con la distancia total en formato JSON: "meters":122977
.
El formato del parámetro q
debe ser from:xxx%20to:yyy
. Reemplace xxx y yyy con el inicio y el destino respectivamente. Puede usar coordenadas de latitud y longitud en lugar de direcciones completas:
http://maps.google.com/maps/nav?q=from:51.519894,-0.105667%20to:51.129079,1.306925
Tenga en cuenta que no solo esto no está documentado, sino que también puede violar las restricciones 10.1 y 10.5 de los Términos y condiciones de la API de Google Maps .
También te puede interesar revisar los siguientes artículos relacionados:
- Desbordamiento de pila: ¿Calcular las direcciones de conducción usando PHP?
- Obtener distancia usando GDirections a través de URL
- Obtenga indicaciones de manejo de google maps con llamadas HTTP del lado del servidor y muestre resultados con mapas estáticos para WAP
- Google Maps y direcciones, interfaz REST?