Las Comunidades Autónomas y el Instituto Geográfico Nacional proporcionan conjuntamente un servicio de posicionamiento diferencial GNSS en tiempo real para toda España. Para generar este servicio se utilizan las estaciones permanentes de las redes GNSS de las Comunidades Autónomas con las que existe un acuerdo de colaboración y de la Red Geodésica Nacional de Referencia de Estaciones Permanentes GNSS (ERGNSS). Algunas de las estaciones de la ERGNSS son compartidas entre el IGN y otras instituciones como Puertos del Estado y Comunidades Autónomas. La utilización de un mayor número de estaciones distribuidas por el territorio aumenta la fiabilidad del sistema al incrementarse la integridad del mismo.
- Cambios de mapa base: Mapa, Imagen, Híbrido.
- Buscador de topónimos IGN Search.
- Información de coordenadas.
- Localizador.
- Herramienta para mostrar al norte la cartografía.
- Botón mostrar/ocultar leyenda.
Al hacer clic sobre el punto que representa a la estación permanente, aparecerá una ventana emergente en la cual podremos ver la información del elemento
- Código de identificación.
- Estado de emisión.
- Información de satélites.
- Coordenadas.
- Propietario.
- Actividad.
En función del estado emisión, se asignan colores a los símbolos:
- Verde – emitiendo
- Azul – conexión lenta
- Naranja – retardo muy alto
- Rojo – Sin conexión
Fijado un tiempo en milisegundos, la aplicación consulta un fichero en formato geoJSON con la información actualizada de las estaciones. Accede al fichero, lee su contenido, y sustituye los elementos de la capa por los recién leídos. El refresco no afecta a la aplicación, sino sólo a la capa de estaciones GNSS.
El fichero config.js contiene agrupados todos los parámetros configurables.
- Estados de conexión.
- Colores de representación de los estados. 👉 Lista completa de colores
- Simbología aplicada en función del propietario. 👉 Lista completa de simbología
- Tiempo de refresco de la capa de estaciones GNSS. Valor mínimo: 5000 ms.
- Fichero geojson con los datos de representación.
Para el desarrollo de este visualizador se ha utilizado Visual Studio Code como editor de código. Para la gestión de paquetes:
- NodeJS Version: 14.16
- NPM Version: 6.14.11
El desarrollo se ha realizado utilizando módulos ESM. Las funciones y procedimientos se exportan desde un fichero a otro, reutilizando contenido, haciendo el código más modular y organizando mejor la aplicación. Está técnica se conoce como separación de código o code splitting.
Esta es una forma de mejorar el rendimiento de un sitio web es aprovechar el caché del navegador, de manera que se sirvan de la memoria de la computadora o dispositivo los archivos que cambian muy poco (como imágenes, javascript y css) y que el navegador sólo tenga que descargar los archivos que hayan cambiado.
En el ecosistema Javascript, existen ciertas herramientas denominadas automatizadores o bundlers. Se utilizan para generar un sólo archivo .js final donde se guardará todo el código Javascript de nuestra web o aplicación, que leerá el navegador.
Este proyecto utiliza Parcel como empaquetador de aplicaciones web. Está basado en recursos. Un recurso puede ser cualquier archivo, sin embargo, parcel tiene soporte especial para algunos tipos de archivos como JavaScript, CSS, y HTML. Parcel analiza automáticamente las dependencias a las que se hace referencia en estos archivos y los incluye en el paquete de salida.
Una vez clonado el proyecto, instalaremos las dependencias. Para este proyecto sólo utilizamos Parcel como dependencia de desarrollo.
npm i
parcel src/index.html # npm run dev
parcel build src/index.html --public-url ./ # npm run buildv
Parcel utiliza como minificador de HTML htmlnano. Como utilizamos ficheros SVG, añadimos la opción en el fichero de configuración .htmlnanorc.js
module.exports = {
"minifySvg": false
}
Los ficheros para el despliegue aparecerán en la carpeta dist.
/
├── assets 🌈 # Recursos
├── dist 📁 # Generado tras hacer un parcel build
├── src 📦 # Código fuente.
└── ...
El fuente válido para el desarrollo se encuentra e esta cuenta de Github. Y su puesta en producción en la web de proyectos de DEVELMAP. Además, cuelgo el desarrollo compilado en el servicor de desarrollo, la máquina CentOS que tengo asignada.
http://10.67.33.171/web/mashups/redgnss/
Por último, subo al repo del CNIG el código
https://github.com/administradorcnig/vis.REDGAE
👀‼❗️ Al repo administradorcnig también subimos la carpeta dist
- En web de proyectos de DEVELMAP https://projects.develmap.com/apicnig/redgnss/
- En desarrollo en intranet http://10.67.33.171/web/mashups/redgnss/
- Apuntes de desarrollo
- API Documentation https://componentes.ign.es/api-core/doc/
- APICNIG Plugins
- Wiki APICNIG
- Mapea Plugins
- Visualizador GNSS http://ntrip.rep-gnss.es