Eventos
IMPORTANTE: Esta documentación está en construcción y puede estar desactualizada y/o incompleta.
Generales
ajax
Escuchado por el módulo communication
para realizar llamadas a servicios.
Parámetros: Un objeto con las siguientes propiedades:
url
: URL a la que se quiere pedir la información.success
: función a ejecutar cuando el servidor responda satisfactoriamente.complete
: función a ejecutar cuando el servidor responda, sea satisfactoriamente o tras un error.errorMsg
: Mensaje de error.error
: función a ejecutar cuando el servidor responda con un error. Por defecto se generará un mensaje de error con el contenido de errorMsg.controlCallBack
: función que recibe el objeto XMLHttpRequest que representa la petición. Este objeto tiene métodos comoabort()
que permiten la cancelación de la petición.
Ejemplo de uso:
bus.send('ajax', { type: 'POST', url: 'post-url', data: data, success: function() { bus.send('ui-hide', dialogId); }, errorMsg: i18n['ajax_error'], complete: function() { bus.send('ui-loading:end', i18n['ajax_wait']); } });
error
Escuchado por el módulo error
, que muestra un mensaje de error al usuario.
Parametros: Mensaje con el error a mostrar
Ejemplo de uso:
bus.send("error", "Dirección de e-mail incorrecta");
modules-loaded
Enviado una vez el módulo customization
ha cargado todos los módulos especificados por el servidor.
Parámetros: Ninguno.
show-wait-mask
Muestra un indicador de que el sistema está ocupado y el usuario debe esperar
Parámetros: Texto informativo.
Ejemplo de uso:
bus.send("show-wait-mask", "Enviando información al servidor...");
hide-wait-mask
Oculta el indicador mostrado por show-wait-mask.
Parámetros: Ninguno
Ejemplo de uso:
bus.send("hide-wait-mask");
show-info
Muestra una ventana emergente con determinada información que se pasa como parámetro.
Parámetros:
title
: Título de la ventana.link
: Bien una url que apunta a la página que se pretende mostrar, o un objeto jquery que será mostrado en la ventana.eventOptions
: Opcional. Elemento con las opciones para la personalización de la ventana. Actualmente se utiliza FancyBox por lo que se puede añadir cualquier opción válida de este framework.
Ejemplo de uso:
bus.send("show-info", [ "Mi info", "http://ambiente.gob.am/portal/static/loc/es/html/doc.html" ]);
Capas
before-adding-layers
Enviado justo antes de que se empiecen a lanzar los eventos add-group y add-layer. Da la oportunidad a otros módulos de realizar operaciones previas a la carga de las capas.
Parámetros: Ninguno.
layers-loaded
Enviado una vez el módulo layers
ha lanzado los eventos add-layer y add-group correspondientes a la configuración de capas existente en el servidor.
Parámetros: Ninguno
reset-layers
Se envía para resetear la configuración de capas del portal.
Como norma general, cualquier módulo que escuche los eventos add-layer, add-group o layers-loaded también deberá escuchar el evento reset-layers
, y devolver el estado interno del módulo (y del DOM) al que tenía justo antes de empezar a cargar grupos y capas.
Parámetros: Ninguno
add-group
Indica que se debe añadir un grupo al árbol de capas.
Parámetros: Un objeto con las siguientes propiedades:
id
: identificador del grupoparentId
: Opcional, para grupos dentro de otros grupos hace referencia al grupo contenedorname
: nombre del grupoinfoLink
: Ruta de la página HTML con información sobre el grupo
Ejemplo de uso:
bus.send("add-group", [ { id:"grupo_admin", name:"Límites administrativos" }]);
add-layer
Indica que se debe añadir una capa a la aplicación.
Parámetros: Un objeto con las siguientes propiedades:
id
: id de la capagroupId
: id del grupo en el que se debe añadir la capalabel
: Texto con el nombre de la capa a usar en el portalinfoLink
: Ruta de la página HTML con información sobre la capainlineLegendUrl
: URL con una imagen pequeña que situar al lado del nombre de la capa en el árbol de capasqueryable
: Si se pretende ofrecer herramienta de información para la capa o noactive
: Si la capa está inicialmente visible o no-
wmsLayers
: Array con la información de las distintas capas WMS que se accederán desde esta capa. El caso más habitual es que se acceda sólo a una, pero es posible configurar varias. Los objetos de este array tienen la siguiente estructura:baseUrl
: URL del servidor WMS que sirve la capawmsName
: Nombre de la capa en el servicio WMSimageFormat
: Formato de imagen a utilizar en las llamadas WMSzIndex
: Posición en la pila de dibujadolegend
: Nombre del fichero imagen con la leyenda de la capa. Estos ficheros se acceden en static/loc/{lang}/imageslabel
: Título de la leyendasourceLink
: URL del proveedor de los datossourceLabel
: Texto con el que presentar el enlace especificado en sourceLinktimestamps
: Array con los instantes de tiempo en ISO8601 para los que la capa tiene información
Ejemplo de uso:
bus.send("add-layer", { "id" : "meteo-eeuu", "groupId" : "landcover", "label" : "Radar EEUU", "active" : "true", "wmsLayers" : [ { "baseUrl" : "http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r-t.cgi", "wmsName" : "nexrad-n0r-wmst" } ] });
layer-visibility
Cambia la visibilidad de una capa.
Parámetros:
- id de la capa portal.
- valor de visibilidad.
Ejemplo de uso:
bus.send("layer-visibility", ["provincias", false]);
show-layer-info
Muestra la información asociada a una capa con su atributo infoLink
o infoFile
.
Parámetros: identificador de la capa.
Ejemplo de uso:
bus.send("show-layer-info", [ "provincias" ]);
show-group-info
Muestra la información asociada a un grupo con su atributo infoLink
o infoFile
.
Parámetros: identificador del grupo.
Ejemplo de uso:
bus.send("show-group-info", [ "base" ]);
time-slider.selection
Lanzado cuando el usuario selecciona un instante temporal global distinto al actual. Generalmente se actualiza el mapa con la información de esa fecha.
Parámetros: objeto Date
con el instante temporal seleccionado.
Ejemplo de uso:
var d = new Date(); bus.send("time-slider.selection", d);
layer-time-slider.selection
Lanzado cuando el usuario selecciona un instante temporal específico para una capa (a diferencia del time-slider.selection
cuyo instante es global para todas las capas).
Parámetros:
- id de la portalLayer que ha determinado su instante temporal.
- objeto Date con el instante temporal seleccionado
Ejemplo de uso:
var d = new Date(); bus.send("layer-time-slider.selection", ["mi-portal-layer", date]);
layer-timestamp-selected
Una capa ha escuchado uno de los eventos de selección temporal y ha determinado qué instancia temporal es la que más se ajusta a esa. La capa selecciona la última instancia temporal que es menor o igual al instante seleccionado o la primera instancia si el instante seleccionado es anterior a todas sus instancias.
Parámetros:
- id de la portalLayer que ha determinado su instante temporal.
- objeto Date con el instante temporal seleccionado
- cadena de carácteres con el nombre del estilo que se debe usar para esta instancia temporal. Puede ser nulo si la capa no requiere un estilo distinto por instante.
toggle-legend
Escuchado por el módulo legend-panel
para mostrar u ocultar el panel con la leyenda.
Parámetros: Ninguno
Ejemplo de uso:
bus.send("toggle-legend");
register-layer-action
Escuchado por la lista de capas. Instala un botón a la derecha de las capas que realizará una acción al ser pulsado.
Parámetros: Función que devuelve el objeto jQuery que se mostará a modo de botón. Esta función toma como parámetro el mismo objeto que se lanza en el evento add-layer.
Ejemplo de uso (botón de información):
bus.listen("before-adding-layers", function() { var showInfoAction = function(portalLayer) { if (portalLayer.hasOwnProperty("infoFile")) { aLink = $("<a/>").attr("href", portalLayer.infoFile); aLink.addClass("layer_info_button"); aLink.fancybox({ "closeBtn" : "true", "openEffect" : "elastic", "closeEffect" : "elastic", "type" : "iframe", "overlayOpacity" : 0.5 }); return aLink; } else { return null; } }; bus.send("register-layer-action", showInfoAction); });
register-group-action
Igual que register-layer-action pero para grupos.
show-layer-panel
Activa el panel de capas indicado.
Parámetros: identificador del panel a activar. La lista de paneles puede variar en función de los plugins que haya activados. La lista completa de ids es:
all_layers_selector
.layers_transparency_selector
layer_slider_selector
(sólo con el pluginlayer-time-sliders
).
Ejemplo de uso:
bus.send("show-layer-panel", [ "layers_transparency_selector" ]);
Mapa
activate-exclusive-control
Pide la activación exclusiva del control que se pasa como parámetro y la desactivación del control exclusivo que estuviera activado en el momento de lanzar el mensaje.
Parámetros: Un objeto con las siguientes propiedades:
controlIds
: Array de identificadores de controles, creados conmap:createControl
.
Ejemplo de uso:
define([ "ol2/controlRegistry" ], function(controlRegistry) { ... controlRegistry.registerControl('measure', function(message) { return new OpenLayers.Control.Measure(OpenLayers.Handler.Path); }); bus.send('map:createControl', { 'controlId': 'measure', 'controlType': 'measure' }); bus.send("activate-exclusive-control", { controlIds: ['measure'] }); ... });
zoom-in
Mueve la escala al nivel inmediatamente mayor.
Parámetros: Ninguno
Ejemplo de uso:
bus.send("zoom-in");
zoom-out
Mueve la escala al nivel inmediatamente menor
Parámetros: Ninguno
Ejemplo de uso:
bus.send("zoom-out");
zoom-to
Mueve el encuadre al objeto OpenLayers.Bounds que se pasa como parámetro. El objeto bounds debe estar en el sistema de referencia del mapa (EPSG:900913)
Parámetros: OpenLayers.Bounds con el extent deseado.
Ejemplo de uso:
var bounds = new OpenLayers.Bounds(); bounds.extend(new OpenLayers.LonLat(0,42)); bounds.extend(new OpenLayers.LonLat(10,52)); bounds.transform( new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); bus.send("zoom-to", bounds);
initial-zoom
Situa el mapa en la posición inicial
Parámetros: Ninguno
Ejemplo de uso:
bus.send("initial-zoom");
set-default-exclusive-control
Establece el control exclusivo por defecto para el mapa. Sólo un módulo exclusivo está activado en cada momento.
Parámetros: Objeto OpenLayers.Control.
Ejemplo de uso:
var control = new OpenLayers.Control.WMSGetFeatureInfo({ ... }); bus.send("set-default-exclusive-control", [control]);
activate-default-exclusive-control
Activar el control establecido por defecto mediante el mensaje set-default-exclusive-control
Parámetros: Ninguno.
Ejemplo de uso:
bus.send("activate-default-exclusive-control");
info-features
Resultados de la petición de información a una única capa.
Parámetros:
wmsLayerId
: Id de la capa a la que pertenecen las features.-
features
: array con las features OpenLayers. Cada feature tiene:-
Una propiedad
aliases
que es un array que contiene un objeto con propiedades name y alias para cada atributo de la feature. Por ejemplo::::js [{ "name" : "ident", "alias" : "Id" }, { "name" : "nprov", "alias" : "Nombre" }, { "name" : "pop96", "alias" : "Población (1996)" }]
-
Una propiedad
bounds
con el bounding box de la geometría de la feature o null si el servidor no la devolvió. Siempre en EPSG:900913. - Una propiedad
highlightGeom
con la geometría de la feature o el bounding box (en caso de que así se configure en ellayers.json
) onull
si el servidor no devolvió datos geométricos. Siempre en EPSG:900913.
-
-
x: Posición X en la que se hizo click para obtener la información
- y: Posición Y en la que se hizo click para obtener la información
Ejemplo de uso:
highlight-feature
Indica que se debe resaltar la geometría que se pasa como parámetro
Parámetros: OpenLayers.Geometry
clear-highlighted-features
Indica que se deben de eliminar todos los resaltes establecidos mediante highlight-feature
.
Parámetros: Ninguno.
Feedback
activate-feedback
Activa el modo feedback mostrando la ventana y seleccionando la herramienta para el dibujado del polígono sobre el que se da el feedback.
Parámetros: Ninguno.
Ejemplo de uso:
bus.send("activate-feedback");
deactivate-feedback
Desactiva el modo feedback, ocultando la ventana y volviendo a la herramienta por defecto (navegación).
Parámetros: Ninguno.
Ejemplo de uso:
bus.send("deactivate-feedback");