-
Notifications
You must be signed in to change notification settings - Fork 15
Ciclo de vida
Conocida la estructura que organiza los paneles, plugins y controles, veamos ahora el ciclo de vida típico a nivel introductorio, los métodos a los que se hace referencia se describen en detalle en las siguientes secciones de la wiki:
1.- Se instancia un plugin que, en su constructor, define sus atributos.
const p = new M.plugin.miPlugin();
2.- Se añade el plugin a un mapa. El mapa llama al método addTo del plugin (3).
mapajs.addPlugin(p);
3.- Facade - Plugin - addTo(map):
- Asigna su variable mapa, si tiene.
- Crea los controles que contenga.
- En su constructor, cada control crea su impl interno.
- Si tiene o gestiona panel propio:
- Crea panel y le añade los controles.
- Se registra automáticamente un evento para eliminar un control de Panel en caso de DESTROY del control.
- Se añade el control al mapa automáticamente, que llama al método addTo del control (4).
- Añadir el panel al mapa.
- Crea panel y le añade los controles.
- Si no tiene o no gestiona su propio panel (_controles básicos):
- Añadir control al mapa, que llama al método addTo del control (4).
- Cuando los controles se han creado, lanza M.evt.ADDED_TO_MAP.
4.- Facade - Control - addTo(map) - en facade/controlbase.js:
- Asigna su variable mapa.
- Llama a su método createView(map).
- Una vez creada la vista, para gestionar eventos puede llamar a addEvents(html)
- Llama a manageActivation(html)
- Asigna a this.element_ el html resultante de crear la vista.
- Si el control tendrá activación/desactivación, lo gestiona.
- Añade al mapa su implementación - impl.addTo(map).
- Lanza M.evt.ADDED_TO_MAP.
5.- Impl - Control - addTo(map):
- Asigna su variable mapa (fachada).
- Declara el resto de lógica que depende de la librería base.
Este ciclo de vida es genérico, y se completa con los atributos, métodos y lógica propia de cada plugin y control, que se integra en el punto donde necesite hacerlo cada caso. Un control puede llamar desde su fachada a los métodos de su implementación, únicamente hay que seguir la regla de no llevarse nada dependiente de la librería base a la fachada.
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