Skip to content

impl js mipluginControl.js

gdtel-cnig-develop edited this page Mar 17, 2023 · 4 revisions

Una vez definida la fachada del plugin, hay que desarrollar las distintas implementaciones que se deseen: ol, leaflet, etc. Recordemos que la fachada recogía la lógica no dependiente de la librería de mapas, que se usaba exclusivamente en la implementación.

mipluginControl.js

> Constructor
Provee la implementación como dependencia al igual que ocurría para la fachada, instancia la implementación del control, y llama al constructor padre de M.impl.Control:

/**
 * @module M/impl/control/MipluginControl
 */

export class MipluginControl extends M.impl.Control {

  constructor() {
      super();
    }

> addTo
Define la forma de añadir el control con la implementación que estamos usando. Este método recibe el mapa y el html del control que habíamos definido previamente en el createView de la fachada del control.

Por ejemplo, si la implementación usada es OpenLayers, inciamos el control con OL y lo añadimos al mapa con su método específico:

addTo(map, html) {
  this.facadeMap_ = map;

  ol.control.Control.call(this, {
     'element': element,
     'target': null
  });
  map.getMapImpl().addControl(this);
};

La clase padre M.impl.Control del que hereda nuestro control M.impl.control.MiControl ya realiza estos últimos pasos, por lo que podemos ahorrarnos código llamando al método addTo del padre mediante:

addTo(map, html) {
  super.addTo(map, html);
};

> activate, deactivate
Si queremos realizar acciones concretas sobre el mapa cuando el control se active o desactive tendremos que implementar los métodos activate y deactivate del control respectivamente:

// Ocurre al activar en el botón
activate() {
   M.dialog.info('Hello World!');
};

// Ocurre al desactivar
deactivate() {
   M.dialog.info('Bye World!');
};

> destroy
Este método será ejecutado cuando el control del plugin sea removido del mapa. Es decir, será en este método donde tendremos que deshacer los cambios que realizó en la parte de la implementación del control del plugin. Por ejemplo los eventos establecidos al mapa.

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

2.3.-Plugins

  > Creación de plugin en cliente

  » Tutorial de creación de un plugin

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 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

  > Compilación proyecto API-CNIG

Clone this wiki locally