-
Notifications
You must be signed in to change notification settings - Fork 15
1.1. Componentes de la API CNIG
La arquitectura de API CNIG está compuesta por los siguientes componentes:
El componente api-ign-js es una librería JavaScript que provee una API para facilitar la creación de visores de mapas. Para la construcción de este módulo se ha utilizado OpenLayers para el desarrollo de la implementación.
Openlayers es una librería de JavaScript que se utiliza para crear mapas interactivos en aplicaciones web. Es una herramienta poderosa para mostrar datos geográficos en aplicaciones web, ya sea para visualizar ubicaciones, rutas o cualquier otra información relacionada con mapas. Es gratuita y de código abierto.
Estructura del componente
/
├── config 📋 # Configuración del JSDOC.
├── src 📁 # Código fuente.
├── facade # Fachada.
├── impl # Implementación.
├── plugins # Plugins.
├── templates # Plantillas handlebars para los controles y la librería.
├── configuration.js # Configuraciones predeterminadas de la librería.
├── task 🌈 # Crea el punto de entrada, index.js
├── test 📦 # Código test.
├── versions 💾 # Control de versiones.
├── webpack-config 🏗️ # Configuración de Webpack.
└── ...
-
facade: Contiene una fachada común a todas las implementaciones. Básicamente podemos encontrar código CSS, fuentes, iconos, JS y HTML.
-
impl: Contiene las implementaciones. Actualmente, en el caso de este componente se está utilizando únicamente OpenLayers (ol), pero se podría ampliar a otras librerías base.
-
plugins: Los plugins o componentes son funcionalidades que ofrecen utilidades específicas que, a diferencia de los controles básicos, suelen usarse en escenarios concretos, por lo que se separan del core o núcleo principal de la API para no penalizar con su descarga a quien no los necesite. Algunos ejemplos son el plugin de búsquedas del IGN o el plugin de atribuciones.
-
templates: En esta carpeta se encuentran las diferentes plantillas necesarias para el funcionamiento del CORE (controles, popup,...) Utiliza la librería Handlebars, una biblioteca de plantillas de JavaScript que permite generar HTML dinámico de manera eficiente y sencilla.
Con Handlebars, los desarrolladores pueden crear plantillas HTML con marcadores de posición, llamados "tags", que luego se pueden llenar con datos dinámicos en tiempo de ejecución. Estos "tags" son reconocibles por las llaves dobles {{}} y pueden contener variables, expresiones y constructores de control, lo que brinda gran flexibilidad. -
configuration.js: En este archivo encontrarás las configuraciones básicas por defecto de la librería, con el método
M.config
podrás modificar estas configuraciones.
El componente api-ign-parent actúa como un "módulo padre", lo que significa que tiene la responsabilidad de coordinar y controlar el proceso de compilación y generación del archivo WAR final api-core.
Maven es una herramienta de gestión de proyectos ampliamente utilizada en el desarrollo de software. Proporciona una estructura y un conjunto de convenciones para organizar y construir proyectos de manera eficiente.
En el componente podemos encontrar el archivo pom.xml (Project Object Model). Es un archivo XML, en Maven, que se utiliza para definir, configurar y gestionar proyectos de software en el entorno de desarrollo. POM es el núcleo de Maven y contiene información esencial sobre el proyecto, como su estructura, dependencias, configuración de compilación, empaquetado y distribución.
En la carpeta filters se encuentran todos los archivos .properties
. Los archivos de propiedades (.properties) se utilizan para definir valores configurables y parámetros en un proyecto. Estos archivos contienen pares de clave-valor, donde cada clave representa una propiedad y su valor corresponde al valor asignado a esa propiedad.
Un proxy es un intermediario entre un dispositivo y una red. Actúa como un servidor que solicita y recibe información en nombre del dispositivo. Cuando un usuario envía una solicitud a través de un proxy, este la reenvía al destino final y luego devuelve la respuesta al dispositivo.
El componente api-ign-proxy contiene el proxy para realizar peticiones GET/POST por si el CORS no está habilitado.
Más información sobre el proxy de la API-CNIG en el siguiente enlace.
El componente api-ign-rest proporciona el servicio Web con API RESTful que genera el código JS necesario para generar un visor con la configuración especificada por parámetros.
Cuando se realiza el proceso de compilación dentro de la carpeta target se encuentra el .war generado para desplegar la API.
Más información sobre la API-REST en el siguiente enlace.
La API-CNIG proporciona un módulo de conexión a la base de datos (PostgreSQL). Realizando diferentes peticiones GET se puede obtener diferentes servicios (bases de datos disponibles, tablas disponibles, campos de una tabla, realizar consultas personalizadas, ...). Más información sobre cómo realizar las peticiones en el siguiente enlace.
La API-CNIG proporciona un módulo e información sobre la propia API-CNIG. Realizando diferentes peticiones GET se puede obtener diferentes informaciones referentes al despliegue. Más información sobre cómo realizar las peticiones en el siguiente enlace.
La API-CNIG proporciona un módulo para el envío de correos electrónicos para un uso de cartografía colaborativa o para el envío de incidencias cartográficas. Es usado por la extensión InciCarto. Más información sobre cómo realizar las peticiones en el siguiente enlace.
1.INICIO
1.1. Componentes de la API-CNIG
1.2. Documentación y Puntos de acceso
1.3. Primeros pasos
1.4. Diagrama API CNIG
2.1. Capas
■ 2.1.1. Fuentes
• 2.1.1.1. Capas vectoriales
+ Vector
+ WFS
+ GeoJSON
+ KML
+ MVT
+ OGCAPIFeatures
+ MBTilesVector
+ GenericVector
+ MapLibre
• 2.1.1.2. Capas ráster
+ WMS
+ WMTS
+ TMS
+ XYZ
+ OSM
+ MBTiles
+ GenericRaster
+ GeoTIFF
• 2.1.1.3. Capas rápidas
• 2.1.1.4. Grupo de capas
■ 2.1.2. Simbolización
• 2.1.2.1. Genérica
+ Puntos
+ Líneas
+ Polígonos
• 2.1.2.2. Básica
+ Puntos
+ Líneas
+ Polígonos
• 2.1.2.3. Avanzada
+ Coropletas
+ Proporcional
+ Categorías
+ Estadísticos
+ Mapas de Calor
+ Cluster
+ Línea de flujo
+ Composición
2.4. Paneles
» Creación de panel desde cero sin controles
» Tutorial Panel de un único control
5. API REST
5.1. Parametrización API-REST
5.2. Base de Datos API-REST
5.3. API REST Actions
5.4. Servicio de correos electrónicos
5.5. Capas rápidas
6. PARAMETRIZACIÓN VISUALIZADORES
9. GUÍA DE DESARROLLO
> Guía para el desarrollo de API-CNIG
» Tutorial desarrollo del núcleo de API-CNIG - (Cliente)
> Guía de desarrollo de componentes
» Tutorial desarrollo del núcleo de API-CNIG - (Servidor)
> Guía de desarrollo de plugins
» Tutorial desarrollo de plugins ya creados
» Tutorial desarrollo de nuevos plugins
> Guía de desarrollo de visualizadores con React