Un vistazo a las capacidades GIS

Un vistazo a las capacidades GIS

Onesait Platform está preparada para soportar, procesar y representar datos con componente espacial.

Para ello, hace uso de diversas tecnologías y herramientas:

Bases de datos

Entre los diversos motores de persistencia soportados por Onesait Platform se encuentra PostgreSQL, el cual cuenta con capacidades geoespaciales gracias a la extensión de PostGIS. Con ella, es posible almacenar, consultar y manipular datos con componente espacial mediante SQL.

image-20250901-080121.png

Esta extensión es compatible con los estándares del OGC (Open Geospatial Consortium), y proporciona tipos de datos espaciales (geometría) y funciones para el análisis y la cartografía, así como índices multimensionales (como los basados en R-Tree y GiST) para procesar consultas espaciales de forma eficiente.

Soporte en las Entidades

A la hora de definir el modelo de datos de una Entidad, se cuenta con una serie de tipos de datos específicos para almacenar datos geoespaciales. Concretamente, se almacena el tipo de geometría y las coordenadas de la geometría, siguiendo el formato GeoJSON, definido como tal en la especificación RFC7946.

{ "type": "Feature", "geometry": { "type": "Point" "coordinates": [ -3.6415, 40.5291 ] } }

Se soportan las siguientes geometrías:

  • Point.

  • LineString.

  • Polygon.

  • MultiPoint.

  • MultiLineString.

  • MultiPolygon.

Éstas son seleccionables desde el desplegable de tipos de datos:

image-20250901-083209.png

Estos tipos de datos generar el correspondiente esquema JSON para almacenar los datos en formato GeoJSON:

image-20250901-083727.png

Así, generando una instancia de ejemplo, los datos se mostrarán de la siguiente forma:

image-20250901-083905.png

Respecto a las propiedades asociadas a la geometría, una instancia de tipo «Feature» de un GeoJSON las incluye dentro de un objeto «properties». Por ejemplo:

{ "type": "Feature", "geometry": { "type": "Point" "properties": { "id": "1", "name": "Sede", "value": 2025 } "coordinates": [ -3.6415, 40.5291 ] } }

En el caso de las Entidades, si bien es posible crear datos de tipo «objeto» en donde añadir las propiedades, se recomienda almacenarlas en la raíz de la instancia, para facilitar su gestión con las diferentes herramientas de la Plataforma (consultas, API REST, etc.).

Por ello, el ejemplo anterior quedaría definido de la siguiente forma:

image-20250901-084548.png

Y la instancia de ejemplo se vería así:

image-20250901-084632.png

A la hora de consumir esta Entidad, la estructura de datos no supondría ningún problema pues tanto en las API REST como en los DataSources, es posible procesar la respuesta para añadir estas propiedades a un objeto «properties», devolviendo una estructura de tipo «Feature».

Servidor GIS

La Plataforma es compatible con diferentes servidores GIS para que los usuarios puedan publicar, gestionar y compartir datos geográficos a través de una aplicación web.

Como servidor de referencia se usa GeoServer.

Geoserver

GeoServer es un servidor de código abierto para compartir datos geoespaciales, el cual implementa diferentes protocolos de la OGC para la interoperatibilidad.

Dichos protocolos son:

  • Web Map Service (WMS): para servir capas como imágenes.

  • Web Map Tile Service (WMTS): para servir capas como imágenes cacheadas.

  • Web Feature Service (WFS): para servir y editar datos vectoriales (usando el formato GeoJSON).

  • Web Coverage Service (WCS): para servir datos raster.

  • OGC API: para habilitar espacialmente las API web de forma coherente. OpenAPI se utiliza para definir los bloques de construcción API reutilizables con respuestas en JSON y HTML.

  • GeoTIFF: para compartir imágenes georreferenciadas o geocodificadas.

  • GPKG: para almacenar características vectoriales, conjuntos de matrices de mosaicos de imágenes, conjuntos de matrices de mosaicos de mapas ráster y datos tabulares no espaciales en una base de datos SQLite.

Este servidor se conecta a diferentes fuentes de datos espaciales; desde archivos shapefile (formato estándar GIS) a bases de datos, como PostGIS. El servidor disponibiliza la información para su consumo en aplicaciones cliente, como navegadores web, visores de mapas web, Notebooks (GeoPandas) o herramientas GIS de escritorio (ArcGIS, QGIS, GRASS GIS, etc.).

Servicios GIS

Onesait Platform es compatible con diferentes servicios GIS, tanto propios como externos, como pueden ser geocodificación (geocoding) directa e inversa, o enrutamiento geográfico (georouting).

La Plataforma es capaz de consumir las API REST de estos tipos de servicios, realizando llamadas parametrizadas con las consultas, recuperando los resultados, y almacenando y representando dichos resultados según se requiera.

Estos servicios se integran tanto a nivel de orquestación de flujos, como uso directo desde visualizadores de mapas, Gadgets, e incluso como herramientas disponibles para agentes de inteligencia artificial.

image-20250901-111728.png

Geocodificación

Se ha trabajado ampliamente con Nominatim, el servicio de geocodificación directa e inversa de OpenStreetMaps.

La geocodificación directa permite obtener las coordenadas de una dirección a nivel global, ya sea de un portal, una calle, una zona, etc. La información es accesible mediante la API REST de la que dispone Nominatim, pudiendo filtrar la información según la necesidad.

En el caso de la geocodificación inversa es algo similar; a partir de una coordenada, se obtiene la información de dirección. Dependiendo de la resolución de los datos en dicha coordenada, se obtendrá mayor o menor información.

Enrutamiento geográfico

En este caso se ha trabajado diversos servicios de rutas, los cuales permiten calcular de manera rápida y sencilla las rutas de circulación entre un punto de origen y un destino, incluyendo puntos intermedios, caminos bloqueados, matrices de transporte, forma de viaje, etc.

image-20250901-112725.png

Como en el caso anterior, estos servicios funcionan con API REST, las cuales se integran perfectamente con los diversos módulos de la Plataforma.

Librerías de visualización de mapas

Se cuenta con diferentes visualizadores de mapas basados en JavaScript, los cuales se usan según las necesidades y finalidad en cada momento:

  • Leaflet.

  • OpenLayers.

  • CesiumJS.

Leaflet

Para representar datos de forma rápida y sencilla se hace uso de Leaflet, una sencilla librería de código abierto que permite visualizar en un mapa 2D de alta resolución datos singulares o capas de datos.

image-20250901-113551.png

Este tipo de visor se utiliza principalmente en los Gadgets de los Dashboards, recibiendo la información desde DataSources de Entidades para su representación directa.

OpenLayers

A la hora de representar muchas capas y datos en 2D, se cuenta con visores de la librería de OpenLayers, los cuales cuentan con diversas extensiones que amplían su potencial.

Estos visores reciben sus datos tanto de DataSources de Entidades como de llamadas a servicios API REST, servicios OGC y otras fuentes. Esta librería se usa principalmente en los Proyectos de Mapas y en las plantillas de Gadgets de los Dashboards.

image-20250901-120300.png

CesiumJS

En el caso de que se tengan que representar muchos datos en pantalla (del rango de cientos de miles a millones de datos), o que la información a representar sea en 3D, se hace uso de la librería CesiumJS.

image-20250901-130044.png

Este tipo de visor permite también representar series de datos temporales, así como mostrar capas sobre y debajo de la superficie (minería, líneas de Metro, etc.). Además, cuenta con funcionalidades para realidad virtual (VR), compatibilidad con motores como Unity o Unreal, etc.

image-20250901-120845.png

Este tipo de visor se usa principalmente en los Visores GIS y plantillas de Gadgets de los Dashboards, recibiendo sus datos de Entidades, servicios externos y assets de Cesium Ion.

Herramientas de visualización de mapas

Onesait Platform cuenta con una serie de herramientas que permite visualizar mapas con datos geoespaciales. Estos son:

Gadgets de mapas

En los Dashboards se cuenta con diversos Gadgets predefinidos para generar mapas sencillos en los que visualizar los datos de tipo punto de las Entidades y los Dashboards.

Gadget Map

image-20250901-123100.png

Este es el Gadget que había por defecto, basado en Leaflet, para representar mapas en los Dashboards. Para configurarlo, únicamente se tiene que indicar los campos de longitud y latitud, el campo con el identicador único, y la información a mostrar en el popup de selección.

image-20250901-114430.png

Gadget MapCharts

image-20250901-124639.png

Este Gadgets es una evolución del anterior. La libreria que usa es la de OpenLayers, y permite entre sus opciones la configuración de un icono representativo para las geometrías, configurar la selección de elementos, etc.

image-20250901-125547.png

Plantillas de Gadget

Con las plantillas de Gadgets, el usuario puede desarrollar su propio código para generar un visor de mapas usando cualquier librería, ya sea usando las versiones estables (LTR) integradas en la propia Plataforma, o enlazando a la red de entrega de contenido (CDN) de la librería, o incluso subir una versión a los WebApp.

image-20250901-131006.png
image-20250901-130941.png

Esta opción permite representar otras geometrías, como líneas o polígonos.

Visores y capas GIS

Estas herramientas permiten crear visores de mapas y capas de datos de manera rápida y sencilla.

Capas GIS

Es posible crear capas de datos a partir de Entidades, o desde fuentes externas.

image-20250901-132459.png

Las capas desde una Entidad permite disponibilizar los contenidos de una Entidad que tenga un campo de geometría como una capa de mapa en formato GeoJSON.

Las capas externas, por otro lado, permiten generar una capa de mapa usando recursos externos, como puede ser un servicio WMS, un MapServer de ArcGIS Server, un Asset de CesiumIon (edificios 3D de una ciudad, por ejemplo), o incluso imágenes o archivos KML.

image-20250901-132700.png

Visores GIS

El asistente de creación de los visores GIS permite generar un mapa de manera rápida y directa. Se tendrá que indicar una latitud y longitud de inicio, definir una altura de cámara (cerca o lejos de la superficie), el mapa base que se quiere utilizar de un abanico de posibilidades, y cargar las capas en el mapa:

image-20250901-133237.png

Estos visores incorporan, en su modo de edición, de una pantalla partida en donde se visualiza el código del visor y el mapa.

Este código es modificable, permitiendo aumentar las capacidades del visor según las necesidades. Esta opción da un gran potencial a estos visores para su expansión y adaptación a los requerimientos del cliente.

Proyectos de mapas

Onesait Platform cuenta con una librería avanzada basada en OpenLayers para el desarrollo de proyectos complejos en los que se requieren una alta interoperatibilidad de tipos de capas, geoprocesamientos sencillos y visualización de múltiples mapas interconectados.

Esta librería se basa en un archivo de configuración centralizado, en formato JSON, a partir del cual se define cómo será el proyecto, qué mapas lo compondrán, qué capas tendrá cada mapa y qué simbología usará.

Además, permite configurar qué sistemas de proyección se usarán, permitirá configurar servicios de geocodificación y enrutado geográfico, selección por atributos o geometría, etc.

image-20250901-135210.png

Como ejemplo de uso, se cuenta con dos visores de mapas -uno en Vue2 y otro en Angular- desarrollados con esta librería para mostrar sus capacidades.

Análisis geoespacial

Todo sistema de información geográfica (GIS) se fundamenta en el análisis geoespacial. Es por ello que la Plataforma cuenta con diferentes herramientas para realizar análisis geoespaciales y llevar a cabo geoprocesamientos GIS.

image-20250901-135632.png
Fuente: GISRSStudy

Notebooks

Se pueden preparar Notebooks para realizar los análisis geoespaciales. Estos pueden ser invocados mediante una llamada API REST, pasándole unos parámetros, llevando a cabo el procesamiento, y devolviendo al visor de mapas un resultado, que puede ser pintado o utilizado según se requiera.

Estos Notebooks pueden cargar diferentes librerías de análisis, como puede ser el caso de GeoPandas.

Librerías de front-end

Si se requiere un análisis sencillo sin contar con un soporte desde back-end, es posible ejecutar análisis en caliente sobre el lado del cliente.

Un ejemplo de este tipo de librerías es Turf.js, una librería basada en JavaScript que permite realizar sencillos geoprocesamientos.

Machine Learning

Es posible integrar algoritmos de inteligencia artificial en los visores de mapas para llevar a cabo tareas de aprendizaje profundo. Para ello, se hace uso de las herramientas de Machine Learning de la propia Onesait Platform, tomando como parámetros los datos de las capas.

image-20250901-141151.png

Flow Engine

El módulo de Flow Engine, basado en Node-RED, permite orquestar flujos de trabajo. Esto permite generar geoprocesamientos sencillos al más puro estilo de ModelBuilder de ESRI, extrayendo datos de Entidades o parámetros de entrada del propio visor de mapas, procesar el análisis, y devolver una respuesta al visor.

image-20250901-143713.png

PostGIS

Partiendo de que los datos están en PostgreSQL, es posible realizar geoprocesamientos y análisis complejos utilizando la extensión de PostGIS mediante consultas SQL.

image-20250901-143838.png
Fuente: crunchydata

Portal de datos abiertos

Como portal de datos abierto, desde donde consultar y descargar datos GIS, Onesait Platform cuenta con CKAN, una plataforma de gestión de datos que permite a gobiernos y organizaciones publicar, compartir, encontrar y utilizar datos de manera eficiente.

Esta plataforma tiene incluida una extensión para interpretar y gestionar datos geoespaciales, haciéndolo compatible con mapas y formatos típicos de GIS, como puede ser shapefile.

Este portal, que permite definir roles y usuarios para limitar el acceso a los datos, hace uso del módulo de Identity Manager de la Plataforma para gestionar la autenticación y los roles mediante los dominios de seguridad.