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 como abort() 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 grupo
  • parentId: Opcional, para grupos dentro de otros grupos hace referencia al grupo contenedor
  • name: nombre del grupo
  • infoLink: 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 capa
  • groupId: id del grupo en el que se debe añadir la capa
  • label: Texto con el nombre de la capa a usar en el portal
  • infoLink: Ruta de la página HTML con información sobre la capa
  • inlineLegendUrl: URL con una imagen pequeña que situar al lado del nombre de la capa en el árbol de capas
  • queryable: Si se pretende ofrecer herramienta de información para la capa o no
  • active: 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 capa
    • wmsName: Nombre de la capa en el servicio WMS
    • imageFormat: Formato de imagen a utilizar en las llamadas WMS
    • zIndex: Posición en la pila de dibujado
    • legend: Nombre del fichero imagen con la leyenda de la capa. Estos ficheros se acceden en static/loc/{lang}/images
    • label: Título de la leyenda
    • sourceLink: URL del proveedor de los datos
    • sourceLabel: Texto con el que presentar el enlace especificado en sourceLink
    • timestamps: 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 plugin layer-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 con map: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 el layers.json) o null 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");