-
Notifications
You must be signed in to change notification settings - Fork 15
Guía de desarrollo plugins
Requisitos e instalación de dependencias: Node.js (version >=8.x.x)
Existe una herramienta para crear la estructura base del plugin, se instala con el comando npm install -g api-cnig-create-plugin@latest .
Se tienen que tener en cuenta los requisitos de desarrollo sobre la fachada y la implementación.
Fachada e implementación
En el desarrollo son importantes los conceptos de fachada e implementación. Uno de los objetivos de la API es independizar en la medida de lo posible los desarrollos funcionales de las librerías de mapas en la que se apoyan (OpenLayers, leaflet, etc.), de modo que adaptar un desarrollo a una nueva librería de mapas implique rehacer la menor parte posible.
La API presenta una fachada común a todas las implementaciones con la que el desarrollador podrá realizar la mayoría de acciones. Bajo esta fachada están las distintas implementaciones que realizan las acciones concretas con las librerías en las que se basan.
Por tanto, a la hora de desarrollar un plugin es muy importante llevar a cabo en la fachada del mismo todas las operaciones independientes de la librería de mapas base, y dejar en la implementación las acciones que sí están ligadas a la librería base.
Estructura del proyecto/plugin
/
├── src 📁 # Código fuente.
├── facade # Fachada.
├── impl # Implementación.
├── templates # Plantilla handlebars.
├── api.json # Definición del plugin por API-REST
├── index.json # Punto de entrada.
├── task 🌈 # Crea el punto de entrada, index.js
├── test 📦 # Código test.
├── webpack-config 🏗️ # Configuración de Webpack.
├── .eslintrc 👓 # Configuración del ESLint.
├── .gitignore 💾 # Archivos ignorados por Git.
├── LICENSE 📋 # Licencia.
└── ...
Ficheros destacados para la configuración de plugins Dentro de fachada podemos destacar:
- Estilo
- Fuente Los ficheros miplugin.eot, miplugin.svg, miplugin.ttf, miplugin.woff y miplugin.woff2 que generan la fuente del plugin deben estar alojados en /facade/assets/fonts/.
- Imágenes En caso de que el plugin necesite alojar imágenes se deben alojar en /facade/assets/images (por ejemplo para implementar la ayuda del plugin).
- Idiomas
- i18n.
- Código plugin/control
- Plantillas
- Rest y metadatos
- Documentación
Referencias
Por último destacar que, como complemento a esta guía, el desarrollador siempre tendrá de referencia el código fuente de los plugins ya desarrollados.
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