Mejorando la accesibilidad de las aplicaciones GIS basadas en
Web*
1 1 1 1 2
Nieves R. Brisaboa Miguel R. Luaces Jose R. Parama David Trillo José R.R. Viqueira
1 Laboratorio de Bases de Datos 2 Laboratorio de Sistemas
Departamento de Computación Departamento de Electrónica y Computación
Universidad de A Coruña Universidad de Santiago de Compostela
Facultade de Informática, Instituto de Investigaciones Tecnológicas
Campus de Elviña, s/n. 15071. A Coruña. España Campus sur, 15782 Santiago de Compostela, España
{ brisaboa,luaces, parama, dtrillo}@[Link] joserios@[Link]
1
Abstract Palabras Clave
El principal problema de los formatos vectoriales Aplicaciones SIG basadas en Web, Lenguajes
activos como WebCGM y Scalable Vector Geográficos, Representaciones Geográficas,
Graphics (SVG), radica en la necesidad de Servicios SIG basados en Web, Interoperabilidad.
instalar plug-ins o descargar applets que permitan
su visualización en la mayoría de los navegadores 1. Introducción
web. En este artículo se presenta un servicio web
cuya funcionalidad permite la transformación de Los esfuerzos de investigación que se han llevado
mapas vectoriales activos en formato SVG en una a cabo en la última década en las áreas de Sistemas
nueva representación de mapas activos, que utiliza de Información Geográfica (SIG) y el World Wide
únicamente elementos de DHTML (HTML + Web (WWW), han conducido al desarrollo de
JavaScript), mejorando de esta forma el acceso a nuevas tecnologías que permiten la publicación en
las aplicaciones GIS basadas en web. Esta nueva Web de mapas con información geográfica. En
representación, que forma parte del presente consecuencia, muchas de las aplicaciones SIG
trabajo, incluye una representación raster del actuales son accesibles directamente a través de
mapa y una representación vectorial de sus Internet. Un buen ejemplo de uno de estos
objetos geográficos. La primera es utilizada como desarrollos es la especificación Web Map Service
imagen de fondo del mapa, mientras que la (WMS) [4], ampliamente utilizada, propuesta por
segunda permite responder a eventos de usuario. el Open Geospatial Consortium Inc. (OGC). Esta
Un índice espacial, en concreto una estructura R- interfaz WMS, acepta una petición HTTP de un
Tree, es utilizada para acceder de forma eficiente mapa y responde con el correspondiente mapa, ya
a los objetos geográficos afectados por cada sea en formato vectorial o raster.
evento con el propósito de ejecutar las acciones Los formatos raster de mapas, como PNG,
correspondientes. JPG y GIF, pueden ser insertados directamente en
HTML, siendo posible su visualización en cual-
quier navegador. Sin embargo, la actividad de esos
formatos de mapas está muy restringida. En parti-
cular, los objetos geográficos contenidos en un
mapa raster no pueden responder individualmente
a los eventos de usuario (movimiento de ratón y
* Este trabajo fue parcialmente subencionado por el clic) con su propia funcionalidad. Esta limitación
CICYT (refs. TIC2002-04413-C04-04 y TIC2003- es parcialmente resuelta con la incorporación de
06593), y la Xunta de Galicia (ref. elementos <MAP> de HTML, si bien las propie-
PGIDIT02SIN10501PR).
dades visuales de los objetos no pueden ser cam- 2. Representación DHTML de mapas
biadas como respuesta a eventos de usuario. Por activos
ejemplo, no es posible cambiar el color de relleno
de un polígono como respuesta a un evento de clic En esta sección describiremos la representación
sobre él. DHTML de mapas activos, la cual soporta las
Las limitaciones de actividad de los formatos características de SVG que son utilizadas
raster, no aparecen en los formatos vectoriales habitualmente para modelar mapas activos. Este
activos, como WebCGM y Scalable Vector Grap- subconjunto de características es explicado a
hics (SVG) [5] [6]. El mayor problema de estos continuación:
formatos, en general, es la necesidad de un plug-in Mapas Activos en SVG: En el contexto del
o un applet para poder visualizarlos a través de los presente artículo, un Mapa Activo es una colección
navegadores web. Es bien conocido que el uso de de objetos geográficos (puntos, líneas y superfi-
estos elementos reduce considerablemente la acce- cies), cada uno de los cuales posee las siguientes
sibilidad de las páginas web. características: i) un estilo de visualización (colo-
En este artículo proponemos una nueva re- res del borde y del relleno, grosor de la línea, ico-
presentación de mapas activos que está totalmente nos, etc.) y ii) un comportamiento, expresado en
implementada utilizando DHTML, y cuya funcio- algún lenguaje de tipo Script (ECMAScript, Ja-
nalidad soporta las características comunes de vaScript, etc.), que permitirá al mapa responder a
mapas activos SVG. El código DHTML propuesto eventos como el movimiento o el clic del ratón.
incluye una representación raster del mapa y una Un mapa activo en formato SVG [5] es un docu-
representación vectorial de cada uno de sus objetos mento XML cuyos elementos son utilizados para
geográficos implementada en JavaScript. La pri- describir los atributos de cada uno de los objetos
mera es utilizada como imagen de fondo del mapa, geográficos que componen el mapa. Un ejemplo
mientras que la segunda permite al mapa respon- de mapa SVG conteniendo una superficie lo po-
der a eventos iniciados por el usuario. Un Contro- demos ver en la Figura 1.
lador de Eventos implementado en JavaScript,
utiliza una estructura de indexación espacial, en <svg viewbox="0 0 20 20" width="10px"
height ="10px">
concreto una estructura R-Tree, para acceder a los
objetos geográficos afectados por cada evento de <script type="text/ECMAScript">
ratón con el propósito de ejecutar la acción corres- <![CDATA[
function change_colour(evt){
pondiente (que también estará implementada en var target= [Link];
JavaScript). Finalmente, se ha desarrollado un [Link]("fill","white");
}
servicio web que transforma mapas activos en ]]>
formato SVG a la nueva representación DHTML. </script>
El resto de este artículo está organizado de la
<g stroke="black" fill="silver"
siguiente forma: En la sección 2 se presenta la onclick="cambiar_color(evt)">
nueva representación DHTML para mapas activos. <polygon points = "1 11
6 1
El controlador de eventos JavaScript se describe 11 6.5
en la sección 3. La sección 4 está dedicada a la 19 8
arquitectura del servicio web desarrollado. Las 10 18">
</g>
decisiones de diseño, así como las ventajas e in- </svg>
convenientes de la presente aproximación, son Figura 1: Mapas Activos en formato SVG
tratados en la sección 5. Finalmente, las conclu-
siones y posibles trabajos futuros son identificados
El elemento <svg> es utilizado para especificar las
en la última sección.
coordenadas geográficas del minimum bounding
rectangle (MBR), el rectángulo mínimo contene-
dor que engloba el mapa (viewbox en SVG), así contiene un polígono, cuya representación
como las dimensiones en píxeles del área de repre- geométrica vectorial se muestra en la Figura 2(a).
sentación del mapa. La representación raster de este polígono es
Los elementos <g> son contenedores utili- mostrada en la Figura 2(b). La figura 2(c) muestra
zados para agrupar objetos geográficos que com- los elementos <Div> de HTML generados cuando
parten algunas propiedades, ya sean estilos de el polígono es renderizado con la librería
visualización o atributos de comportamiento2. Los JavaScript Vector Graphics Library desarrollada
estilos de visualización son definidos como atribu- por Walter Zorn.
tos de los elementos SVG (ver stroke=”black” y
fill=”silver” en la Figura 1.). Estos atributos tam- 0 5 10 15 20
bién son utilizados para enlazar las funciones es-
5
critas en algún lenguaje tipo Script con algún
evento dado, y por lo tanto, definiendo el compor- 20 15 10
tamiento de los objetos incluidos en el correspon-
diente elemento SVG. De esta forma, en el mapa
de la Figura 1 se ha definido que cuando se produ- (a) Vectorial (b) Raster (c) DHTML
ce un clic de ratón sobre algún objeto, la función Figura 2: Representaciones de mapas
change_colour es utilizada para rellenar su color
de “blanco”. Renderizar todos los objetos geográficos del mapa
Finalmente, se ha dado soporte a varios ele- con elementos <Div> de HTML es muy
mentos básicos de SVG, como rectángulos, círcu- ineficiente. Para resolver este problema,
los, polilíneas, polígonos, etc., los cuales permiti- utilizaremos una representación del mapa en
rán definir las coordenadas de los elementos gráfi- formato raster como imagen de fondo del mapa.
cos (ver elemento polygon en la Figura 1). Las capacidades gráficas de la mencionada librería
Para dar soporte a este tipo de mapas en la son utilizadas únicamente para cambiar las
nueva representación DHTML, una funcionalidad propiedades visuales de los objetos geográficos
básica requerida es el renderizado de los elementos como respuesta a algún evento de usuario. Una
vectoriales en HTML. Esta funcionalidad básica es descripción más precisa de la representación
obtenida de la librería JavaScript Vector Graphics desarrollada es la siguiente:
Library implementada por Walter Zorn [7].
Librería JavaScript Vector Graphics Library 1. Gestor de Coordenadas: Es un objeto
de Walter Zorn: Esta librería contiene una JavaScript que almacena las coordenadas
colección de funciones JavaScript que permiten el geográficas del MBR del mapa y las
renderizado de elementos gráficos (elipses, líneas, dimensiones del área en la que se
polígonos, etc.) en HTML, haciendo uso de representará el mapa en la aplicación
algoritmos bien conocidos [1]. En líneas generales, cliente.
podemos decir que cada píxel o conjunto de 2. Representación Raster: Una
píxeles de la representación raster del objeto de representación raster del mapa, incluida
entrada, es renderizada como un elemento <Div> en HTML como una imagen (jpg, png,
de HTML. Para ilustrar esto, consideremos el gif, etc.).
mapa SVG definido en la Figura 1. Este mapa 3. Vector de Objetos: Un array JavaScript
que contendrá un objeto JavaScript por
2
Nótese que normalmente en SIG, un mapa está cada objeto geográfico del mapa. Cada
compuesto por capas, cada una de las cuales objeto del array contiene diferentes
contiene objetos de la misma clase (ríos, carrete- atributos: la representación vectorial de
ras, municipio, etc.) y con el mismo estilo de vi- los objetos geográficos relevantes, sus
sualización y comportamiento. propiedades visuales y el nombre de la
función JavaScript a ejecutar para cada end if (14)
posible evento de usuario. end for (15)
end while (16)
4. Funciones de Eventos: El código fuente
de la colección de funciones JavaScript
que están referenciadas por los objetos r5 mapXY
geográficos anteriormente mencionados. r4 mapXY
r1 r5 r6
Destacar que el código de estas
geo
funciones puede cambiar los atributos de r1,g1 r2,g2 r3,g3 r4,g4
los objetos geográficos anteriores. Las r2
funciones de renderizado de la librería r3 r6
de Walter Zorn se utilizan para mostrar (a) Estructura de indexación (b) Punto enPolígono
esos cambios en el navegador web. espacial (Rtree)
5. Estructuras de Indexación Espacial: El
código JavaScript de una estructura de Figura 3: Obteniendo objetos geográficos
indexación espacial, en concreto una afectados.
estructura R-Tree. Esta estructura se
construye a partir de la representación En la linea (3) el algoritmo captura un evento de
vectorial de los objetos geográficos ratón (mouseMove, mouseUp, MouseDown,
incluidos en el mapa. El R-Tree es MouseClick, etc.). Posteriormente, en las líneas
utilizado por el Controlador de Eventos (4-5), obtenemos la posición del puntero del ratón
JavaScript, el cual describiremos en la y la transformamos a las coordenadas geográficas
siguiente sección, para localizar de del mapa. La estructura R-Tree disponible en la
forma eficiente los objetos JavaScript representación DHTML del mapa es utilizada en la
afectados por cada evento de ratón, con línea (6) con el propósito de obtener una colección
el propósito de ejecutar la función de objetos JavaScript que potencialmente puedan
JavaScript apropiada. contener las coordenadas del puntero del ratón
asociadas al evento. Como ejemplo, consideremos
3. Controlador de Eventos JavaScript el R-Tree de la figura 3(a). En el nodo raíz, el
algoritmo de búsqueda detecta que el puntero del
El Controlador de Eventos JavaScript descrito en ratón (mapXY) está contenido en el rectángulo r5 y
esta sección permite dar soporte a la actividad continua la búsqueda por el hijo de la izquierda.
definida por las funciones JavaScript de la Dado que mapXY también está contenido en r1, el
representación DHTML de la sección previa. Su objeto g1 es recuperado como resultado potencial.
funcionalidad se rige por el siguiente Para cada objeto recuperado en la búsqueda del R-
pseudocódigo. Tree, el algoritmo comprueba si el puntero del
while (true) ratón está realmente contenido en su geometría
(1)
begin (línea 9). Para lograr esto, se aplica un algoritmo
(2)
event = capturaEventosDeRaton() bien conocido de geometría computacional [3]. Un
(3)
screenXY= obtieneLocalizaciónPuntero() (4)
buen ejemplo de cómo uno de estos algoritmos
mapXY = transforma(screenXY) (5)
comprueba si un punto pertenece a un polígono lo
result = busquedaRTree(rtree, mapXY) (6)
podemos ver en la Figura 3(b). Generalmente, un
for each geo in result do (7)
begin punto mapXY está contenido en un polígono geo si
(8)
if contiene(geo, mapXY) then una semirrecta con origen en el punto mapXY,
(9)
begin interseca con un número par de segmentos del
(10)
responderAEvento(geo, event) contorno de geo. Si la comprobación anterior
(11)
if [Link] then (12)
devuelve un resultado positivo entonces, en la
pintarGeometría(geo) (13)
línea (11), se invoca la función JavaScript
asociada en el objeto geo al evento que estamos (elemento url), donde un documento SVG está
procesando. Finalmente, si los atributos de estilo listo para ser descargado3.
del objeto son modificados durante la ejecución de Opcionalmente, la petición del servicio web
la mencionada función JavaScript, utilizaremos la SVGtoDHTML contendrá un elemento response-
funcionalidad proporcionada por las librerías Mode que podrá incluir los siguientes elementos:
JavaScript Vector Graphics Library de Walter
Zorn para renderizar de nuevo el objeto geográfico • dhtml: El servicio devuelve solo la
en el navegador. Representación DHTML de mapas
activos (ver Sección 2) generada a partir
del mapa SVG incluido (elemento svg) o
4. Arquitectura del servicio Web referenciado (elemento url) en la
SVGTODHTML petición.
Con el propósito de mostrar mapas SVG obtenidos • jsEventController: El servicio devuelve
de un servidor WMS estándar, ha sido solo el código del Controlador de
desarrollado un servicio web que permite la Eventos JavaScript (ver Sección 3),
transformación de mapas representados en formato requerida para visualizar el mapa
SVG a la nueva Representación DHTML de generado en el navegador web. En este
Mapas Activos presentada en la Sección 2. caso, la petición realizada al servicio
Además, el Controlador de Eventos JavaScript web no incluirá un elemento svg o un
descrito en la Sección 3 también será obtenido del elemento url.
servicio web. La arquitectura del servicio web • all: El servicio devuelve la
SVGtoDHTML es mostrada en la figura 4. Representación DHTML de mapas
activos junto con el código del
Aplicación GIS para Web Controlador de Eventos JavaScript. Esta
es la opción por defecto cuando el modo
Petición Respuesta
XML XML
de la respuesta del servicio no está
indicado en la petición.
Servicio Web SVGTODHTML
El XML Schema de la respuesta XML generada
Procesador de Peticiones Generador de Respuestas
por el servicio se muestra en la Figura 5(b). Esta
JavaScript
Representación respuesta consiste en dos elementos opcionales.
Objetos
Imagen
Raster
SVG
SVG
DHTML de
mapas activos Controlador • jsEventController: Incluye el código
de eventos fuente del Controlador de Eventos
SVG SVG JavaScript
To To JavaScript.
Raster JavaScript • dhtml: Incluye el código fuente de la
Representación DHTML de Mapas
Figura 4: Arquitectura del servicio web Activos generada. Este elemento está
SVGTODHTML compuesto por otros dos elementos. El
elemento raster incluye la imagen raster
La aplicación GIS para Web accede a la funciona- de la representación DHTML y el
lidad del servicio web SVGtoDHTML a través de elemento JavaScript contiene el código
una petición POST que incluye un documento fuente de la representación DHTML.
XML. El XML Schema de esta petición XML se
muestra en la Figura 5(a). Como podemos ver en 3
la figura, la petición deberá incluir un documento Este elemento debe ser usado para incluir la URL
SVG (elemento SVG) o una referencia a una URL de una petición GetMap dirigida a un servidor
WMS.
<?xml version="1.0"?> Controller, entonces el Generador de Respuestas
<xs:schema
xmlns:xs="[Link] se invoca para incluir solo el Controlador de
<xs:element name="svgToDhtmlRequest"> Eventos JavaScript en la respuesta. En otro caso,
<xs:complexType>
<xs:sequence> la Representación DHTML de mapas activos debe
<xs:choice minOccurs="0"> de ser generada a partir del documento SVG de la
<xs:element name="svg"
type="xs:string"/> petición. Para conseguir esto, se utiliza un módulo
<xs:element name="url" SVGtoRaster para generar la imagen raster y el
type="xs:anyURI"/>
</xs:choice> módulo SVGtoJavaScript se utiliza para generar el
<xs:element name="responseMode" código JavaScript.
minOccurs="0">
<xs:simpleType> SVG To Raster: Renderiza el documento
<xs:restriction base="xs:string"> SVG obtenido en la petición en una imagen raster.
<xs:enumeration value="dhtml"/>
<xs:enumeration value="jsEventController"/> La funcionalidad requerida es proporcionada por
<xs:enumeration value="all"/> la herramienta Open Source Batik[2].
</xs:restriction>
</xs:simpleType>
SVG To JavaScript: Procesa el documento
</xs:element> SVG obtenido por la petición recibida y genera el
</xs:sequence>
</xs:complexType>
código JavaScript de la Representación DHTML
</xs:element> de mapas activos. Este proceso puede ser resumi-
</xs:schema> do en los siguientes cinco pasos:
(a) Request XML Scheme
<?xml version="1.0"?> 1. El código JavaScript del objeto que al-
<xs:schema macena las coordenadas geográficas del
xmlns:xs="[Link]
<xs:element name = "svgToDhtmlResponse"> MBR del mapa y las dimensiones del
<xs:complexType> área en la que será representado, se ge-
<xs:sequence>
<xs:element name = "jsEventController" neran a partir del elemento <SVG> del
type = "xs:string" documento SVG de entrada.
minOccurs = "0"/>
<xs:element name = "dhtml" 2. Cada función implementada en código
minOccurs = "0"> Script y contenida en el documento
<xs:complexType>
<xs:sequence> SVG, se transforman en una función Ja-
<xs:element name = "raster" vaScript, con el mismo nombre en el có-
type = "xs:base64Binary"/>
<xs:element name = "javascript"
digo JavaScript resultante.
type = "xs:string"/> 3. Los elementos contenedores (elementos
</xs:sequence>
</xs:complexType>
<g>) del documento SVG de entrada son
</xs:element> procesados recursivamente para obtener
</xs:sequence> una colección de objetos, cada uno de
</xs:complexType>
</xs:element> los cuales almacenará: i) las coordenadas
</xs:schema> geográficas de los objetos geográficos
(b) ResponseXML Scheme relevantes, ii) propiedades de visualiza-
Figura 5: XML Schema de la peticiones y ción y iii) el nombre de la función Ja-
respuestas. vaScript que será invocada para cada po-
sible evento.
A continuación describiremos brevemente cada 4. Todos los objetos contenidos en el do-
uno de los módulos que componen la arquitectura cumento SVG serán procesados para ge-
del servicio web SVGtoDHTML: nerar el código JavaScript del array que
Procesador de peticiones: La petición enviada por contendrá los objetos geográficos rele-
la aplicación cliente es analizada sintacticamente y vantes. Nótese que durante este proceso,
procesada por este módulo. En el caso más simple, las coordenadas geográficas de cada ob-
si el modo de respuesta especificado es jsEvent- jeto deberán de ser transformadas desde
el sistema de coordenadas del mapa usuario que disponga de permisos de
hacia el sistema de coordenadas corres- administración y ii) son dependientes de cada
pondiente al área de representación del navegador web en particular. Por otra parte, los
mapa en la aplicación cliente. Para este applets solucionan los problemas de seguridad y
propósito, será necesaria la información de dependencia con la plataforma que acarrea la
almacenada en el objeto JavaScript ge- utilización de plug-ins. Sin embargo, deben de ser
nerado en el paso 1. descargados cada vez que la página web es
5. Los objetos obtenidos en el paso 3 son visitada, lo que conlleva problemas de eficiencia.
procesados otra vez para generar el có- Además, en algunas plataformas, como Windows
digo JavaScript de la estructura R-Tree 2003 Server, la Máquina Virtual Java requerida
de indexación espacial. para permitir la ejecución de applets no está
preinstalada.
Generador de Respuestas: Construye la respuesta Otra aproximación opuesta en términos de
XML a partir de la Representación DHTML de funcionalidad, es la utilización de representacio-
mapas activos generada por el Procesador de nes raster en algún formato imagen, como JPG,
Peticiones y el código fuente del Controlador de PNG, GIF, etc., insertada utilizando elementos
Eventos JavaScript. <IMG> de HTML. Esta es una solución estándar
que puede ser visualizada en cualquier navegador
5. Discusión web, sin embargo, el mapa no responderá a even-
En las Representaciones Vectoriales Activas de tos de ratón. Para incorporar cierto grado de acti-
mapas, como webCGM[6] y SVG[5], los objetos vidad en dicha aproximación raster, es necesario
vectoriales pueden responder a eventos de ratón asociar a la imagen un elemento <MAP> de
invocando funciones tipo Script de la aplicación HTML. Dicho elemento <MAP> permite la inser-
ción de una colección de polígonos transparentes
cliente que son incluidas en la representación del
mapa. Las propiedades de visualización de esos sobre la imagen. Esos polígonos responderán a
eventos de ratón invocando funciones Script de la
objetos vectoriales también pueden ser
modificadas durante la ejecución de las aplicación cliente. Esta aproximación es estándar y
puede ser visualizada en cualquier navegador web,
mencionadas funciones. Así, por ejemplo, es muy
sencillo definir una función que sea invocada cada sin embargo, todos los objetos geográficos conte-
nidos en el mapa son aproximados por polígonos.
vez que se produzca un clic de ratón sobre un
objeto vectorial y cuya funcionalidad cambie el Además, la funcionalidad de la actividad soportada
es limitada en comparación con formatos vectoria-
color de relleno de dicho objeto y muestre alguna
información alfanumérica relevante obtenida de les activos como SVG. Así, por ejemplo, no es
posible cambiar las propiedades visuales de los
una base de datos. El mayor problema de esas
Representaciones Vectoriales Activas, derivado de objetos geográficos del mapa como respuesta a
algún evento de usuario.
su complejidad, es la necesidad de utilizar un plug-
in o un applet para permitir su visualización en un La Representación de mapas activos en
navegador web4. Los plug-ins son la alternativa DHTML propuesta en el presente artículo aproxi-
más eficiente para extender la funcionalidad de un ma la funcionalidad de una representación vecto-
navegador web. Si bien, tienen dos importantes rial activa con las propiedades de accesibilidad de
desventajas: i) Debido a los problemas potenciales una representación raster. En particular, contra-
de seguridad, deben de ser instalados por un riamente a las representaciones vectoriales activas,
la representación propuesta en el presente artículo
puede ser directamente visualizada en cualquier
4
Una excepción de esta regla general es el nave- navegador web sin la necesidad de instalar ningún
gador web Mozilla, que soporta de forma nativa plug-in ni la necesidad de descargar ningún applet.
el formato SVG. Además, a diferencia de las representaciones ras-
ter, la presentación propuesta permite la incorpo- ajuste a las necesidades de la aproximación pro-
ración de objetos geográficos activos que respon- puesta. Mejorar la implementación del Controla-
den a eventos de usuario con la ejecución de fun- dor de Eventos JavaScript, de forma que se evite
ciones Script contenidas en la aplicación cliente, el renderizado en los cambios de las propiedades
posibilitando la modificación de las propiedades de un objeto en el caso de que dichos cambios
visuales de esos objetos. retornen las propiedades de visualización del obje-
Las desventajas de la Representación to a su estado inicial. Investigación sobre algorit-
DHTML de mapas activos, en comparación con mos de renderización de vectores para mejorar la
representaciones vectoriales activas, son las si- eficiencia de las librerías Vector Graphics Libra-
guientes. Primero, la respuesta a eventos de ratón ries proporcionadas por Walter Zorn. De particular
es mucho más rápida si la representación se visua- interés, es la minimización del número de elemen-
liza utilizando plug-ins o applets. Segundo, no tos <div> de HTML utilizados para renderizar un
toda la funcionalidad del formato SVG ha sido vector de elementos. Extender la implementación
implementada en la presente aproximación. Por del prototipo para incorporar todos los tipos de
ejemplo, algunas de las propiedades de estilo que eventos soportados en SVG.
pueden ser definidas para un objeto en SVG, no
están soportadas por nuestra implementación. Referencias
Finalmente, la presente aproximación dejará de ser
útil en el momento que el formato SVG sea sopor- [1] Bresenham J.E., Algorithm for Computer Control
tado de forma nativa por los navegadores. of a Digital Plotter, IBM Systems Journal, 4(1):25-
Un prototipo de prueba del servicio descrito 30, 1965
en la sección 4, ha sido completamente implemen- [2] Batik SVG Toolkit home page, retrieved March
tado. Finalmente, hasta donde alcanza el conoci- 2005 from: [Link]
miento de los autores, no se puede encontrar en la [3] Fabri A., Giezeman G.-J., Kettner L., Schirra S.,
literatura otra Representación de mapas activos en Schonherr S., On the design of CGAL a computa-
DHTML con características similares a la presen- tional geometry algorithms library, Software Prac-
tada en este artículo. tice and Experience 30:1167-1202, John Wiley &
Sons, Ltd., 2000.
6. Conclusiones y trabajo futuro [4] Open Geospatial Consortium, Web Map Service
OpenGIS Specification. Version 1.3, August 2004,.
En este artículo se ha propuesto una nueva Repre- Retrieved March 2005 from:
sentación DHTML de mapas activos que permite [Link]
dar soporte a la funcionalidad más común definida [5] World Wide Web Consortium, Scalable Vector
por los mapas SVG. Esta representación puede ser Graphics (SVG) 1.1 Specification, W3C
visualizada en cualquier navegador web con la Recommendation, January 2003. Retrieved March
ayuda de un Controlador de Eventos JavaScript, 2005 from: [Link]
que también es parte del presente trabajo. Por lo
[6] World Wide Web Consortium, WebCGM 1.0
tanto, no es necesario instalar plug-ins ni descargar Second Release, W3C Recommendation,
applets para acceder a las aplicaciones que utilicen December 2001. Retrieved March 2005 from:
esta representación para publicar mapas activos en [Link]
web. También ha sido desarrollado un servicio
[7] Zorn W, Vector Graphics Library home page,
web que permite la transformación de mapas en retrieved March 2005 from:
formato SVG a la nueva representación DHTML. [Link]
Finalmente, como posibles trabajos futuros se
incluyen los siguientes: Investigación de las pro-
piedades de varias estructuras de indexación espa-
cial que permita seleccionar aquella que mejor se