Saltar la navegación

4.4.- Bing Maps. Calcular rutas.

Imagen de un mapa del mundo en dos dimensiones pixelado donde se pueden var distintos puntos geógraficos marcados.
Mudassar Iqbal (Pixabay License)

Bing Maps Routes API es un servicio web de Microsoft , que al igual que el visto en apartado anteriores también forma parte de Bing Maps, y cuya principal utilidad es el cálculo de rutas para llegar desde una ubicación origen a otra ubicación destino. Las rutas pueden incluir además puntos intermedios (hitos), y tanto ellos como el origen o el destino pueden especificarse mediante direcciones reconocibles por el usuario o mediante coordenadas (latitud y longitud).

Documentación sobre Bing Maps Routes API.

Los únicos parámetros que deben figurar obligatoriamente en una petición son:

  • El punto origen (wp.0).
  • El punto destino (wp.1).
  • La api key

Entre los parámetros opcionales están:

  • Se pueden indicar puntos intermedios de origen a destino (wp.0, wp.1, . . ., wp.n)
  • La "cultura (idioma, unidades de medida....)" en que se devuelven los resultados (c).
  • El formato de salida (JSON o AJAX) ("o").
  • El modo de desplazarse (walking, driving o transit). Por defecto el valor es: driving.

Por ejemplo, una consulta de Madrid a Almería, en coche, formato de salida JSON,  sistema métrico y castellano podría tener la siguiente forma:

http://dev.virtualearth.net/REST/V1/Routes/Driving?c=es&o=json&wp.0=madrid&wp.1=almeria&key=tuKey

La respuesta obtenida en formato JSON mostrará las indicaciones necesarias para llegar desde el origen al destino. El código necesario en PHP para utilizar el servicio será:

$url="http://dev.virtualearth.net/REST/V1/Routes/Driving?c=es&o=json&wp.0=madrid&wp.1=almeria&key=tu_KEY";
$json=json_decode(file_get_contents($url), true);
var_dump($json);

Una vez decodificado el formato JSON obtenido, el acceso a la información se realiza utilizando los elementos del objeto $respuesta. Revisa la documentación del servicio para ver cómo se estructuran las respuestas, o accede a la url desde el navegador y obsérvalo. Por ejemplo, si del ejemplo anterior queremos la distancia, podríamos hacerlo así:

$distancia=$json['resourceSets'][0]['resources'][0]['travelDistance'];
echo "$distancia klmts.";

Se utiliza la función "file_get_contents()" de PHP para almacenar en una variable la respuesta obtenida del servicio Básicamente lo que haces es convertir en un string el contenido de un fichero o una URL en este caso. Para que funcione asegúrate de tener la directiva "allow_url_fopen" de "php.ini" activada

Función file_get_contents.

Cuando crees una aplicación que utilice servicios proporcionados por terceros, deberás tener en cuenta siempre sus licencias de uso.

Autoevaluación

Pregunta

En una petición al servicio Bing Maps Routes , deben figurar obligatoriamente los parámetros:

Respuestas

origen, destino y api key.

origen, destino, formato de salida.

Retroalimentación