-
Notifications
You must be signed in to change notification settings - Fork 0
Crear Control Personalizado
Existe la posibilidad de crear controles personalizados en un mapa. A continuación, se muestra un ejemplo de uso donde, haciendo click sobre el control, aparece una alerta de html.
Para llegar a ello, se siguen los siguientes pasos:
1./ Creamos un objeto "control", a partir de la implementación de la clase control y dándole un nombre al nuevo control. Este objeto control nos servirá de plantilla para darle una funcionalidad :
// 1. Se crea un control, primer parámetro la implementación del control, segundo parámetro el nombre del control
const control = new IDEE.Control(new IDEE.impl.Control(), 'ControlPrueba');2./ Se sobrescribe el método createview, que es el que tiene la lógica del control. Tiene la peculiaridad de que tiene que devolver un objeto html. Cuando un control se integra en un panel, el contenido del panel se añade a partir de este html del control.
// 2. Se sobrescribe el método, tiene que devolver un elemento HTML
control.createView = (map) => {
const contenedor = document.createElement('div');
contenedor.id = 'ControlPrueba'
contenedor.style['backgroundColor'] = 'black';
contenedor.style['height'] = '50px';
contenedor.style['width'] = '50px';
contenedor.onclick = () => {
console.log(map.getControls())
alert('Nombre del control: ' + map.getControls()[0].name)
};
return contenedor;
}3./ Por último se añade el control al mapa
// 3. Se añade el control al panel
const mapajs = IDEE.map({
container: 'mapjs',
});
mapajs.addControls(control);Si se desea añadir la ayuda de este control para mostrarla en el plugin Help, se debe realizar los siguientes pasos:
1./ Crear método getHelp con el contenido de la ayuda.
control.getHelp = () => {
return {
title: 'Mi Control Personalizado',
content: new Promise((success) => {
let html = '<div><p>Información del control</p></div>';
html = IDEE.utils.stringToHtml(html);
success(html);
}),
};
}2./ Añadir el plugin de ayuda (Help) al mapa.
const help = new IDEE.plugin.Help({});
mapajs.addPlugin(help);
// Una vez el plugin esté añadido al mapa, añadimos a la lista de controles el control personalizado
setTimeout(() => {
help.ctrl.controls.push('ControlPrueba')
}, 500)3./ Al consultar la ayuda desde el plugin Help mostrará la ayuda del control.
1.INICIO
1.1. Componentes de la API-IDEE
1.2. Documentación y Puntos de acceso
1.3. Primeros pasos
1.4. Diagrama API IDEE
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
+ WMC
+ WMTS
+ TMS
+ XYZ
+ OSM
+ MBTiles
+ GenericRaster
+ GeoTIFF
+ GeoPackageTile
• 2.1.1.3. Capas 3D
+ Terreno
+ 3DTiles
+ info 3DTiles
• 2.1.1.4. Capas rápidas
• 2.1.1.5. Grupo de capas
• 2.1.1.6. Secciones
• 2.1.1.7. GeoPackage
• 2.1.1.8. Capas externas
■ 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
5.6. Parametrización API-REST plugins externos
6. PARAMETRIZACIÓN VISUALIZADORES
9. GUÍA DE DESARROLLO
> Guía para colaborar en el repositorio
> Guía para el desarrollo de API-IDEE
> Guía de test de API-IDEE
» Tutorial desarrollo del núcleo de API-IDEE - (Cliente)
> Guía de desarrollo de componentes
» Tutorial desarrollo del núcleo de API-IDEE - (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