Mapping APIs

Publicado en

Autor

Los mapas existen desde que el hombre tuvo la necesidad de recordar una ubicación geográfica y la capacidad de plasmar esta información en algún medio, sin embargo durante muchos años la cartografía actualizada de un país o ciudad estaba restringida a un selecto grupo de profesionales, gobiernos o corporaciones que podían pagar un costo elevado por su creación, actualización y utilización.

En los tiempos del web 2.0 los mapas digitales (Google Maps, Yahoo Maps, Bing Maps, etc.) ya formaban parte de los recursos globales en internet y jugaron un papel clave para crear lo que se conoce como mashups o aplicaciones web que extienden su funcionalidad central utilizando aspectos de geolocalización, a través del uso de API´s (Application Programming Interface).

Centraremos este artículo en un par: Google Maps y Bing Maps, sin embargo cabe mencionar que existen muchos más jugadores o proveedores de plataformas para mapas tanto en modalidades de código abierto, como orientados a nichos específicos dependiendo el uso, pero por la relevancia del número de aplicaciones utilizando estas API´s Microsoft y Google están dictando el camino que seguirá en los próximos años este tipo de tecnología. Las figuras 1 y 2 muestran un panorama de los principales APIs provistos por Google y Bing.

Como transformar un simple mapa en una aplicación útil (Mashup)

Alrededor del concepto crowdsourcing se comienzan a fincar aplicaciones que hacen uso de la ilimitada y gratuita colaboración de los usuarios de internet para enriquecer ciertas dimensiones de un mapa, crear nuevas capas (layers) con información relevante a un contexto o nicho, anexar metadatos a puntos específicos dentro de un mapa tomando en cuenta que estos datos complementarios se encuentran almacenados en diversas fuentes y a su vez provienen de diversos dispositivos (embeded GPS, teléfonos celulares, cámaras digitales, sensores, etc.), esta interacción y colaboración es la que hace que nuestro mapa tome sentido y nos sea útil, por lo que es importante conocer las herramientas que nos pueden ayudar a desarrollar este tipo de aplicaciones.

Decidiendo que API´s utilizar

Existen 3 aspectos clave a considerar inicialmente al elegir una o más deuna API para nuestra aplicación, y estos aspectos son:

1. Experiencia de Uso (UX). La mayoría de las aplicaciones que utilizan mapas hoy día son web based, sin embargo debemos tomar en cuenta si alguna característica clave que estamos buscando del API requiere algún plugin como por ejemplo Flash, Air, ó Silverlight, tomar en cuenta estos aspectos será muy importante para determinar la usabilidad y el desempeño de nuestra aplicación. Lo sorprendente de un mapa no es tanto el mapa en si, sino la serie de experiencias de uso con las cuales podemos explorarlo como por ejemplo tener una vista en perspectiva (bird´s eye), realizar zoom in o zoom out con cierta fluidez, tener a la mano herramientas emergentes para colocar puntos de interés, zonas o visualizar información del contexto que estamos explorando, superponer fotografías e incluso visualizar mapas en 3D. También es necesario considerar el tipo de dispositivo desde el cual se realizará la exploración, ya sea una laptop, utilizando un mouse o un dispositivo móvil como iPhone o Windows Phone o un dispositivo multitouch como iPad.

2. Cobertura Geográfica. Los mapas ofrecidos tanto por Google Maps como por Microsoft Bing Maps son actualizados con cierta periodicidad no especificada, más aún no cubren en su totalidad el planeta entero ya sea a nivel países, ciudades o calles, este aspecto puede limitar el nicho de mercado al que necesitamos atender ya que algunas características de cada API solo están disponibles en ciertas latitudes y longitudes.

3. Licenciamiento. Uno de los aspectos más olvidados al considerar el uso de una API son los términos de licenciamiento y los acuerdos de nivel de servicio de cada una; La pregunta clave es ¿Puedo usar el API gratis?, la respuesta rápida es sí, siempre y cuando no la uses mucho y no cobres por su uso, entre muchos más aspectos. Otra pregunta rápida es ¿Cuándo pago el licenciamiento del API obtengo mejores imágenes de los mapas o un servicio más rápido?, la respuesta rápida es no en ambas opciones analizadas, tanto la versión gratuita como la comercial utilizan el mismo servicio, la opción comercial básicamente esta soportada por un acuerdo de nivel de servicio SLA.
Finalmente cabe aclarar que la mayoría de las API´s no fueron diseñadas para soportar un modelo de negocio, pero en estas opciones analizadas las versiones gratuitas Google y Microsoft pueden colocar publicidad en los mapas. Para todo desarrollador de aplicaciones web ya es una necesidad competitiva el contar con habilidades para el consumo de API´s de geolocalización, siendo así el aspecto de lenguaje de programación un factor secundario ya que uno de los fundamentos de un API es el de permitir interoperabilidad entre plataformas, haciendo uso de estándares y protocolos de comunicación como JavaScript Object Notation (JSON) que es un formato basado en un subset de JavaScript y se utiliza en aplicaciones con AJAX, Extended Markup Language (XML) mayormente utilizado cuando se trabaja con Flash o Silverlight, con la limitante de la longitud máxima de una petición a través de HTTP GET, SOAP (Simple Object Access Protocol) se recomienda para peticiones más complejas que requieran ser desarrolladas en lenguajes como C# o Java ya sea para aplicaciones de escritorio o en el servidor y finalmente REST (Representational State Transfer) para arquitecturas desacopladas o sin estado.

Mapas y realidad aumentada

Dentro de las implementaciones más futuristas pero a la vez reales, podemos encontrar aquellas que incorporan elementos de realidad aumentada, es decir agregan videos a través de dispositivos móviles en tiempo real sobreponiéndolo a una capa del mapa o extienden los mapas más allá de un solo plano o dimensión como por ejemplo a la visualización de estrellas, constelaciones o planetas dependiendo la ubicación geográfica del usuario, también a los océanos o incluso dentro de estructuras o edificios en una ciudad; una de las demostraciones mejor logradas de este tipo de implementaciones se puede ver en este link:

http://www.ted.com/talks/lang/eng/blaise_aguera.html

Contamos con la capacidad de procesamiento y almacenamiento ilimitado (Cloud Computing), contamos con API´s potentes alrededor de mapas y servicios de geolocalización, así como con dispositivos móviles habilitados con GPS y conectividad GPRS o WiFi y lo más importante es que contamos con un inmenso número de usuarios de internet dispuestos a colaborar con pequeñas tareas alrededor de una red social, grupo de trabajo o grupo de interés, por lo que solo es cuestión de tiempo para decir “este mapa me es muy útil”.
 





 

 
Bio

Paco Cuevas es ingeniero en sistemas, fundador y director de empresas de desarrollo web como Extend y Web Studios, también es emprendedor de servicios como MapsandNumbers.com el cual involucra tecnologías como Windows Azure, Google Maps y iPhone, actualmente colabora como Director de Desarrollo de Negocios en la empresa emLink y apoya a Microsoft como Windows Azure Evangelist.
@pacocuevas