O3 GIS
Se presenta el soporte de GIS introducido en la versión 5.2 de O3, presentando un ejemplo y a continuación detalles sobre el funcionamiento del módulo y su configuración.
Ejemplo
Este archivo contiene una versión modificada del cubo Demo para integrarse con el módulo GIS.
Para ver el ejemplo seguir los siguientes pasos:
- Descomprimir el archivo en algún directorio del sistema, por ejemplo /IdeaSoft/gis
- Si el archivo se descomprime en un directorio diferente, o si la prueba se está realizando en Windows:
- Editar el archivo DemoGisMapping.xml
- Reemplazar las ocurrencias (2) de /Ideasoft/gis por la ubicación donde quedaron los archivos:
- <uri>file:/IdeaSoft/gis/country.shp</uri>
- <uri>file:/IdeaSoft/gis/worldcities.shp</uri>
- Ejecutar el módulo O3 Browser
- Abrir el cubo DemoGis.cube incluido en el zip mencionado anteriormente.
- Seleccionar en el menú: Ventana -> Plug-ins -> GIS Plugin
Se despliega una ventana con el mapa del mundo y se habilitan las siguientes caracterÃsticas:
- Al seleccionar un elemento geográfico en O3 el mapa se centra en dicha ubicación
- Si se ubica la dimensión Location en las series, se puede seleccionar que se utilice el color de las series para representar los elementos geográficos (seleccionar el tercer botón de la barra de herramientas de GIS)
- El doble-click en un elemento geográfico del mapa realiza la selección tanto en el mapa como en el cubo.
- Cuando la dimensión geográfica (Location en este caso) no está ubicada en las series, sino que está ubicada en el eje X, se puede seleccionar Max o Min, con esta opción los elementos geográficos toman el color del elemento que le da el mayor (o menor) valor.
Por ejemplo en la siguiente imagen el color de Brasil es rojo porque el tipo de cliente con más ventas es "Medium Accounts" y Canadá es azul porque la categorÃa con más ventas es "Minor Accounts".
Ejecución en ambiente Web
La ejecución del componente GIS en los módulos Web de O3: O3Portal y EPortal requiere la instalación de un componente adicional, en esta página se describen los pasos a seguir para instalar y configurar dicho componente.
Ejecución en O3Portal
Luego de instalado el componente GeoServer y confirmada la correcta configuración de los layers en dicho servidor, seguir estos pasos para visualizar el cubo en O3Portal:
- Agregar el cubo DemoGis al servidor de O3, ejecutar el administrador (AdmServer), agregar el cubo y asociar los roles y permisos correspondientes.
- Acceder al O3Portal (/o3portal) y abrir dicho cubo
- Se habilita un botón "Plug-ins" junto a "Opciones", seleccionarlo y luego seleccionar "GIS Plugin"
Se despliega una nueva ventana con el mapa, con las siguientes funcionalidades:
- Para acercar o alejar el mapa se puede utilizar la rueda de desplazamiento del mouse (Scroll Wheel) o presionar la tecla Shift mientras se arrastra el mouse manteniendo el botón izquierdo presionado para determinar la región a acercar.
- Para desplazar el mapa se arrastra el mouse manteniendo el botón izquierdo presionado.
- El click en un elemento realiza la selección (tanto en el mapa como en el cubo) y despliega la información asociada a dicho elemento (esta información es provista por el mapa).
- La selección de un elemento geográfico en la vista de O3 determina la selección del elemento en el mapa
Barra de Herramientas de GIS en O3Portal
La barra de herramientas de GIS se compone de 8 botones, tal como se muestra en la siguiente imagen:
Â
La funcionalidad de cada uno de los botones es la siguiente (por orden de izquierda a derecha en la barra de herramientas):
 Color de Series
Si se ubica la dimensión geográfica en las series, al activar este botón se utilizan los colores de las series para representar los elementos geográficos en el mapa.
 Gradiente
Si se ubica la dimensión geográfica en las series, al activar este botón se utiliza un gradiente de colores de amarillo a rojo para representar los elementos geográficos en el mapa de acuerdo a su valor actual.
 MÃnimos/Máximos
Cuando la dimensión geográfica no está ubicada en las series, sino que está ubicada en el eje X, en caso de seleccionar los botones de MÃnimos o Máximos, los elementos geográficos toman el color del elemento que le da el menor o el mayor valor respectivamente.
 Tabla de Información
Si se selecciona un elemento geográfico mediante un click estando este botón activado, se despliega una tabla con la información disponible del elemento geográfico en el mapa. La tabla puede ocultarse mediante un nuevo click que desactive el botón. Cuando el botón está activado se deshabilita la selección del elemento geográfico en el cubo.
 Caja de Selección Múltiple
Al activar este botón, se puede crear una caja para seleccionar los elementos geográficos contenidos dentro de dicha región. En el caso de elementos geográficos en forma de polÃgonos, se seleccionan todos los elementos que intersecten con la caja dibujada.
La caja de selección múltiple se dibuja desplazando el mouse con el botón izquierdo presionado hasta liberar el botón. Una vez dibujada una región, es posible seleccionar otra sin perder la anterior aplicando el mismo procedimiento pero manteniendo presionado la tecla Ctrl.
 Aplicar Selección
Al presionar este botón se realiza la selección (tanto en el mapa como en el cubo) de los elementos geográficos marcados.
 Cancelar Selección
Al presionar este botón se deseleccionan (tanto en el mapa como en el cubo) los elementos geográficos marcados.
Notas
La barra de herramientas con funcionalidad completa es compatible con los navegadores Internet Explorer 8 (con y sin vista de compatibilidad), y Mozilla Firefox 3.x. No se soportan las funcionalidades de selección múltiple en las versiones de Internet Explorer 6 y 7.
Ejecución en EPortal
El módulo GIS ofrece un portlet para la visualización de un mapa, el portlet permite la selección del cubo (o vista) a desplegar, de forma similar al portlet estándar de vista de O3, la restricción que se aplica es que el cubo seleccionado debe tener configurado el GIS, como es el caso del cubo DemoGis que se está usando de ejemplo.
Para utilizar este portlet con el cubo DemoGis seguir los siguientes pasos:
- Se asume que ya se realizaron los pasos para la visualización en O3 Portal, de lo contrario agregar el cubo DemoGis al servidor como se describe en ese punto.
- Ingresar a EPortal (/eportal) con el usuario admin
- Seleccionar la comunidad en la que se desea trabajar, por ejemplo: Mis Espacios Web / Default / Páginas Privadas
- Agregar una nueva página llamada GIS, esto no es necesario pero facilita la visualización del ejemplo:
- Agregar el portlet de GIS en la nueva página:
- Seleccionar "Añadir Portlet" en el meńu del portal
- Seleccionar "O3 GIS Portlet" de la categorÃa "IdeaSoft O3"
- Editar la configuración del portlet
- Seleccionar el cubo DemoGis
Se despliega el mapa del mundo, dado que los paÃses no están en las series no se asignan colores a cada uno de los elementos geográficos. Para esto se puede generar la vista deseada en el O3Portal y seleccionarla en el Portlet.
El portlet de GIS es compatible con el portlet de control, por lo tanto se puede agregar un portlet de control asociado a la dimensión geográfica (siguiendo las mismas instrucciones que para las vistas estándar), de esta manera al seleccionar un elemento geográfico en el portlet de control el mapa se centra en dicho elemento.
Barra de Herramientas de GIS en EPortal
La barra de herramientas de GIS en EPortal es la misma descripta para O3Portal, sin las funcionalidades de selección múltiple.
Conceptos Básicos
El componente GIS se basa en la realización de una asociación entre una dimensión de un cubo y un mapa (expresado como un conjunto de capas o "layers").
La asociación se realiza especificando para cada nivel de la dimensión:
- El layer del mapa asociado al nivel
- El atributo del mapa que se utiliza para realizar la asociación con el nivel del cubo
- El atributo del nivel de la dimensión (clave, etiqueta, etc.) que se asocia con el atributo del layer.
Esta asociación se expresa actualmente en un archivo XML, el formato de dicho XML se presenta con un ejemplo:
<gisMappingDef>    <mainDimension>    <!-- Location: Nombre de la dimensión geográfica -->        <dimensionName>Location</dimensionName>        <levels>       <!-- Country: Nivel de la dimensión -->            <levelName>Country</levelName>       <!-- o3: Almacén de datos, countries: Nombre de la capa -->            <layerName>o3:countries</layerName>       <!-- Atributo del nivel de la dimensión, label: etiqueta corta, key: clave -->            <levelAttributeName>label</levelAttributeName>       <!-- CNTRY_NAME: Atributo de la capa -->            <layerAttributeName>CNTRY_NAME</layerAttributeName>       <!-- Visibilidad: ALWAYS, ONLY_SELECTED_LEVEL -->        <visibility>ALWAYS</visibility>        </levels>        <levels>            <levelName>City</levelName>            <layerName>o3:worldcities</layerName>            <levelAttributeName>label</levelAttributeName>            <layerAttributeName>NAME</layerAttributeName>            <parentLayerAttributeName>COUNTRY</parentLayerAttributeName>            <visibility>ONLY_SELECTED_LEVEL</visibility>        </levels>    </mainDimension>    <mapDef>        <layers> <!-- o3: Almacén de datos, countries: Nombre de la capa -->        <name>o3:countries</name> <!-- Countries: Etiqueta de la capa -->        <label>Countries</label> <!-- shp: Formato cartográfico admitido -->        <type>shp</type>       <!-- uri: Path donde se encuentra la carografÃa, archivos shp -->        <uri>file:/IdeaSoft/O3v5.2.000/files/gis/country.shp</uri>            <symbolDef> <!-- CNTRY_NAME: Etiqueta del atributo de la capa -->                <labelAttributeName>CNTRY_NAME</labelAttributeName>                <defaultFillColor>#c0c0c0</defaultFillColor>                <strokeColor>#404040</strokeColor>                <selectedColor>#00b2b2</selectedColor>                <labelFontFamily>dialog</labelFontFamily>                <labelFontSize>10</labelFontSize>                <labelFontStyle>0</labelFontStyle>                <strokeWidth>1</strokeWidth>            </symbolDef>        </layers>        <layers>            <name>o3:worldcities</name>            <label>World Cities</label>            <type>shp</type>            <uri>file:/IdeaSoft/O3v5.2.000/files/gis/worldcities.shp</uri>            <symbolDef>                <labelAttributeName>NAME</labelAttributeName>                <defaultFillColor>#3c3c3c</defaultFillColor>                <strokeColor>#3c3c3c</strokeColor>                <selectedColor>#00b2b2</selectedColor>                <labelFontFamily>dialog</labelFontFamily>                <labelFontSize>10</labelFontSize>                <labelFontStyle>0</labelFontStyle>                <strokeWidth>1</strokeWidth>            </symbolDef>        </layers>    </mapDef> <!-- Coordenadas: latitud, longitud -->  <maxExtent>-180,-90,180,83.624</maxExtent> </gisMappingDef>
En este ejemplo se declara (bajo el elemento mainDimension) que la dimensión Location tiene dos niveles: Country y City, a su vez cada uno de estos niveles está asociado a un layer del mapa:
- Country con o3:countries** La asociación se realiza entre la etiqueta de la dimensión y el atributo CNTRY_NAME del layer
- City con o3:worldcities** La asociación se realiza entre la etiqueta de la dimensión y el atributo NAME del layer
- El atributo parentLayerAttributeName especifica que en el layer de las ciudades, el nombre del paÃs se encuentra en el atributo CNTRY_NAME. Este atributo se utiliza al seleccionar un paÃs, para dejar sólo visible las ciudades de ese paÃs.
Bajo el elemento mapDef/layers se especifican los layers que definen el mapa, el nombre especificado en cada uno de los layers debe coincidir con los nombres especificados en la asociación con el nivel de la dimensión. Para el nombre de cada layer debe utilizarse la sintaxis namespace:nombre_de_layer.
El elemento uri especifica la ubicación del archivo shp que especifica el layer.
El nodo maxExtent especifica, las coordenadas provistas en la configuración de la capa en GeoServer utilizadas en el entorno web (Encuadre Lat/Lon).
En oportunidades de trabajar en MS Windows donde además los nombres de las dimensiones geográficas poseen caracteres especiales, puede suceder que no se reconozca correctamente la referencia. En dicho caso, corresponde sustituir dichos caracteres en el nombre de la dimensión en el XML anterior, por los caracteres interpretados por Java. Por ejemplo, los caracteres:
á
é
Ã
ó
ú
se sutituyen por:
á
é
ÃÂ
ó
ú
Â
Â
A los valores que provee Geoserver, se le deben quitar las comas y reemplazarlas por puntos, por ejemplo, 83,624 se debe configurar como 83.624
Asociación de un mapa a un cubo
Especificación del plugin para el cubo
El módulo de GIS está basado en el soporte de plugins en O3, es por ello que para poder asociar un mapa al cubo se debe especificar un archivo de definición de plugins.
Supongamos que tenemos un cubo con nombre DemoGis.cube que tiene una dimensión geográfica Location (con las caracterÃsticas presentadas en el XML anterior), en este caso se debe escribir un archivo de texto con nombre DemoGis.plugins (el archivo debe estar ubicado en el mismo directorio donde está el cubo, el nombre debe ser igual al nombre del cubo pero con extensión .plugins), con el siguiente contenido:
plugin.0.name=GIS Plugin plugin.0.dsc=GIS Plugin plugin.0.browser.class=com.ideasoft.o3.gis.plugin.GisBrowserPlugin plugin.0.server.class=com.ideasoft.o3.gis.plugin.GisServerPlugin plugin.0.args=mapping=DemoGisMapping.xml
En este archivo debe modificarse el valor del atributo mapping (en el ejemplo DemoGisMapping.xml) al nombre del archivo XML con la especificación de la asociación, este archivo también debe ubicarse en el mismo directorio donde se encuentra el archivo .cube.
Especificación del archivo de asociación
Como se describió previamente, la asociación de los layers del mapa a los niveles de la dimensión se realiza en un archivo XML, este archivo debe estar ubicado en el mismo directorio que el cubo y su nombre se especifica en el archivo .plugins.