Skip to content

Guía para el desarrollo de API CNIG

gdtel-cnig-develop edited this page Jun 8, 2023 · 14 revisions

La API-CNIG proporciona una librería, creada con JavaScript, para facilitar la creación de visores de mapas. Esto se encuentra en el componente api-ign-js, para la construcción de este módulo se ha utilizado OpenLayers como librería base y una arquitectura de "facade" e "implementation".

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.

  • 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 para los controles, popup, toasts, diálogos... 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 se encuentran las configuraciones básicas por defecto de la librería, se pueden modificar con el método M.config().

Entorno de desarrollo

Este entorno se genera mediante webpack, compila la API-CNIG y proporciona un entorno de desarrollo. Para realizar pruebas en el entorno de desarrollo dentro de la API-CNIG se tiene que ejecutar el comando npm start -- --name=[Nombre del test], los test se encuentran en la carpeta test/development.

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. MAPA
2.1. Capas

 ■ 2.1.1. Fuentes
   • 2.1.1.1. Capas vectoriales
     + Vector
     + WFS
     + GeoJSON
     + KML
     + MVT
     + OGCAPIFeatures
     + MBTilesVector
     + GenericVector
   • 2.1.1.2. Capas ráster
     + WMS
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
   • 2.1.1.3. Capas rápidas

 ■ 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.1.3. Filtros

    2.3. Plugins

2.4. Paneles

  ■ Creación de panel desde cero sin controles

  ■ Tutorial Panel de un único control

  ■ Tutorial Panel de un único control con más de un botón

  ■ Tutorial Panel con más de un control

2.5. Eventos

  ■ Gestión de eventos
  ■ Gestión de eventos en controles personalizados

    2.6. Internacionalización

    2.7. Configuración

    2.8. Acceso librerías base

3. UTILIDADES

4. PROXY

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

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía de desarrollo de plugins
  > Guía de desarrollo de visualizadores con React
  > Guía de desarrollo de componentes
  > Guía para el desarrollo de API-CNIG
  > Compilación proyecto API-CNIG

Clone this wiki locally