API SITNA

(tres años después)
https://github.com/sitna/api-sitna

Fernando Lacunza

Contenido de la presentación

  • Qué es la API SITNA
  • Novedades introducidas
  • Desarrollos efectuados

Qué es la API SITNA

  • API de desarrollo JavaScript para la creación de mapas incrustados en aplicaciones web
  • Basada en OpenLayers
  • Trabaja exclusivamente con servicios OGC y archivos locales
  • Pensada para desarrolladores con pocos conocimientos GIS
  • Mapa + colección de controles de usuario
  • Utilizada en desarrollos del Gobierno de Navarra

Novedades introducidas

Información de entidades geográficas

  • Control para obtener datos geográficos del mapa en un punto
  • Basado en la petición GetFeatureInfo de WMS
  • Aprovecha la capacidad de los servidores actuales para incluir geometrías en la respuesta

Información de entidades geográficas

Información de entidades geográficas

Problema: heterogeneidad de formatos en la respuesta

Solución:

  • Lista ordenada de formatos preferidos
  • Se pide el formato más favorable de los que ofrece el servicio
  • En formatos no suficientemente estructurados (HTML, texto plano), se pone el contenido de la respuesta en un iframe

Información de entidades geográficas

Problema: en las respuestas no hay manera clara de asociar entidad geográfica con capa

Solución: “adivinar”. En GeoServer los identificadores de entidad geográficas tienen de prefijo el nombre de la capa

Si no encontramos la capa por este método, se muestran los resultados en una capa “cajón de sastre”

Cambios de proyección cartográfica

  • El usuario puede establecer el sistema de referencia de coordenadas
  • El cambio es en caliente, sin recargar el mapa
  • Consulta CRS compatibles en el documento capabilities del servicio OGC
  • Consulta a epsg.io para obtener datos proj4

Cambios de proyección cartográfica

Cambios de proyección cartográfica

Problema: WMTS ofrecen un rango limitado de CRS

Solución: definir para cada WMTS un WMS alternativo (y avisar al usuario porque el rendimiento se verá afectado)

Cambios de proyección cartográfica - WMS alternativo

Cambios de proyección cartográfica

Problema: La unidad de medida depende del CRS (metro, grado)

Solución:

  • Consultar a epsg.io qué unidad corresponde al CRS
  • Recalcular resoluciones en la nueva unidad

Cambios de proyección cartográfica

Problema: No todos los servicios son compatibles con todos los CRS

Solución: Sólo se ofrecen como opción los CRS compatibles con todas las capas cargadas

Cambios de proyección cartográfica

Con EPSG:3857 → más mapas disponibles

Cambios de proyección cartográfica - cambio a un mapa de fondo incompatible

Incorporación de datos externos

Añadir capas de WMS de terceros
Importar archivos geográficos (KML, GML, GeoJSON...)

Incorporación de datos externos - drag & drop

Búsquedas

  • Basadas en consultas GetFeature a WFS
  • El usuario no tiene que seleccionar el tipo de búsqueda, el control lo decide según el patrón escrito por el usuario

Búsquedas

  • Inicialmente se podían buscar municipios y coordenadas
  • Se ha ampliado la búsqueda a cascos urbanos, calles, portales, parcelas catastrales, carreteras y puntos kilométricos
  • Este año se incorporará la búsqueda de topónimos

Búsquedas

Impresión

  • Exportación a archivo PDF
  • Previsualización interactiva
  • Incorporación de código QR para abrir la hoja en el navegador

Impresión - previsualización

Soporte multiidioma

Plugin de dust.js: dustjs-i18n
Castellano Euskera Inglés

Google StreetView

  • Vista de calle con mapa de la API SITNA como mapa de situación
  • Necesaria clave de API de Google Maps

Desarrollos realizados con la API SITNA

Visualizador de la IDE de Navarra

https://idena.navarra.es
  • Desarrollos efectuados:
    • Vista 3D
    • Creación, importación y gestión de rutas
    • Dibujo y medidas en mapa
    • Obtención de elevación de terreno

Visualizador de la IDE de Navarra

Vista 3D

  • Basada en Cesium
  • En caliente, sin recargar visor

Visualizador de la IDE de Navarra

Vista 3D

Problema: sincronización 2D↔3D

Solución: vista 2D en segundo plano, vista 3D esclava de vista 2D

Visualizador de la IDE de Navarra

Vista 3D

Problema: queremos combinar MDT de IDENA (alta resolución) con MDT global (cobertura completa)

Solución:

  • Desarrollamos objeto de la clase CesiumTerrainProvider
  • En cada tesela:
    • cuatro esquinas están dentro de Navarra → MDT IDENA
    • resto de casos → MDT EEA

Visualizador de la IDE de Navarra

Vista 3D

Problema: mapa de situación está en 2D y no es capaz de indicar la zona visualizada

Solución: proyección de rayos en esquinas de FOV, dibujo de trapezoide en vista 2D de mapa de situación

Visualizador de la IDE de Navarra

Vista 3D

Visualizador de la IDE de Navarra

Creación, importación y gestión de rutas

  • Creación mediante GPS del dispositivo
  • Importación desde archivos GPX y KML
  • Visualización del perfil de elevación

Visualizador de la IDE de Navarra

Creación, importación y gestión de rutas

Visualizador de la IDE de Navarra

Dibujo y medidas en mapa

  • Dibujo de puntos, líneas y poligonos
  • Cada dibujo muestra sus medidas (longitud, perímetro, área, coordenadas)
  • Las líneas muestran el perfil de elevación
  • Posibilidad de modificar estilo y añadir etiquetas

Visualizador de la IDE de Navarra

Dibujo y medidas en mapa

  • Dibujos se pueden exportar a archivo
  • Se pueden interpolar puntos para obtener elevaciones a mayor resolución

Visualizador de la IDE de Navarra

Dibujo y medidas en mapa

Visualizador de la IDE de Navarra

Obtención de elevación de terreno

  • Utiliza el MDT de IDENA vía WPS
  • Tres modos de funcionamiento
    • Independiente (ver la altura de un punto del mapa)
    • Junto con el control de información de entidades
    • Junto con el dibujo de líneas (para mostrar el perfil de elevación)

Cartoteca y fototeca de Navarra

http://cartotecayfototeca.navarra.es
  • Desarrollos efectuados:
    • Información de entidades geográficas por línea y polígono
    • Capas de imágenes georreferenciadas

Cartoteca y fototeca de Navarra

Información de entidades por línea y polígono

Extensión del control de información de entidades para usar también WFS
Geometría Servicio Operación
punto WMS GetFeatureInfo
línea WFS GetFeature
polígono WFS GetFeature

Cartoteca y fototeca de Navarra

Capas de imágenes georreferenciadas

  • Superpone al mapa una imagen y la georreferencia asignando posición, orientación y escala
  • Basada en la capa GeoImage de las extensiones ol-ext

Cartoteca y fototeca de Navarra

Servicio de incidencias en carreteras de Navarra

http://incidenciascarreteras.navarra.es
  • API SITNA + OpenStreetMap + mapas IGN
  • Anterior aplicación usaba Google Maps

Servicio de incidencias en carreteras de Navarra

Gracias

Fernando Lacunza

http://sitna.navarra.es/api/JornadasSIGLibre/2018/