Definición de archivo de asociación
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 cual debe estar ubicado en el mismo directorio del cubo y su nombre se especifica en el archivo .plugins.
El formato de dicho XML se presenta con un ejemplo:
<gisMappingDef> <mainDimension> <dimensionName>Location</dimensionName> <levels> <levelName>Country</levelName> <layerName>o3:countries</layerName> <levelAttributeName>label</levelAttributeName> <layerAttributeName>CNTRY_NAME</layerAttributeName> <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> <name>o3:countries</name> <label>Countries</label> <type>shp</type> <uri>file:/IdeaSoft/O3v5.2.000/files/gis/country.shp</uri> <symbolDef> <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> </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.