¿Qué es el web mapping?
El web mapping trata de llevar la cartografía a la web. Se trata de un conjunto de tecnologías que permiten visualizar capas, mapas, datos o servicios cartográficos en navegadores web y aplicaciones móviles.
Si bien es una tecnología reciente, la realidad es que en los últimos años ha adquirido un potencial increíble gracias a distintas librerías y APIs para web mapping.
La visualización de mapas online no es el objetivo exclusivo del web mapping: ahora estas librerías y plataformas permiten ir más allá. Con estas herramientas es posible incluso realizar análisis espaciales, interacciones y animaciones muy interesantes para cualquier proyecto.
En muchas ocasiones, las plataformas enfocadas al web mapping han desarrollado sus librerías JavaScript para permitir a los usuarios poder ejercitar sus APIs. De esta manera se facilita el acceso a sus servicios de almacenamiento, análisis y visualización de datos geográficos.
En este artículo listamos las principales librerías para web mapping, así como las plataformas SaaS que lideran el mercado de la cartografía en línea.
Principales Librerías para web mapping
La API de OpenLayers: la librería clásica para web mapping
OpenLayers es una librería para web mapping Open Source, ampliamente utilizada para multitud de proyectos de cartografía web. Está disponible para la mayoría de navegadores web modernos que soporten HTML5 y ECMAScript 5 (estándar de lenguaje JavaScript) como Chrome, Firefox, Opera, Edge, Safari…OpenLayers está preparada para generar mapas web tanto para versión de escritorio como para versión móvil debido a sus funcionalidades para facilitar la navegación dentro del mapa en cualquier tipo de dispositivo como por su integración con CSS3.
La librería es accesible a través de su API OpenLayers, excelentemente documentada. Sus funcionalidades son extensibles mediante otras librerías de enlace como, por ejemplo, para integrar funcionalides de Cesium, Turf, D3, React o Geocoder, entre otros.
OpenLayers permite tanto el uso y la visualización de capas de teselas como de capas vectoriales. Asimismo, es fácilmente personalizable y soporta distintos proveedores de mapas base como Bing, OpenStreetMaps, Google Maps, etc.
Además de ello, es necesario destacar que la librería OpenLayers está respaldada por la Fundación OSGEO. De hecho, forma parte del núcleo de proyectos que desarrolla esta organización.
El punto fuerte de esta librería para web mapping es su robustez, su amplia implementación y un uso generalizado. Además, cabe destacar su extensa y bien documentada API y su integración con otras librerías que extienden las posibilidades de desarrollo de proyectos web mapping basados en ella.
La API de Leaflet: ligereza y flexibilidad para proyectos web mapping
Leaflet es la otra gran librería Open Source centrada totalmente en el web mapping interactivo y en facilitar las soluciones de cartografía web tanto para navegadores de escritorio como para dispositivos móviles.
Su gran implementación y uso preferido por gran cantidad de desarrolladores se debe a su desempeño y rapidez, flexibilidad y adaptabilidad.
De hecho, el punto fuerte de Leaflet es su ligereza aunada a su diseño modular, siendo capaz de ser extendida mediante una gran colección de plugins. Aquí radica su fortaleza y la clave de su éxito.
La librería por defecto, si bien es suficiente para cubrir las necesidades de gran parte de los desarrolladores, permite implementar funcionalidades extra.
Algunas de ellas son, por ejemplo, la capacidad de implementar servicios de geocodificación, añadir minimapas de localización, realizar heatmaps, mostrar popups, generar perfiles topográficos sincronizados o introducir timelines entre otras.
La API de Leaflet es también muy extensa y está bien documentada, así como las características de sus cientos de plugins. Además, Leaflet ofrece una serie de tutoriales introductorios para familiarizarse con sus peculiaridades y opciones.
Con Leaflet podremos cargar distintos tipos de capas y datos, desde teselas vectoriales y servicios WMS hasta capas de vectores (puntos, líneas, polilíneas y polígonos) en distinto formato, imágenes y archivos GeoJSON.
Leaflet es compatible con la mayoría de navegadores web modernos tanto para la versión de escritorio como móvil.
Google Maps API: los servicios de Google para aplicaciones de web mapping
Google ofrece la posibilidad de acceder a sus servicios de mapas web mediante su Google Maps Javascript API. Mediante esta API se pueden crear mapas interactivos basados en los mapas base de Google y añadir contenido como capas e imágenes.
Además, Google ofrece la posibilidad de complementar cualquier proyecto o aplicación de web mapping mediante su extenso ecosistema de funcionalidades.
De hecho, la API de Javascript para Maps forma parte de una serie de servicios asociados basados en la plataforma de Google Maps, que a su vez es parte de Google Cloud. Ésta plataforma ofrece 3 grandes paquetes de funcionalidades complementarios entre sí:
- Maps, para generar mapas interactivos que podrán ser implementados en aplicaciones web y móviles (tanto Android como Ios) y la API de Street View para complementarlos.
- Routes, que aporta las funcionalidades de cálculo de rutas, las direcciones de navegación y las actualizaciones de tráfico en tiempo real. En este caso, mediante las APIs Directions, Distance Matrix y Roads. Estas capacidades podrán aplicarse a los proyectos de cartografía interactiva en clientes web o en aplicaciones para dispositivos móviles.
- Places, que implementa las funcionalidades de búsqueda, geocodificación directa e inversa, información sobre millones de lugares y capacidades de geolocalización de usuarios, entre otras.
Lógicamente la integración de todas las capacidades mencionadas es un punto a favor para utilizar los servicios de Google. Sin embargo, debes saber que desde mediados de 2018 la API de Google Maps ha dejado de ser gratuita, aunque los precios son ajustables según el número de peticiones al servicio y existen excepciones.
De hecho, Google ofrece un crédito de 200$ mensuales (unos 175€) para cubrir las necesidades de consulta a aplicaciones con poco tráfico. No obstante, para aplicaciones web de acceso superior o masivo el cobro puede suponer un importante desembolso.
En cualquier caso, los precios son escalables y adaptables en función del uso. Se estima el límite inferior de cobro a partir de las 100.000 cargas en mapas estáticos no embebidos o 28.000 cargas en dinámicos. Puedes consultar toda la información de cobro y hacer un cálculo aproximado desde aquí.
Los servicios que siguen siendo gratuitos son los mapas estáticos nativos en aplicaciones móviles, los mapas dinámicos en aplicaciones móviles y los mapas embebidos en cualquier página web. No obstante, al incorporar funcionalidades avanzadas de cualquier paquete (Maps, Routes o Places) sí deberá pagarse por su uso.
Mapbox GL JS: plataforma para aplicaciones web mapping y de navegación
Mapbox, de manera parecida al caso de Google, no es tan sólo una librería de JavaScript enfocada al web mapping. Se define como una plataforma de localización en tiempo real dirigida al desarrollo de aplicaciones basadas en mapas y la visualización de información espacial.
De hecho, los puntos en los que se centra Mapbox son el desarrollo de aplicaciones móviles, la navegación, la realidad aumentada y la visualización de datos. Para ello, ofrece distintos productos centrados en cada uno de los pilares de su oferta tecnológica.
De todos los productos que contiene Mapbox, Maps es el que se enfoca a la construcción de aplicaciones de mapas. Para ello, cuenta con una API denominada Mapbox GL JS.
La API de Mapbox es una librería JavaScript para generar y mostrar teselas vectoriales bajo estilos tanto propios de Mapbox como personalizables mediante Mapbox Studio. También permite añadir mapas base de otros proveedores como Google Maps u OpenStreetMap, entre otros.
Con Mapbox GL JS pueden construirse mapas web interactivos altamente personalizables. Así, se permite modificar los controles y disposición de los elementos de navegación y zoom en el mapa, añadir y personalizar marcadores, implementar ventanas o pop-ups…
Asimismo, se podrán añadir capas de información geográfica vectoriales en formato GeoJSON como capas ráster en formato imagen, tanto estáticas como animadas. Incluso, algo muy llamativo: pueden añadirse vídeos geolocalizados a partir de grabaciones, por ejemplo, captadas mediante drones.
Otro factor muy interesante es la incorporación de la librería Turf.js a los mapas basados en la API de Mapbox. Turf.js es una librería increíble que permite realizar análisis espacial en la web, incorporando algunos geoprocesos básicos característicos de los tradicionales GIS de escritorio.
Además de Mapbox GL JS, también se provee de Mapbox.js: una librería basada en Leaflet.js para añadir funcionalidades extra a las aplicaciones de mapas mediante métodos o funciones propias de Mapbox.
Asimismo, Mapbox dispone de servicios de geocodificación y de cálculo de rutas y direcciones para el desarrollo de aplicaciones más avanzadas que así lo requieran.
La potencialidad de Mapbox y su conjunto de soluciones lógicamente tiene un coste. Existe una política de planes y precios para el uso de la plataforma de manera escalable. Para cualquier aplicación web y móvil, el límite de pago se establece a partir de las 50.000 peticiones por mes.
Cualquier aplicación que no supere, por ejemplo, las 50.000 visualizaciones de mapas mensuales no implicará ningún coste. Sin embargo, para aplicaciones con mayor tráfico Mapbox establece un cobro de 0,50$ por cada 1.000 peticiones de cualquier tipo a los distintos servicios.
Librerías y APIs del ecosistema de CARTO: web mapping y Location Intelligence
CARTO es otra plataforma orientada a la visualización de datos espaciales mediante cartografía en línea, a la analítica de datos y al desarrollo de aplicaciones con componente geográfico.
Su línea de negocio se centra en aportar soluciones de Location Intelligence a grandes empresas de múltiples sectores a partir de datos con componente geográfico, aunque no exclusivamente.
CARTO se ha ido convirtiendo con el tiempo en una compleja y poderosa plataforma que combina servicios de análisis, alojamiento y visualización de datos capaz de ofrecer resultados muy potentes.
Del mismo modo, CARTO provee soluciones avanzadas para desarrolladores, accesibles mediante distintas librerías y APIs. Éstas están totalmente orientadas a la creación de aplicaciones capaces de cubrir todos los pasos en la gestión de la geoinformación, así como su análisis y enriquecimiento para cualquier estrategia de negocio.
Cuenta con distintos componentes que se sitúan en diversos niveles:
- CARTO Builder como herramienta de visualización y análisis intuitiva de datos sin necesidad de conocimientos de programación
- El entorno de CARTO Engine como motor o framework de desarrollo de aplicaciones
- Las distintas librerías y las APIs que ofrecen la conexión a los servicios.
Entre sus distintas soluciones, dispone de una librería JavaScript que sirve de interacción con distintas APIs del ecosistema de soluciones de CARTO.
Esta librería se denomina Carto.js y permite desarrollar visualizaciones para proyectos de web mapping fuera de la propia plataforma de CARTO, aunque haciendo uso de sus servicios a través de las APIs.
En cierto modo, Carto.js es una capa de abstracción situada por encima de las APIs que proveen las distintas funcionalidades de conexión y uso de la plataforma.
Las principales APIs de CARTO son Maps API, SQL API, Auth API, Data Services API e Import API.
Cada una de ellas se centra en un objetivo concreto:
- Auth API permite acceder a los distintos conjuntos de datos y servicios bajo autorización de la propia plataforma, de forma que es indispensable para cualquier operación y para el uso de las distintas APIs de CARTO.
- Import API está diseñada para la gestión y subida de datos a la plataforma de CARTO mediante el protocolo HTTP.
- Maps API sirve para desarrollar mapas a partir de datos alojados en la plataforma de CARTO y ser mostrados en clientes web de cartografía como Leaflet u OpenLayers.
- SQL API permite ejecutar consultas a tablas alojadas en la plataforma de CARTO, como si se tratara de sentencias SQL a cualquier base de datos.
- Data Services API para incorporar funcionalidades de location data operadas mediante consultas SQL y así obtener, por ejemplo, selecciones predefinidas de manera interactiva sobre los datos útiles para el análisis.
Cabe destacar que Carto.js puede integrarse con otras librerías como Leaflet o Torque.js para la creación de visualizaciones de datos dinámicas animadas y personalizables.
La plataforma CARTO, asimismo, también dispone de distintos SDKs para el desarrollo de aplicaciones móviles en Android, iOS y Windows o la gestión de información geográfica con Python en el entorno servidor.
En cualquier caso, las distintas librerías y APIs de CARTO están muy bien documentadas y cuentan con información útil para conocer el funcionamiento del ecosistema de CARTO, para comprender sus objetivos y poder ser usadas como referencia para empezar a trabajar con los servicios de esta plataforma.
ArcGIS API for JavaScript: soluciones web mapping del líder del sector GIS
ESRI es el líder indiscutible del software GIS desde hace décadas. Como no podía ser de otra manera, también ha desarrollado su propia librería JavaScript para dar acceso a su API y servicios de web mapping y construcción de aplicaciones.
ArcGIS API for JavaScript está bien documentada y extensa, incluyendo guías y tutoriales para ejercitarla y aprender los conceptos básicos. Cuenta con multitud de posibilidades para el desarrollo de soluciones de visualización de mapas en aplicaciones web y móviles, gracias a los SDKs que ESRI pone a disposición de los desarrolladores.
Tal y como promocionan desde la propia página de ESRI, uno de los puntos fuertes de la ArcGIS API for Javascript es la capacidad de desarrollar aplicaciones web mapping tanto 2D como 3D.
Asimismo, la API permite desplegar distintos tipos de capas: mapas base, imágenes de satélite y ráster, capas vectoriales y objetos tridimensionales.
Las funcionalidades de la API de ESRI son extensas e incluyen, entre otras:
- Configuración y visualización de mapas web y capas de distinto formato
- Servicio de geocodificación de direcciones
- Trazado de rutas óptimas
- Análisis espacial y del terreno
- Enriquecimiento de datos
- Visualización de mapas y datos offline
El ecosistema de la plataforma SaaS de ESRI ha incorporado cambios profundos recientes y una política de pago basada en el uso escalable de las soluciones a través de créditos.
No obstante, existe una especie de “paquete” a modo de suscripción en ArcGIS for Developers denominado Essentials que incluye 50 créditos y diversas funcionalidades gratuitas:
- Acceso a todas las APIs y SDKs para el desarrollo de aplicaciones web y móvil
- Hasta 1 millón de cargas de mapas y consultas de geocodificación mensuales
- Gestionar los contenidos de los mapas y aplicar estilos personalizados
- Almacenar, consultar y analizar los datos alojados
En sí, podríamos decir que se trata de un servicio freemium, escalable en cualquier caso bajo lo que denominan “pay as you go”. Es decir, una vez agotadas las funcionalidades gratuitas del paquete Essentials se aplica un coste adicional, basado en la obtención de más créditos.
Si quieres aprender más acerca de programación y desarrollo GIS, conocer acerca de cuáles son los lenguajes de programación más habituales y qué recursos de aprendizaje existen, te recomendamos pasarte por aquí.