Eventos - sigcorporativo-ja/Mapea4 GitHub Wiki
Los eventos son disparadores que permiten al programador conocer cuándo ha ocurrido un suceso determinado, de manera que pueda actuar en consecuencia. Estos son los eventos que maneja Mapea:
Asociados al mapa y a las capas
Evento | Descripción | Evento | Descripción |
---|---|---|---|
M.evt.ADDED_LAYER | Se ha añadido una capa | M.evt.ADDED_WFS | Se ha añadido una capa WFS |
M.evt.ADDED_WMC | Se ha añadido un wmc | M.evt.ADDED_WMTS | Se ha añadido una capa WMTS |
M.evt.ADDED_KML | Se ha añadido una capa KML | M.evt.LOAD | * evento de capa vectorial: Se han cargado los features de la capa. * Sobre WMC: Se ha activado el WMC. |
M.evt.ADDED_WMS | Se ha añadido una capa WMS | M.evt.COMPLETED | Se ha completado la definición interna del mapa. Requiere capa base. |
M.evt.CHANGE_PROJ | Ha cambiado la proyección del mapa | M.evt.CHANGE_WMC | Ha cambiado el wmc activo. |
M.evt.CLICK | Se ha hecho click en el mapa (captura coordenadas) | M.evt.CHANGE_STYLE | * evento de capa vectorial: Ha cambiado el estilo de la capa. * evento de feature: Ha cambiado el estilo del feature. |
M.evt.REMOVED_LAYER | (v5.1.0+) evento de mapa: se ha eliminado una capa del mapa. | M.evt.REMOVED_FROM_MAP | (v5.2.0+) evento de capa: se ha eliminado una capa del mapa |
M.evt.CHANGE_ZOOM | (v6.1.0+) evento de mapa: Se ha producido un cambio en el nivel de zoom | M.evt.POPUP_ADDED | (6.2.0+) evento de mapa: Se ha añadido un Popup al mapa |
M.evt.POPUP_REMOVED | (v6.2.0+) evento de mapa: Se ha eliminado un Popup de mapa | M.evt.LAYER_VISIBILITY_CHANGE | (6.4.0+) evento de capa: Ha cambiado la visibilidad de la capa. El evento contiene booleano indicando nueva visibilidad |
:bulb: Para asociar un evento, se usa el método .on(evento,accion), y para desasociarlo, se usa .un(evento,accion)
// Declaramos directamente las acciones que realizar en el evento
mapajs.on(M.evt.ADDED_LAYER, function() {
console.log('Evento M.evt.ADDED_LAYER: se ha añadido una capa al mapa');
});
// O mediante una funcion definida
function mostrarMensajeEvento() {
M.dialog.info('el evento ha ocurrido');
}
mapajs.on(M.evt.ADDED_WFS, mostrarMensajeEvento);
// El evento de carga de WFS es util cuando queremos procesar los features
wfslayer.on(M.evt.LOAD, function(features) {
console.log("Evento M.evt.LOAD: se ha cargado la capa WFS en el mapa con los elementos:", features);
});
Asociados a los paneles
Evento | Descripción |
---|---|
M.evt.ADDED_TO_MAP | El panel se ha añadido al mapa |
M.evt.SHOW | El panel se ha abierto |
M.evt.HIDE | El panel se ha ocultado |
Asociados a los controles
Evento | Descripción |
---|---|
M.evt.ADDED_TO_PANEL | El control se ha añadido al panel |
M.evt.ACTIVATED | El control se ha activado |
M.evt.DEACTIVATED | El control se ha desactivado |
Ejemplo
newControl.on(M.evt.ACTIVATED,function(){console.log('Control Activado');});
Asociados a los paneles
Evento | Descripción |
---|---|
M.evt.ADDED_TO_MAP | El plugin se ha añadido al mapa |
Asociados a la interacción con features
Estos eventos devuelven siempre un Array con los features objeto del mismo, ya que es posible, según
la ubicación de los features y el nivel de zoom, que la selección o el desplazamiento se realice en múltiples
features simultáneamente.
Evento | Descripción |
---|---|
M.evt.SELECT_FEATURES | Se ha seleccionado un feature |
M.evt.UNSELECT_FEATURES | Un feature ha perdido la selección |
M.evt.HOVER_FEATURES | El cursor pasa por encima de un feature |
M.evt.LEAVE_FEATURES | El cursor abandona un feature |
Ejemplo
var capaKML = new M.layer.KML(
"KML*Arboleda*http://mapea4-sigc.juntadeandalucia.es/files/kml/*arbda_sing_se.kml*true");
// Los features sobre los que se pinche se devuelven en un Array
capaKML.on(M.evt.SELECT_FEATURES, function(features) {
alert("Se han seleccionado los features: ", features); });
Asociados a un Popup
Evento | Descripción | Evento | Descripción |
---|---|---|---|
POPUP_ADDED_TAB | (V6.2.0+) Se ha añadido una pestaña al popup | POPUP_REMOVED_TAB | (V6.2.0+) Se ha eliminado una pestaña del popup |
Otros
Evento | Descripción |
---|---|
M.evt.DESTROY | Se ha lanzado el método Destroy del elemento |
FeatureHandler
El objeto mapa posee un gestor de eventos llamado FeatureHandler desde el que se puede activar y desactivar la selección de features específicos, así como añadir o eliminar una capa vectorial de la gestión de eventos vectoriales:
// Array de features a seleccionar, capa que los contiene y evt opcional
mapajs.getFeatureHandler().selectFeatures([feature],layer,{});
// Array de features a deseleccionar, capa que los contiene y evt opcional
mapajs.getFeatureHandler().unselectFeatures([feature],layer,{});
// Eliminar una capa del gestor implica no poder usar los metodos
// anteriores sobre sus features
mapajs.getFeatureHandler().removeLayer(layer);
Esto simplemente marca los features como seleccionados/deseleccionados, por lo que cualquier comportamiento adicional asociado a la selección que se desee, tales como cambio de estilo, apertura de bocadillo, etc. deben ser gestionados adicionalmente. Ver ejemplo en JSFiddle