Atlas Comercial Comunidad Valenciana
Transcript of Atlas Comercial Comunidad Valenciana
Autor del proyecto
Arturo Argileacutes Casasuacutes
(ararcainfupves)
Director
Moiseacutes Pastor Gadea
Septiembre de 2010
Atlas Comercial Comunidad Valenciana
A Moiseacutes Pastor por su paciencia y su aporte
para hacer realidad este proyecto
A Lena por estar siempre a mi lado
eacutestas palabras son tambieacuten suyas
A mis padres y a mi hermana
por tantos antildeos de apoyo
A IVER Tecnologiacuteas
especialmente a Adriaacuten Garciacutea
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
3
Indice
1 Introduccioacuten 4
2 Especificaciones de la Interfaz 8
3 Solucioacuten del problema 13
31 Extensioacuten Atlas 16
311 ExtSearchAtlasLocalejs 18
312 ExtSearchAtlasConfigjs 18
313 ExtSearchAtlasjs 18
314 InfoBBox 19
315 aSearchButton 20
316 eSearchButton 21
317 helpButton 21
32 Extensioacuten WMS 22
33 Impresioacuten 22
34 StreetView 24
35 Trabajo futuro 26
351 Mapa localizador 26
352 Sobre StreetView 27
353 Otros mapas 27
354 Dibujar sobre el mapa 28
4 Relacioacuten con la industria 29
5 Conclusiones 31
6 Anexo A 32
7 Anexo B 55
8 Anexo C 100
10 Bibliografiacutea 172
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
4
1 Introduccioacuten
El estudio de la cartografiacutea por el hombre se remonta a tiempos
preteacuteritos Entremezclados el conocimiento y la necesidad bien por ampliar
rutas comerciales bien por marcar fronteras tantas veces modificadas a lo
largo de la historia a merced de las actividades beacutelicas dio pie al conocimiento
de la cartografiacutea
El avance de las tecnologiacuteas no ha sido ajeno a este campo suponiendo
un fuerte impacto en el manejo de informacioacuten geograacutefica ya que se han
obtenido herramientas que han permitido crear aplicaciones relacionadas con
la cartografiacutea digital de una forma eficiente llegando incluso a estar disponibles
tambieacuten en la web Desde las organizaciones encargadas de los Sistemas de
Informacioacuten Geograacutefica (SIG) se ha buscado definir unos estaacutendares para
lograr una uniformidad que haga interoperables los sistemas desarrollados asiacute
como los que estaacuten por desarrollar Uno de los estaacutendares maacutes recientes
propuesto por el Open Geospatial Consortium es el Web Processing Service
(WPS) que ha sido disentildeado para estandarizar la forma en que los procesos
SIG se ofrecen a traveacutes de Internet Cabe tener en cuenta que si bien la
cartografiacutea digital ya resulta un proyecto relativamente reciente debido a la
dificultad que implica trasladar esta materia al desarrollo web resulta auacuten maacutes
complejo ya que el tratamiento de imaacutegenes y la realizacioacuten de los caacutelculos
resulta mucho maacutes lenta que si se realiza en una aplicacioacuten de escritorio
Como ejemplo de eficiencia acerca de este campo podemos nombrar
algo tan familiar como son los mapas de carreteras Si bien no hace muchos
antildeos la lectura de estos mapas en papel resultaba algo tediosa hoy es algo
muy comuacuten y sencillo realizar consultas sobre mapas asiacute como las diferentes
alternativas relacionadas con el caacutelculo de rutas entre dos puntos y otras
actividades que ofrece la cartografiacutea digital a traveacutes de un ordenador conectado
a la red basta con indicar los puntos origen y destino asiacute como sentildealar las
diferentes alternativas (permite escoger la ruta maacutes larga la maacutes corta incluso
la maacutes segura) de forma que el usuario pueda estudiar sobre el propio mapa
las rutas calculadas
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
5
Cada vez son maacutes las aplicaciones que facilitan al usuario las consultas
que se pueden realizar sobre un mapa habiendo provocado esta competencia
un amplio abanico de posibilidades que hagan maacutes atractivo al cliente el
manejo de dicha aplicacioacuten frente a sus competidoras Resulta cada diacutea maacutes
habitual encontrar aplicaciones cartograacuteficas tan diversas como
Mapas de carreteras son los maacutes empleados para realizar consultas como
el caacutelculo de rutas entre un punto origen y otro punto destino Para este fin
ofrece al usuario una serie de alternativas como si se desea el caacutelculo de la
ruta maacutes corta la maacutes segura o la maacutes raacutepida Entre sus alternativas se
puede indicar si se desea que el caacutelculo tenga en cuenta o no autopistas de
peaje Cuentan con varias alternativas para hacer maacutes atractiva frente a sus
competidoras como son la localizacioacuten de radares informacioacuten
meteoroloacutegicahellip Son algunos ejemplos de las maacutes utilizadas
o La guiacutea Micheliacuten (httpwwwviamichelines)
o La guiacutea de Repsol-Campsa (httpwwwguiarepsolcom)
o La guiacutea Cepsa (httpwwwbuenviajecepsacom)
La referencia catastral permite al usuario localizar los bienes inmuebles
mediante la referencia catastral El gobierno ofrece por medio del ministerio
de economiacutea y hacienda realizar consultas acerca de la direccioacuten general
del catastro Se puede encontrar maacutes informacioacuten en las direcciones
(httpwwwcatastromehes
y httpwwwsedecatastrogobes)
Mapas geneacutericos Estos uacuteltimos son cada diacutea maacutes uacutetiles ya que permiten
no soacutelo mostrar diferentes vistas de un mapa o la ruta entre dos puntos
sino tambieacuten una vista sateacutelite que permite localizar ampliando el zoom
sobre un punto del mapa hasta el extremo de mostrar imaacutegenes de una
calle como las puede ver un viandante Son algunos ejemplos de estos
uacuteltimos los que ofrecen algunos portales web como son
o GoogleMaps de Google (httpmapsgooglees)
o YahooMaps de Yahoo (httpmapsyahoocom)
o BingMaps de Microsoft (httpwwwbingcommaps)
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
6
Entre sus ventajas cabe destacar del movimiento que ha surgido de un
tiempo a esta parte por el que muchas paacuteginas y aplicaciones web hacen
uso de scripts que les permita mostrar estos mapas en una pequentildea
ventana tal que muestre la ubicacioacuten del objeto que se ofrece en la web
indicada
Ha sido tal la aceptacioacuten de este tipo de visores web aplicados a la
cartografiacutea por los usuarios de la red que ya se han adaptado incluso a las
tecnologiacuteas moacuteviles asiacute no resulta ya extrantildeo poder disponer de moacuteviles
con GPS y aplicaciones de este tipo en dispositivos moacuteviles con conexioacuten
de datos permitiendo incluso geo-localizar a otros dispositivos moacuteviles
(como sucede con la aplicacioacuten google latitude para teleacutefonos moacuteviles
android) asiacute como trazar rutas en funcioacuten de la distancia tipo de vehiacuteculo (a
pie en coche medio de transporte puacuteblico) e incluso en funcioacuten de la
situacioacuten del traacutefico
Existen otros visores web maacutes especiacuteficos entre ellos se encuentran
visores ofrecidos por algunos ministerios como el de hacienda mencionado
anteriormente para el catastro o el ministerio de fomento que ofrece varios
visores en funcioacuten del campo solicitado Asiacute por ejemplo se puede estudiar
un visor de servicios geodeacutesicos en la siguiente URL
(httpwwwignesignesIGNvisor_geodesicojsp)
Un ejemplo de aplicacioacuten para tecnologiacutea moacutevil que como indicaacutebamos
anteriormente y de un tiempo a esta parte ha aumentado
considerablemente su oferta de mercado es la que ha creado la entidad
bancaria BBVA para dispositivos moacuteviles tal que una de sus ofertas es la
de geo-localizar la posicioacuten del dispositivo moacutevil asiacute como la de los cajeros
propios y de otras entidades indicando su direccioacuten y distancia tal que si se
desea calcular la ruta a alguno de los indicados basta con seleccionarlo
Como resultado la aplicacioacuten muestra un mapa de Google en vista sateacutelite y
la ruta a seguir para llegar a la ubicacioacuten especificada sentildealizada sobre el
mapa
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
7
Existen muchos maacutes tipos de visores web tambieacuten muy uacutetiles aunque
quizaacute algo maacutes desconocidos pese a la informacioacuten que ofrecen Un
ejemplo de un visor web de este tipo es el que ofrece la URL
(httpfireflygeogumdedufiremap) que informa al usuario de la localizacioacuten
sobre un mapamundi de los diferentes focos incendiarios que hay a lo largo
del planeta estaacute ademaacutes muy actualizado Resulta realmente acongojador
por cierto
Atlas Comercial de la Comunidad Valenciana se trata de un visor web
que encaja en el cuarto grupo de los mencionados arriba esto es un visor
web con una funcionalidad muy especiacutefica Se utiliza para obtener
informacioacuten de los diferentes municipios de la comunidad asiacute como la
informacioacuten de los establecimientos comercios de innovacioacuten
concentraciones comerciales antenas locales y caacutemaras de comercio que
se extienden a lo largo de la comunidad asiacute como la informacioacuten referente a
estos (si la hay)
Existen otros visores web parecidos en cuanto a funcionalidad y disentildeo
como el que se puede encontrar en la URL (httpsigeoiveres) que se encarga
de la localizacioacuten de explotaciones tanto mineras como de manantiales y
yacimientos mineros entre otras en un mapa que se extiende a lo largo de la
comunidad autoacutenoma de Extremadura Este uacuteltimo visor comparte en algunos
puntos funcionalidad con el visor que abarca este proyecto herramientas por
otro lado definidas como veremos maacutes adelante por el propio framework sobre
el que se ha desarrollado el visor Altas Comercial de la Comunidad Valenciana
forma parte de un proyecto encargado por la Caacutemara de Comercio de la
Comunidad Valenciana a la empresa especializada en aplicaciones SIG como
es Iver Tecnologiacuteas de la Informacioacuten empresa con la que colaboreacute trabajando
precisamente en esta aplicacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
A Moiseacutes Pastor por su paciencia y su aporte
para hacer realidad este proyecto
A Lena por estar siempre a mi lado
eacutestas palabras son tambieacuten suyas
A mis padres y a mi hermana
por tantos antildeos de apoyo
A IVER Tecnologiacuteas
especialmente a Adriaacuten Garciacutea
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
3
Indice
1 Introduccioacuten 4
2 Especificaciones de la Interfaz 8
3 Solucioacuten del problema 13
31 Extensioacuten Atlas 16
311 ExtSearchAtlasLocalejs 18
312 ExtSearchAtlasConfigjs 18
313 ExtSearchAtlasjs 18
314 InfoBBox 19
315 aSearchButton 20
316 eSearchButton 21
317 helpButton 21
32 Extensioacuten WMS 22
33 Impresioacuten 22
34 StreetView 24
35 Trabajo futuro 26
351 Mapa localizador 26
352 Sobre StreetView 27
353 Otros mapas 27
354 Dibujar sobre el mapa 28
4 Relacioacuten con la industria 29
5 Conclusiones 31
6 Anexo A 32
7 Anexo B 55
8 Anexo C 100
10 Bibliografiacutea 172
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
4
1 Introduccioacuten
El estudio de la cartografiacutea por el hombre se remonta a tiempos
preteacuteritos Entremezclados el conocimiento y la necesidad bien por ampliar
rutas comerciales bien por marcar fronteras tantas veces modificadas a lo
largo de la historia a merced de las actividades beacutelicas dio pie al conocimiento
de la cartografiacutea
El avance de las tecnologiacuteas no ha sido ajeno a este campo suponiendo
un fuerte impacto en el manejo de informacioacuten geograacutefica ya que se han
obtenido herramientas que han permitido crear aplicaciones relacionadas con
la cartografiacutea digital de una forma eficiente llegando incluso a estar disponibles
tambieacuten en la web Desde las organizaciones encargadas de los Sistemas de
Informacioacuten Geograacutefica (SIG) se ha buscado definir unos estaacutendares para
lograr una uniformidad que haga interoperables los sistemas desarrollados asiacute
como los que estaacuten por desarrollar Uno de los estaacutendares maacutes recientes
propuesto por el Open Geospatial Consortium es el Web Processing Service
(WPS) que ha sido disentildeado para estandarizar la forma en que los procesos
SIG se ofrecen a traveacutes de Internet Cabe tener en cuenta que si bien la
cartografiacutea digital ya resulta un proyecto relativamente reciente debido a la
dificultad que implica trasladar esta materia al desarrollo web resulta auacuten maacutes
complejo ya que el tratamiento de imaacutegenes y la realizacioacuten de los caacutelculos
resulta mucho maacutes lenta que si se realiza en una aplicacioacuten de escritorio
Como ejemplo de eficiencia acerca de este campo podemos nombrar
algo tan familiar como son los mapas de carreteras Si bien no hace muchos
antildeos la lectura de estos mapas en papel resultaba algo tediosa hoy es algo
muy comuacuten y sencillo realizar consultas sobre mapas asiacute como las diferentes
alternativas relacionadas con el caacutelculo de rutas entre dos puntos y otras
actividades que ofrece la cartografiacutea digital a traveacutes de un ordenador conectado
a la red basta con indicar los puntos origen y destino asiacute como sentildealar las
diferentes alternativas (permite escoger la ruta maacutes larga la maacutes corta incluso
la maacutes segura) de forma que el usuario pueda estudiar sobre el propio mapa
las rutas calculadas
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
5
Cada vez son maacutes las aplicaciones que facilitan al usuario las consultas
que se pueden realizar sobre un mapa habiendo provocado esta competencia
un amplio abanico de posibilidades que hagan maacutes atractivo al cliente el
manejo de dicha aplicacioacuten frente a sus competidoras Resulta cada diacutea maacutes
habitual encontrar aplicaciones cartograacuteficas tan diversas como
Mapas de carreteras son los maacutes empleados para realizar consultas como
el caacutelculo de rutas entre un punto origen y otro punto destino Para este fin
ofrece al usuario una serie de alternativas como si se desea el caacutelculo de la
ruta maacutes corta la maacutes segura o la maacutes raacutepida Entre sus alternativas se
puede indicar si se desea que el caacutelculo tenga en cuenta o no autopistas de
peaje Cuentan con varias alternativas para hacer maacutes atractiva frente a sus
competidoras como son la localizacioacuten de radares informacioacuten
meteoroloacutegicahellip Son algunos ejemplos de las maacutes utilizadas
o La guiacutea Micheliacuten (httpwwwviamichelines)
o La guiacutea de Repsol-Campsa (httpwwwguiarepsolcom)
o La guiacutea Cepsa (httpwwwbuenviajecepsacom)
La referencia catastral permite al usuario localizar los bienes inmuebles
mediante la referencia catastral El gobierno ofrece por medio del ministerio
de economiacutea y hacienda realizar consultas acerca de la direccioacuten general
del catastro Se puede encontrar maacutes informacioacuten en las direcciones
(httpwwwcatastromehes
y httpwwwsedecatastrogobes)
Mapas geneacutericos Estos uacuteltimos son cada diacutea maacutes uacutetiles ya que permiten
no soacutelo mostrar diferentes vistas de un mapa o la ruta entre dos puntos
sino tambieacuten una vista sateacutelite que permite localizar ampliando el zoom
sobre un punto del mapa hasta el extremo de mostrar imaacutegenes de una
calle como las puede ver un viandante Son algunos ejemplos de estos
uacuteltimos los que ofrecen algunos portales web como son
o GoogleMaps de Google (httpmapsgooglees)
o YahooMaps de Yahoo (httpmapsyahoocom)
o BingMaps de Microsoft (httpwwwbingcommaps)
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
6
Entre sus ventajas cabe destacar del movimiento que ha surgido de un
tiempo a esta parte por el que muchas paacuteginas y aplicaciones web hacen
uso de scripts que les permita mostrar estos mapas en una pequentildea
ventana tal que muestre la ubicacioacuten del objeto que se ofrece en la web
indicada
Ha sido tal la aceptacioacuten de este tipo de visores web aplicados a la
cartografiacutea por los usuarios de la red que ya se han adaptado incluso a las
tecnologiacuteas moacuteviles asiacute no resulta ya extrantildeo poder disponer de moacuteviles
con GPS y aplicaciones de este tipo en dispositivos moacuteviles con conexioacuten
de datos permitiendo incluso geo-localizar a otros dispositivos moacuteviles
(como sucede con la aplicacioacuten google latitude para teleacutefonos moacuteviles
android) asiacute como trazar rutas en funcioacuten de la distancia tipo de vehiacuteculo (a
pie en coche medio de transporte puacuteblico) e incluso en funcioacuten de la
situacioacuten del traacutefico
Existen otros visores web maacutes especiacuteficos entre ellos se encuentran
visores ofrecidos por algunos ministerios como el de hacienda mencionado
anteriormente para el catastro o el ministerio de fomento que ofrece varios
visores en funcioacuten del campo solicitado Asiacute por ejemplo se puede estudiar
un visor de servicios geodeacutesicos en la siguiente URL
(httpwwwignesignesIGNvisor_geodesicojsp)
Un ejemplo de aplicacioacuten para tecnologiacutea moacutevil que como indicaacutebamos
anteriormente y de un tiempo a esta parte ha aumentado
considerablemente su oferta de mercado es la que ha creado la entidad
bancaria BBVA para dispositivos moacuteviles tal que una de sus ofertas es la
de geo-localizar la posicioacuten del dispositivo moacutevil asiacute como la de los cajeros
propios y de otras entidades indicando su direccioacuten y distancia tal que si se
desea calcular la ruta a alguno de los indicados basta con seleccionarlo
Como resultado la aplicacioacuten muestra un mapa de Google en vista sateacutelite y
la ruta a seguir para llegar a la ubicacioacuten especificada sentildealizada sobre el
mapa
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
7
Existen muchos maacutes tipos de visores web tambieacuten muy uacutetiles aunque
quizaacute algo maacutes desconocidos pese a la informacioacuten que ofrecen Un
ejemplo de un visor web de este tipo es el que ofrece la URL
(httpfireflygeogumdedufiremap) que informa al usuario de la localizacioacuten
sobre un mapamundi de los diferentes focos incendiarios que hay a lo largo
del planeta estaacute ademaacutes muy actualizado Resulta realmente acongojador
por cierto
Atlas Comercial de la Comunidad Valenciana se trata de un visor web
que encaja en el cuarto grupo de los mencionados arriba esto es un visor
web con una funcionalidad muy especiacutefica Se utiliza para obtener
informacioacuten de los diferentes municipios de la comunidad asiacute como la
informacioacuten de los establecimientos comercios de innovacioacuten
concentraciones comerciales antenas locales y caacutemaras de comercio que
se extienden a lo largo de la comunidad asiacute como la informacioacuten referente a
estos (si la hay)
Existen otros visores web parecidos en cuanto a funcionalidad y disentildeo
como el que se puede encontrar en la URL (httpsigeoiveres) que se encarga
de la localizacioacuten de explotaciones tanto mineras como de manantiales y
yacimientos mineros entre otras en un mapa que se extiende a lo largo de la
comunidad autoacutenoma de Extremadura Este uacuteltimo visor comparte en algunos
puntos funcionalidad con el visor que abarca este proyecto herramientas por
otro lado definidas como veremos maacutes adelante por el propio framework sobre
el que se ha desarrollado el visor Altas Comercial de la Comunidad Valenciana
forma parte de un proyecto encargado por la Caacutemara de Comercio de la
Comunidad Valenciana a la empresa especializada en aplicaciones SIG como
es Iver Tecnologiacuteas de la Informacioacuten empresa con la que colaboreacute trabajando
precisamente en esta aplicacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
3
Indice
1 Introduccioacuten 4
2 Especificaciones de la Interfaz 8
3 Solucioacuten del problema 13
31 Extensioacuten Atlas 16
311 ExtSearchAtlasLocalejs 18
312 ExtSearchAtlasConfigjs 18
313 ExtSearchAtlasjs 18
314 InfoBBox 19
315 aSearchButton 20
316 eSearchButton 21
317 helpButton 21
32 Extensioacuten WMS 22
33 Impresioacuten 22
34 StreetView 24
35 Trabajo futuro 26
351 Mapa localizador 26
352 Sobre StreetView 27
353 Otros mapas 27
354 Dibujar sobre el mapa 28
4 Relacioacuten con la industria 29
5 Conclusiones 31
6 Anexo A 32
7 Anexo B 55
8 Anexo C 100
10 Bibliografiacutea 172
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
4
1 Introduccioacuten
El estudio de la cartografiacutea por el hombre se remonta a tiempos
preteacuteritos Entremezclados el conocimiento y la necesidad bien por ampliar
rutas comerciales bien por marcar fronteras tantas veces modificadas a lo
largo de la historia a merced de las actividades beacutelicas dio pie al conocimiento
de la cartografiacutea
El avance de las tecnologiacuteas no ha sido ajeno a este campo suponiendo
un fuerte impacto en el manejo de informacioacuten geograacutefica ya que se han
obtenido herramientas que han permitido crear aplicaciones relacionadas con
la cartografiacutea digital de una forma eficiente llegando incluso a estar disponibles
tambieacuten en la web Desde las organizaciones encargadas de los Sistemas de
Informacioacuten Geograacutefica (SIG) se ha buscado definir unos estaacutendares para
lograr una uniformidad que haga interoperables los sistemas desarrollados asiacute
como los que estaacuten por desarrollar Uno de los estaacutendares maacutes recientes
propuesto por el Open Geospatial Consortium es el Web Processing Service
(WPS) que ha sido disentildeado para estandarizar la forma en que los procesos
SIG se ofrecen a traveacutes de Internet Cabe tener en cuenta que si bien la
cartografiacutea digital ya resulta un proyecto relativamente reciente debido a la
dificultad que implica trasladar esta materia al desarrollo web resulta auacuten maacutes
complejo ya que el tratamiento de imaacutegenes y la realizacioacuten de los caacutelculos
resulta mucho maacutes lenta que si se realiza en una aplicacioacuten de escritorio
Como ejemplo de eficiencia acerca de este campo podemos nombrar
algo tan familiar como son los mapas de carreteras Si bien no hace muchos
antildeos la lectura de estos mapas en papel resultaba algo tediosa hoy es algo
muy comuacuten y sencillo realizar consultas sobre mapas asiacute como las diferentes
alternativas relacionadas con el caacutelculo de rutas entre dos puntos y otras
actividades que ofrece la cartografiacutea digital a traveacutes de un ordenador conectado
a la red basta con indicar los puntos origen y destino asiacute como sentildealar las
diferentes alternativas (permite escoger la ruta maacutes larga la maacutes corta incluso
la maacutes segura) de forma que el usuario pueda estudiar sobre el propio mapa
las rutas calculadas
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
5
Cada vez son maacutes las aplicaciones que facilitan al usuario las consultas
que se pueden realizar sobre un mapa habiendo provocado esta competencia
un amplio abanico de posibilidades que hagan maacutes atractivo al cliente el
manejo de dicha aplicacioacuten frente a sus competidoras Resulta cada diacutea maacutes
habitual encontrar aplicaciones cartograacuteficas tan diversas como
Mapas de carreteras son los maacutes empleados para realizar consultas como
el caacutelculo de rutas entre un punto origen y otro punto destino Para este fin
ofrece al usuario una serie de alternativas como si se desea el caacutelculo de la
ruta maacutes corta la maacutes segura o la maacutes raacutepida Entre sus alternativas se
puede indicar si se desea que el caacutelculo tenga en cuenta o no autopistas de
peaje Cuentan con varias alternativas para hacer maacutes atractiva frente a sus
competidoras como son la localizacioacuten de radares informacioacuten
meteoroloacutegicahellip Son algunos ejemplos de las maacutes utilizadas
o La guiacutea Micheliacuten (httpwwwviamichelines)
o La guiacutea de Repsol-Campsa (httpwwwguiarepsolcom)
o La guiacutea Cepsa (httpwwwbuenviajecepsacom)
La referencia catastral permite al usuario localizar los bienes inmuebles
mediante la referencia catastral El gobierno ofrece por medio del ministerio
de economiacutea y hacienda realizar consultas acerca de la direccioacuten general
del catastro Se puede encontrar maacutes informacioacuten en las direcciones
(httpwwwcatastromehes
y httpwwwsedecatastrogobes)
Mapas geneacutericos Estos uacuteltimos son cada diacutea maacutes uacutetiles ya que permiten
no soacutelo mostrar diferentes vistas de un mapa o la ruta entre dos puntos
sino tambieacuten una vista sateacutelite que permite localizar ampliando el zoom
sobre un punto del mapa hasta el extremo de mostrar imaacutegenes de una
calle como las puede ver un viandante Son algunos ejemplos de estos
uacuteltimos los que ofrecen algunos portales web como son
o GoogleMaps de Google (httpmapsgooglees)
o YahooMaps de Yahoo (httpmapsyahoocom)
o BingMaps de Microsoft (httpwwwbingcommaps)
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
6
Entre sus ventajas cabe destacar del movimiento que ha surgido de un
tiempo a esta parte por el que muchas paacuteginas y aplicaciones web hacen
uso de scripts que les permita mostrar estos mapas en una pequentildea
ventana tal que muestre la ubicacioacuten del objeto que se ofrece en la web
indicada
Ha sido tal la aceptacioacuten de este tipo de visores web aplicados a la
cartografiacutea por los usuarios de la red que ya se han adaptado incluso a las
tecnologiacuteas moacuteviles asiacute no resulta ya extrantildeo poder disponer de moacuteviles
con GPS y aplicaciones de este tipo en dispositivos moacuteviles con conexioacuten
de datos permitiendo incluso geo-localizar a otros dispositivos moacuteviles
(como sucede con la aplicacioacuten google latitude para teleacutefonos moacuteviles
android) asiacute como trazar rutas en funcioacuten de la distancia tipo de vehiacuteculo (a
pie en coche medio de transporte puacuteblico) e incluso en funcioacuten de la
situacioacuten del traacutefico
Existen otros visores web maacutes especiacuteficos entre ellos se encuentran
visores ofrecidos por algunos ministerios como el de hacienda mencionado
anteriormente para el catastro o el ministerio de fomento que ofrece varios
visores en funcioacuten del campo solicitado Asiacute por ejemplo se puede estudiar
un visor de servicios geodeacutesicos en la siguiente URL
(httpwwwignesignesIGNvisor_geodesicojsp)
Un ejemplo de aplicacioacuten para tecnologiacutea moacutevil que como indicaacutebamos
anteriormente y de un tiempo a esta parte ha aumentado
considerablemente su oferta de mercado es la que ha creado la entidad
bancaria BBVA para dispositivos moacuteviles tal que una de sus ofertas es la
de geo-localizar la posicioacuten del dispositivo moacutevil asiacute como la de los cajeros
propios y de otras entidades indicando su direccioacuten y distancia tal que si se
desea calcular la ruta a alguno de los indicados basta con seleccionarlo
Como resultado la aplicacioacuten muestra un mapa de Google en vista sateacutelite y
la ruta a seguir para llegar a la ubicacioacuten especificada sentildealizada sobre el
mapa
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
7
Existen muchos maacutes tipos de visores web tambieacuten muy uacutetiles aunque
quizaacute algo maacutes desconocidos pese a la informacioacuten que ofrecen Un
ejemplo de un visor web de este tipo es el que ofrece la URL
(httpfireflygeogumdedufiremap) que informa al usuario de la localizacioacuten
sobre un mapamundi de los diferentes focos incendiarios que hay a lo largo
del planeta estaacute ademaacutes muy actualizado Resulta realmente acongojador
por cierto
Atlas Comercial de la Comunidad Valenciana se trata de un visor web
que encaja en el cuarto grupo de los mencionados arriba esto es un visor
web con una funcionalidad muy especiacutefica Se utiliza para obtener
informacioacuten de los diferentes municipios de la comunidad asiacute como la
informacioacuten de los establecimientos comercios de innovacioacuten
concentraciones comerciales antenas locales y caacutemaras de comercio que
se extienden a lo largo de la comunidad asiacute como la informacioacuten referente a
estos (si la hay)
Existen otros visores web parecidos en cuanto a funcionalidad y disentildeo
como el que se puede encontrar en la URL (httpsigeoiveres) que se encarga
de la localizacioacuten de explotaciones tanto mineras como de manantiales y
yacimientos mineros entre otras en un mapa que se extiende a lo largo de la
comunidad autoacutenoma de Extremadura Este uacuteltimo visor comparte en algunos
puntos funcionalidad con el visor que abarca este proyecto herramientas por
otro lado definidas como veremos maacutes adelante por el propio framework sobre
el que se ha desarrollado el visor Altas Comercial de la Comunidad Valenciana
forma parte de un proyecto encargado por la Caacutemara de Comercio de la
Comunidad Valenciana a la empresa especializada en aplicaciones SIG como
es Iver Tecnologiacuteas de la Informacioacuten empresa con la que colaboreacute trabajando
precisamente en esta aplicacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
4
1 Introduccioacuten
El estudio de la cartografiacutea por el hombre se remonta a tiempos
preteacuteritos Entremezclados el conocimiento y la necesidad bien por ampliar
rutas comerciales bien por marcar fronteras tantas veces modificadas a lo
largo de la historia a merced de las actividades beacutelicas dio pie al conocimiento
de la cartografiacutea
El avance de las tecnologiacuteas no ha sido ajeno a este campo suponiendo
un fuerte impacto en el manejo de informacioacuten geograacutefica ya que se han
obtenido herramientas que han permitido crear aplicaciones relacionadas con
la cartografiacutea digital de una forma eficiente llegando incluso a estar disponibles
tambieacuten en la web Desde las organizaciones encargadas de los Sistemas de
Informacioacuten Geograacutefica (SIG) se ha buscado definir unos estaacutendares para
lograr una uniformidad que haga interoperables los sistemas desarrollados asiacute
como los que estaacuten por desarrollar Uno de los estaacutendares maacutes recientes
propuesto por el Open Geospatial Consortium es el Web Processing Service
(WPS) que ha sido disentildeado para estandarizar la forma en que los procesos
SIG se ofrecen a traveacutes de Internet Cabe tener en cuenta que si bien la
cartografiacutea digital ya resulta un proyecto relativamente reciente debido a la
dificultad que implica trasladar esta materia al desarrollo web resulta auacuten maacutes
complejo ya que el tratamiento de imaacutegenes y la realizacioacuten de los caacutelculos
resulta mucho maacutes lenta que si se realiza en una aplicacioacuten de escritorio
Como ejemplo de eficiencia acerca de este campo podemos nombrar
algo tan familiar como son los mapas de carreteras Si bien no hace muchos
antildeos la lectura de estos mapas en papel resultaba algo tediosa hoy es algo
muy comuacuten y sencillo realizar consultas sobre mapas asiacute como las diferentes
alternativas relacionadas con el caacutelculo de rutas entre dos puntos y otras
actividades que ofrece la cartografiacutea digital a traveacutes de un ordenador conectado
a la red basta con indicar los puntos origen y destino asiacute como sentildealar las
diferentes alternativas (permite escoger la ruta maacutes larga la maacutes corta incluso
la maacutes segura) de forma que el usuario pueda estudiar sobre el propio mapa
las rutas calculadas
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
5
Cada vez son maacutes las aplicaciones que facilitan al usuario las consultas
que se pueden realizar sobre un mapa habiendo provocado esta competencia
un amplio abanico de posibilidades que hagan maacutes atractivo al cliente el
manejo de dicha aplicacioacuten frente a sus competidoras Resulta cada diacutea maacutes
habitual encontrar aplicaciones cartograacuteficas tan diversas como
Mapas de carreteras son los maacutes empleados para realizar consultas como
el caacutelculo de rutas entre un punto origen y otro punto destino Para este fin
ofrece al usuario una serie de alternativas como si se desea el caacutelculo de la
ruta maacutes corta la maacutes segura o la maacutes raacutepida Entre sus alternativas se
puede indicar si se desea que el caacutelculo tenga en cuenta o no autopistas de
peaje Cuentan con varias alternativas para hacer maacutes atractiva frente a sus
competidoras como son la localizacioacuten de radares informacioacuten
meteoroloacutegicahellip Son algunos ejemplos de las maacutes utilizadas
o La guiacutea Micheliacuten (httpwwwviamichelines)
o La guiacutea de Repsol-Campsa (httpwwwguiarepsolcom)
o La guiacutea Cepsa (httpwwwbuenviajecepsacom)
La referencia catastral permite al usuario localizar los bienes inmuebles
mediante la referencia catastral El gobierno ofrece por medio del ministerio
de economiacutea y hacienda realizar consultas acerca de la direccioacuten general
del catastro Se puede encontrar maacutes informacioacuten en las direcciones
(httpwwwcatastromehes
y httpwwwsedecatastrogobes)
Mapas geneacutericos Estos uacuteltimos son cada diacutea maacutes uacutetiles ya que permiten
no soacutelo mostrar diferentes vistas de un mapa o la ruta entre dos puntos
sino tambieacuten una vista sateacutelite que permite localizar ampliando el zoom
sobre un punto del mapa hasta el extremo de mostrar imaacutegenes de una
calle como las puede ver un viandante Son algunos ejemplos de estos
uacuteltimos los que ofrecen algunos portales web como son
o GoogleMaps de Google (httpmapsgooglees)
o YahooMaps de Yahoo (httpmapsyahoocom)
o BingMaps de Microsoft (httpwwwbingcommaps)
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
6
Entre sus ventajas cabe destacar del movimiento que ha surgido de un
tiempo a esta parte por el que muchas paacuteginas y aplicaciones web hacen
uso de scripts que les permita mostrar estos mapas en una pequentildea
ventana tal que muestre la ubicacioacuten del objeto que se ofrece en la web
indicada
Ha sido tal la aceptacioacuten de este tipo de visores web aplicados a la
cartografiacutea por los usuarios de la red que ya se han adaptado incluso a las
tecnologiacuteas moacuteviles asiacute no resulta ya extrantildeo poder disponer de moacuteviles
con GPS y aplicaciones de este tipo en dispositivos moacuteviles con conexioacuten
de datos permitiendo incluso geo-localizar a otros dispositivos moacuteviles
(como sucede con la aplicacioacuten google latitude para teleacutefonos moacuteviles
android) asiacute como trazar rutas en funcioacuten de la distancia tipo de vehiacuteculo (a
pie en coche medio de transporte puacuteblico) e incluso en funcioacuten de la
situacioacuten del traacutefico
Existen otros visores web maacutes especiacuteficos entre ellos se encuentran
visores ofrecidos por algunos ministerios como el de hacienda mencionado
anteriormente para el catastro o el ministerio de fomento que ofrece varios
visores en funcioacuten del campo solicitado Asiacute por ejemplo se puede estudiar
un visor de servicios geodeacutesicos en la siguiente URL
(httpwwwignesignesIGNvisor_geodesicojsp)
Un ejemplo de aplicacioacuten para tecnologiacutea moacutevil que como indicaacutebamos
anteriormente y de un tiempo a esta parte ha aumentado
considerablemente su oferta de mercado es la que ha creado la entidad
bancaria BBVA para dispositivos moacuteviles tal que una de sus ofertas es la
de geo-localizar la posicioacuten del dispositivo moacutevil asiacute como la de los cajeros
propios y de otras entidades indicando su direccioacuten y distancia tal que si se
desea calcular la ruta a alguno de los indicados basta con seleccionarlo
Como resultado la aplicacioacuten muestra un mapa de Google en vista sateacutelite y
la ruta a seguir para llegar a la ubicacioacuten especificada sentildealizada sobre el
mapa
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
7
Existen muchos maacutes tipos de visores web tambieacuten muy uacutetiles aunque
quizaacute algo maacutes desconocidos pese a la informacioacuten que ofrecen Un
ejemplo de un visor web de este tipo es el que ofrece la URL
(httpfireflygeogumdedufiremap) que informa al usuario de la localizacioacuten
sobre un mapamundi de los diferentes focos incendiarios que hay a lo largo
del planeta estaacute ademaacutes muy actualizado Resulta realmente acongojador
por cierto
Atlas Comercial de la Comunidad Valenciana se trata de un visor web
que encaja en el cuarto grupo de los mencionados arriba esto es un visor
web con una funcionalidad muy especiacutefica Se utiliza para obtener
informacioacuten de los diferentes municipios de la comunidad asiacute como la
informacioacuten de los establecimientos comercios de innovacioacuten
concentraciones comerciales antenas locales y caacutemaras de comercio que
se extienden a lo largo de la comunidad asiacute como la informacioacuten referente a
estos (si la hay)
Existen otros visores web parecidos en cuanto a funcionalidad y disentildeo
como el que se puede encontrar en la URL (httpsigeoiveres) que se encarga
de la localizacioacuten de explotaciones tanto mineras como de manantiales y
yacimientos mineros entre otras en un mapa que se extiende a lo largo de la
comunidad autoacutenoma de Extremadura Este uacuteltimo visor comparte en algunos
puntos funcionalidad con el visor que abarca este proyecto herramientas por
otro lado definidas como veremos maacutes adelante por el propio framework sobre
el que se ha desarrollado el visor Altas Comercial de la Comunidad Valenciana
forma parte de un proyecto encargado por la Caacutemara de Comercio de la
Comunidad Valenciana a la empresa especializada en aplicaciones SIG como
es Iver Tecnologiacuteas de la Informacioacuten empresa con la que colaboreacute trabajando
precisamente en esta aplicacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
5
Cada vez son maacutes las aplicaciones que facilitan al usuario las consultas
que se pueden realizar sobre un mapa habiendo provocado esta competencia
un amplio abanico de posibilidades que hagan maacutes atractivo al cliente el
manejo de dicha aplicacioacuten frente a sus competidoras Resulta cada diacutea maacutes
habitual encontrar aplicaciones cartograacuteficas tan diversas como
Mapas de carreteras son los maacutes empleados para realizar consultas como
el caacutelculo de rutas entre un punto origen y otro punto destino Para este fin
ofrece al usuario una serie de alternativas como si se desea el caacutelculo de la
ruta maacutes corta la maacutes segura o la maacutes raacutepida Entre sus alternativas se
puede indicar si se desea que el caacutelculo tenga en cuenta o no autopistas de
peaje Cuentan con varias alternativas para hacer maacutes atractiva frente a sus
competidoras como son la localizacioacuten de radares informacioacuten
meteoroloacutegicahellip Son algunos ejemplos de las maacutes utilizadas
o La guiacutea Micheliacuten (httpwwwviamichelines)
o La guiacutea de Repsol-Campsa (httpwwwguiarepsolcom)
o La guiacutea Cepsa (httpwwwbuenviajecepsacom)
La referencia catastral permite al usuario localizar los bienes inmuebles
mediante la referencia catastral El gobierno ofrece por medio del ministerio
de economiacutea y hacienda realizar consultas acerca de la direccioacuten general
del catastro Se puede encontrar maacutes informacioacuten en las direcciones
(httpwwwcatastromehes
y httpwwwsedecatastrogobes)
Mapas geneacutericos Estos uacuteltimos son cada diacutea maacutes uacutetiles ya que permiten
no soacutelo mostrar diferentes vistas de un mapa o la ruta entre dos puntos
sino tambieacuten una vista sateacutelite que permite localizar ampliando el zoom
sobre un punto del mapa hasta el extremo de mostrar imaacutegenes de una
calle como las puede ver un viandante Son algunos ejemplos de estos
uacuteltimos los que ofrecen algunos portales web como son
o GoogleMaps de Google (httpmapsgooglees)
o YahooMaps de Yahoo (httpmapsyahoocom)
o BingMaps de Microsoft (httpwwwbingcommaps)
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
6
Entre sus ventajas cabe destacar del movimiento que ha surgido de un
tiempo a esta parte por el que muchas paacuteginas y aplicaciones web hacen
uso de scripts que les permita mostrar estos mapas en una pequentildea
ventana tal que muestre la ubicacioacuten del objeto que se ofrece en la web
indicada
Ha sido tal la aceptacioacuten de este tipo de visores web aplicados a la
cartografiacutea por los usuarios de la red que ya se han adaptado incluso a las
tecnologiacuteas moacuteviles asiacute no resulta ya extrantildeo poder disponer de moacuteviles
con GPS y aplicaciones de este tipo en dispositivos moacuteviles con conexioacuten
de datos permitiendo incluso geo-localizar a otros dispositivos moacuteviles
(como sucede con la aplicacioacuten google latitude para teleacutefonos moacuteviles
android) asiacute como trazar rutas en funcioacuten de la distancia tipo de vehiacuteculo (a
pie en coche medio de transporte puacuteblico) e incluso en funcioacuten de la
situacioacuten del traacutefico
Existen otros visores web maacutes especiacuteficos entre ellos se encuentran
visores ofrecidos por algunos ministerios como el de hacienda mencionado
anteriormente para el catastro o el ministerio de fomento que ofrece varios
visores en funcioacuten del campo solicitado Asiacute por ejemplo se puede estudiar
un visor de servicios geodeacutesicos en la siguiente URL
(httpwwwignesignesIGNvisor_geodesicojsp)
Un ejemplo de aplicacioacuten para tecnologiacutea moacutevil que como indicaacutebamos
anteriormente y de un tiempo a esta parte ha aumentado
considerablemente su oferta de mercado es la que ha creado la entidad
bancaria BBVA para dispositivos moacuteviles tal que una de sus ofertas es la
de geo-localizar la posicioacuten del dispositivo moacutevil asiacute como la de los cajeros
propios y de otras entidades indicando su direccioacuten y distancia tal que si se
desea calcular la ruta a alguno de los indicados basta con seleccionarlo
Como resultado la aplicacioacuten muestra un mapa de Google en vista sateacutelite y
la ruta a seguir para llegar a la ubicacioacuten especificada sentildealizada sobre el
mapa
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
7
Existen muchos maacutes tipos de visores web tambieacuten muy uacutetiles aunque
quizaacute algo maacutes desconocidos pese a la informacioacuten que ofrecen Un
ejemplo de un visor web de este tipo es el que ofrece la URL
(httpfireflygeogumdedufiremap) que informa al usuario de la localizacioacuten
sobre un mapamundi de los diferentes focos incendiarios que hay a lo largo
del planeta estaacute ademaacutes muy actualizado Resulta realmente acongojador
por cierto
Atlas Comercial de la Comunidad Valenciana se trata de un visor web
que encaja en el cuarto grupo de los mencionados arriba esto es un visor
web con una funcionalidad muy especiacutefica Se utiliza para obtener
informacioacuten de los diferentes municipios de la comunidad asiacute como la
informacioacuten de los establecimientos comercios de innovacioacuten
concentraciones comerciales antenas locales y caacutemaras de comercio que
se extienden a lo largo de la comunidad asiacute como la informacioacuten referente a
estos (si la hay)
Existen otros visores web parecidos en cuanto a funcionalidad y disentildeo
como el que se puede encontrar en la URL (httpsigeoiveres) que se encarga
de la localizacioacuten de explotaciones tanto mineras como de manantiales y
yacimientos mineros entre otras en un mapa que se extiende a lo largo de la
comunidad autoacutenoma de Extremadura Este uacuteltimo visor comparte en algunos
puntos funcionalidad con el visor que abarca este proyecto herramientas por
otro lado definidas como veremos maacutes adelante por el propio framework sobre
el que se ha desarrollado el visor Altas Comercial de la Comunidad Valenciana
forma parte de un proyecto encargado por la Caacutemara de Comercio de la
Comunidad Valenciana a la empresa especializada en aplicaciones SIG como
es Iver Tecnologiacuteas de la Informacioacuten empresa con la que colaboreacute trabajando
precisamente en esta aplicacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
6
Entre sus ventajas cabe destacar del movimiento que ha surgido de un
tiempo a esta parte por el que muchas paacuteginas y aplicaciones web hacen
uso de scripts que les permita mostrar estos mapas en una pequentildea
ventana tal que muestre la ubicacioacuten del objeto que se ofrece en la web
indicada
Ha sido tal la aceptacioacuten de este tipo de visores web aplicados a la
cartografiacutea por los usuarios de la red que ya se han adaptado incluso a las
tecnologiacuteas moacuteviles asiacute no resulta ya extrantildeo poder disponer de moacuteviles
con GPS y aplicaciones de este tipo en dispositivos moacuteviles con conexioacuten
de datos permitiendo incluso geo-localizar a otros dispositivos moacuteviles
(como sucede con la aplicacioacuten google latitude para teleacutefonos moacuteviles
android) asiacute como trazar rutas en funcioacuten de la distancia tipo de vehiacuteculo (a
pie en coche medio de transporte puacuteblico) e incluso en funcioacuten de la
situacioacuten del traacutefico
Existen otros visores web maacutes especiacuteficos entre ellos se encuentran
visores ofrecidos por algunos ministerios como el de hacienda mencionado
anteriormente para el catastro o el ministerio de fomento que ofrece varios
visores en funcioacuten del campo solicitado Asiacute por ejemplo se puede estudiar
un visor de servicios geodeacutesicos en la siguiente URL
(httpwwwignesignesIGNvisor_geodesicojsp)
Un ejemplo de aplicacioacuten para tecnologiacutea moacutevil que como indicaacutebamos
anteriormente y de un tiempo a esta parte ha aumentado
considerablemente su oferta de mercado es la que ha creado la entidad
bancaria BBVA para dispositivos moacuteviles tal que una de sus ofertas es la
de geo-localizar la posicioacuten del dispositivo moacutevil asiacute como la de los cajeros
propios y de otras entidades indicando su direccioacuten y distancia tal que si se
desea calcular la ruta a alguno de los indicados basta con seleccionarlo
Como resultado la aplicacioacuten muestra un mapa de Google en vista sateacutelite y
la ruta a seguir para llegar a la ubicacioacuten especificada sentildealizada sobre el
mapa
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
7
Existen muchos maacutes tipos de visores web tambieacuten muy uacutetiles aunque
quizaacute algo maacutes desconocidos pese a la informacioacuten que ofrecen Un
ejemplo de un visor web de este tipo es el que ofrece la URL
(httpfireflygeogumdedufiremap) que informa al usuario de la localizacioacuten
sobre un mapamundi de los diferentes focos incendiarios que hay a lo largo
del planeta estaacute ademaacutes muy actualizado Resulta realmente acongojador
por cierto
Atlas Comercial de la Comunidad Valenciana se trata de un visor web
que encaja en el cuarto grupo de los mencionados arriba esto es un visor
web con una funcionalidad muy especiacutefica Se utiliza para obtener
informacioacuten de los diferentes municipios de la comunidad asiacute como la
informacioacuten de los establecimientos comercios de innovacioacuten
concentraciones comerciales antenas locales y caacutemaras de comercio que
se extienden a lo largo de la comunidad asiacute como la informacioacuten referente a
estos (si la hay)
Existen otros visores web parecidos en cuanto a funcionalidad y disentildeo
como el que se puede encontrar en la URL (httpsigeoiveres) que se encarga
de la localizacioacuten de explotaciones tanto mineras como de manantiales y
yacimientos mineros entre otras en un mapa que se extiende a lo largo de la
comunidad autoacutenoma de Extremadura Este uacuteltimo visor comparte en algunos
puntos funcionalidad con el visor que abarca este proyecto herramientas por
otro lado definidas como veremos maacutes adelante por el propio framework sobre
el que se ha desarrollado el visor Altas Comercial de la Comunidad Valenciana
forma parte de un proyecto encargado por la Caacutemara de Comercio de la
Comunidad Valenciana a la empresa especializada en aplicaciones SIG como
es Iver Tecnologiacuteas de la Informacioacuten empresa con la que colaboreacute trabajando
precisamente en esta aplicacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
Atlas Comercial de la Comunidad Valenciana ndash Introduccioacuten
7
Existen muchos maacutes tipos de visores web tambieacuten muy uacutetiles aunque
quizaacute algo maacutes desconocidos pese a la informacioacuten que ofrecen Un
ejemplo de un visor web de este tipo es el que ofrece la URL
(httpfireflygeogumdedufiremap) que informa al usuario de la localizacioacuten
sobre un mapamundi de los diferentes focos incendiarios que hay a lo largo
del planeta estaacute ademaacutes muy actualizado Resulta realmente acongojador
por cierto
Atlas Comercial de la Comunidad Valenciana se trata de un visor web
que encaja en el cuarto grupo de los mencionados arriba esto es un visor
web con una funcionalidad muy especiacutefica Se utiliza para obtener
informacioacuten de los diferentes municipios de la comunidad asiacute como la
informacioacuten de los establecimientos comercios de innovacioacuten
concentraciones comerciales antenas locales y caacutemaras de comercio que
se extienden a lo largo de la comunidad asiacute como la informacioacuten referente a
estos (si la hay)
Existen otros visores web parecidos en cuanto a funcionalidad y disentildeo
como el que se puede encontrar en la URL (httpsigeoiveres) que se encarga
de la localizacioacuten de explotaciones tanto mineras como de manantiales y
yacimientos mineros entre otras en un mapa que se extiende a lo largo de la
comunidad autoacutenoma de Extremadura Este uacuteltimo visor comparte en algunos
puntos funcionalidad con el visor que abarca este proyecto herramientas por
otro lado definidas como veremos maacutes adelante por el propio framework sobre
el que se ha desarrollado el visor Altas Comercial de la Comunidad Valenciana
forma parte de un proyecto encargado por la Caacutemara de Comercio de la
Comunidad Valenciana a la empresa especializada en aplicaciones SIG como
es Iver Tecnologiacuteas de la Informacioacuten empresa con la que colaboreacute trabajando
precisamente en esta aplicacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
8
2 Especificaciones de la Interfaz
Atlas Comercial de la Comunidad Valenciana se trata como se ha
especificado de un visor web que ofrezca al usuario una serie de herramientas
para interactuar con el mapa y la informacioacuten que este ofrece
En primer lugar deben definirse unos maacutergenes especiacuteficos para el
visor como se muestran en la figura 1 Debe haber un panel herramientas
(toolBarPanel) donde aparezcan los botones propios de la navegacioacuten del visor
Asimismo debe contener una barra de estado en la parte baja del navegador
(footerPanel) donde se informaraacute durante el procesamiento de los caacutelculos de la
aplicacioacuten de la escala utilizada de las coordenadas donde se encuentra el
ratoacuten y la proyeccioacuten empleada Ha de crearse ademaacutes un panel que permita la
seleccioacuten de los mapas asiacute como de las capas en el margen derecho del visor
y la leyenda del mapa en funcioacuten del que se haya seleccionado (eastPanel) Por
uacuteltimo debe existir un panel donde se muestre el mapa (containerMapPanel)
Figura 1 Maacutergenes del visor
Como se ha indicado anteriormente sobre la barra de herramientas
debe haber una serie de botones propios de un navegador como son
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
9
Seleccioacuten de idioma este puede ser castellano o valenciano
Recarga de mapa De modo que en caso de pulsarlo vuelva a mostrar el
mapa con las coordenadas definidas por defecto para su arranque
Realizando un zoom a la totalidad de la cartografiacutea
Ampliar zoom y reducir zoom de modo que en caso de ampliar ajuste el
zoom acercando el mapa y lo aleje en caso de que se reduzca el zoom
Arrastrar imagen que permite arrastrar el mapa mediante las acciones de
pulsar y arrastrar
Navegacioacuten de vistas tal que el usuario pueda moverse a extensiones de
zoom anteriores y posteriores o lo que es lo mismo a vistas de cartografiacuteas
anteriores y posteriores
Medicioacuten de distancias sobre la imagen del mapa
Medicioacuten de aacutereas sobre la imagen del mapa
Limpiar el mapa tal que borre los elementos graacuteficos de la vista
Recarga del mapa debe actualizar las capas de la vista
Ademaacutes de estas funcionalidades comunes a un visor web cartograacutefico
existen una serie de funcionalidades especiacuteficas de la aplicacioacuten que se
especifican a continuacioacuten
Obtener informacioacuten de municipios para ello basta con pinchar con el
ratoacuten sobre el municipio del que se desea obtener la informacioacuten (se debe
dotar a la seleccioacuten del ratoacuten con un pequentildeo margen de aacuterea
seleccionable asiacute en el caso de que el puntero del ratoacuten se encuentre en
los liacutemites de varios municipios debe mostrarse en una ventana un listado
con los municipios que comprenden el aacuterea de seleccioacuten del ratoacuten de forma
que se escoja el municipio del que se desea obtener informacioacuten con una
nueva seleccioacuten del ratoacuten) El resultado se muestra en una nueva ventana y
debe contener informacioacuten relacionada con dicho municipio (nombre
extensioacuten una tabla demograacuteficahellip)
Tambieacuten se podraacute obtener informacioacuten de un municipio atendiendo a su
extensioacuten geograacutefica sobre el mapa de modo que se seleccione un
municipio de una provincia (previamente indicada mediante un formulario) y
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
10
el mapa aplicaraacute un zoom sobre el municipio del que se desea conocer su
extensioacuten
Sobre el mapa deben indicarse mediante unos iconos los diferentes
establecimientos concentraciones comerciales comercios de innovacioacuten
antenas locales y caacutemaras de comercio que se extienden a lo largo de la
comunidad de forma que para obtener la informacioacuten de cualquiera de
estos baste con indicar que queremos obtener informacioacuten sobre ellos
seleccionaacutendolo previamente en el eastPanel y arrastrando posteriormente
el ratoacuten de forma que se indique un aacuterea de buacutesqueda Para la buacutesqueda de
establecimientos y concentraciones comerciales se debe habilitar ademaacutes
un botoacuten de buacutesqueda especiacutefico para cada uno de ellos en el toolBarPanel
Un usuario con rol de administrador podraacute gestionar tanto el servicio de
mapas a mostrar como las capas que pueda contener cada mapa Podraacute
ademaacutes indicar si una capa es consultable o no (si podemos realizar
buacutesquedas sobre dicha capa) asiacute como el icono y el texto que acompantildee a
cada capa para formar la leyenda final del mapa El administrador podraacute a
su vez crear nuevos usuarios y asignarles un rol para la gestioacuten de dicha
aplicacioacuten
Entre las consultas que podemos realizar al mapa estaacute la de obtencioacuten de
informacioacuten WMS de los campos de la capa previamente seleccionada El
resultado se mostraraacute en una nueva ventana debe contener una serie de
campos propios de la informacioacuten que se puede obtener de dicho servicio
Debe habilitarse un servicio de impresioacuten de modo que permita exportar
a imagen obteniendo una imagen del mapa Tambieacuten se podraacute exportar a
un fichero en formato pdf tal que se muestre el mapa y la leyenda
perteneciente a dicho mapa
Servicio WMS que permita antildeadir nuevas capas en el eastPanel a partir de
una URL de un servidor WMS
Centrado en coordenadas que permita centrar el mapa en las
coordenadas introducidas
Street View que permita obtener una vista panoraacutemica en una nueva
ventana del punto seleccionado con el ratoacuten (siempre que exista dicha
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
11
vista) Es una vista ofrecida por la funcionalidad de Street View de Google
Maps
Todas estas funcionalidades deben ofrecerse en una interfaz sencilla de
modo que resulte de faacutecil manejo y en muy poco tiempo un usuario que
desconozca su funcionamiento pueda familiarizarse con ella Con este objetivo
el mapa que se muestra al arrancar la aplicacioacuten recuerda al de otros visores
ya que se ayuda de los mapas de Google y Yahoo para tal fin (aunque podriacutean
antildeadirse algunos mapas nuevos como pueden ser de referencias catastrales
mapas de software libre de carreteras como ofrece la paacutegina del ministerio de
fomento) Los maacutergenes del visor cuando este arranca limitan con el aacuterea que
abarca la Comunidad Valenciana pudiendo hacer zoom sobre el mismo como
ocurre con el resto de visores mencionados hasta el momento
Como ya se ha comentado brevemente existen una serie de objetos de
buacutesqueda sobre los que deseamos obtener informacioacuten y que explicareacute a
continuacioacuten a modo de glosario para que el lector se familiarice con ellos y
entienda su significado de aquiacute en adelante ya que hablaremos de ellos a
menudo Cabe distinguir por tanto los siguientes objetos de intereacutes
Municipios indica aquellos teacuterminos jurisdiccionales regidos por un
ayuntamiento La localizacioacuten del municipio se podraacute realizar de dos
maneras como se ha indicado anteriormente Bien por seleccioacuten del ratoacuten
sobre el mapa bien mediante un formulario atendiendo a la provincia y a
los municipios pertenecientes a la provincia seleccionada
Establecimientos esto es los comercios que se extienden por la provincia
de Castelloacuten Son ejemplos de establecimiento las panaderiacuteas bolseriacuteas
gasolineras bazares bareshellip
Comercios de Innovacioacuten se refiere a los comercios que se extienden en
las regiones de Valencia y Alicante
Concentraciones Comerciales se entiende asiacute a los hipermercados
centros comerciales grandes almacenes y mercados municipales que se
extienden a lo largo de la provincia de Castelloacuten
Caacutemaras de Comercio de las provincias de Castelloacuten Valencia y Alicante
Atlas Comercial de la Comunidad Valenciana ndash Especificaciones de la Interfaz
12
Antenas Locales creadas por la Caacutemara de Comercio como servicios de
ayuda para PYMES tambieacuten extendidas a lo largo de Castelloacuten Valencia y
Alicante
Servicio WMS (Web Map Service) se trata de un estaacutendar internacional
que permite la generacioacuten de mapas de datos espaciales a partir de
informacioacuten geograacutefica en un archivo de imagen digital
Servicios WFS (Web Feature Service) es otro estaacutendar que permite
interactuar con los mapas generados por el servicio WMS mediante
informacioacuten vectorial
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
13
3 Solucioacuten del problema
Antes de profundizar en la solucioacuten al problema es conveniente
comentar brevemente queacute herramientas se han utilizado para el desarrollo de
este proyecto En primer lugar conviene sentildealar que todo el material empleado
en el desarrollo de esta aplicacioacuten es gratuito ya que se trata de herramientas
Open Source
El desarrollo del proyecto se ha realizado sobre el entorno de desarrollo
integrado Eclipse (httpwwweclipseorg) Dado que se trata de un visor web
el desarrollo del visor se ha realizado fundamentalmente en javascript
hacieacutendose uso de dos APIs de JavaScript como son OpenLayers
(httpopenlayersorg) adecuada para el manejo de mapas en navegadores
web y ExtJS (httpwwwsenchacom) que facilita el desarrollo de aplicaciones
interactivas usando AJAX y DHTML El coacutedigo que se ha realizado pese a
estar desarrollado en un lenguaje deacutebilmente tipado como es JavaScript se ha
realizado lo maacutes orientado a objetos posible haciendo uso de estas libreriacuteas
Dada la funcionalidad del visor que comparte ademaacutes algunas funciones
con otros visores como el SIGEO ya mencionado se ha desarrollado cada
funcionalidad en una extensioacuten que se antildeada al nuacutecleo de la aplicacioacuten donde
se cargan las libreriacuteas del manejo de mapas y del desarrollo de interfaces
Como resultado queda una aplicacioacuten modular y ampliable sin apenas realizar
modificaciones soacutelo hay que indicar al nuacutecleo que se ha antildeadido la nueva
extensioacuten
Para la obtencioacuten graacutefica de los mapas es necesario realizar consultas a
MapServer o a Geoserver La necesidad de utilizar ambos radica en que
obtendremos las capas WMS de MapServer mientras que las capas WFS nos
las proporcionaraacute Geoserver
La impresioacuten de plantillas a formato pdf compuesta por el mapa
mostrado por el visor con su respectiva leyenda se ha realizado en Java
mientras que los detalles del formato de impresioacuten se hicieron mediante
JasperReports
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
14
La herramienta del servicio de administracioacuten desde el que se puede
generar nuevos mapas asiacute como nuevas capas o bien modificar las capas y
los mapas ya existentes (el nombre la leyenda o el icono entre otras) fue
creada en Dojo que es un framework que permite crear aplicaciones web con
Ajax Para este proyecto soacutelo ha sido necesario modificar el nombre de los
diferentes objetos asiacute como realizar algunos cambios sobre las hojas de estilo
(css) ya que se ha reutilizado la misma herramienta de administracioacuten que
IVER Tecnologiacuteas creoacute para realizar la administracioacuten del SIGEO reutilizando
asiacute el coacutedigo
En la siguiente figura se observa la solucioacuten empleada al problema de la
obtencioacuten de las capas WMS y WFS mencionado anteriormente Aplicado al
proyecto esta solucioacuten atiende al problema de localizar en el mapa los
diferentes establecimientos concentraciones comerciales caacutemaras de
comercio antenas locales y comercios de innovacioacuten almacenados en la base
de datos y que deben mostrarse con su icono correspondiente en el mapa
Figura 2 Obtencioacuten de datos y posicionamiento en el mapa
Como indica la figura es necesaria una base de datos donde almacenar
la informacioacuten de los diferentes objetos de buacutesqueda Como se necesita
ademaacutes una referencia geograacutefica no basta con una base de datos sencilla Es
necesario crear una base de datos espacial Para ello se hace uso de PostGIS
que es una extensioacuten espacial en coacutedigo abierto de PostgreSQL de modo que
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
15
dota a las bases de datos generadas con este motor de un soporte para
objetos geograacuteficos
Una explicacioacuten poco teacutecnica aunque uacutetil para indicar la diferencia entre
una capa WMS y una capa WFS seriacutea indicar que la capa WMS es la capa
que muestra la imagen del mapa y sobre ella se indican mediante capas WFS
los diferentes objetos sobre los que trabajar (establecimientos comercios etc)
como muestra la figura 2 Uno de los principales problemas que se presenta
cuando se trabaja en cartografiacutea digital se da cuando se trabaja con capas que
presentan diferentes proyecciones como sucede al trabajar conjuntamente con
proyecciones especiacuteficas como la EPSG900913 de GoogleMaps y
proyecciones EPSG4326 de WMS para OpenLayers Es necesario realizar una
re-proyeccioacuten para poder solapar las capas
Figura 3 Sobre la capa WMS se superponen las diferentes capas WFS para ello es necesario
que todas las capas esteacuten en la misma proyeccioacuten o en su defecto re proyectadas
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es
necesario definirlo como proyecciones Spherical Mercator debido a que utilizan
proyecciones de Mercator es decir consideran la tierra como una esfera en
lugar de hacerlo como si fuera un elipsoide 1
Debido a que utilizan proyecciones diferentes (GoogleMaps y Yahoo
utilizan proyecciones EPSG900913) es necesario ademaacutes realizar una re-
proyeccioacuten2 sobre estas capas Una vez re-proyectadas estas capas deben
antildeadirse al mapa
1 Veacutease un ejemplo de coacutemo ha sido generado en el Anexo C
2 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
16
31 Extensioacuten Atlas
Una vez definidas las capas WMS que debe cargar el mapa por defecto
el proyecto ATLAS antildeade ademaacutes algunas capas WFS nuevas que son las
correspondientes a los diferentes objetos de buacutesqueda (establecimientos
comercios de innovacioacutenhellip) de los que ya se ha hablado Cada objeto de los
mencionados necesita su propia capa WFS3 (con proyeccioacuten EPSG23030) y
se superpondraacute como indicaba anteriormente sobre la capa WMS
Uno de los requisitos que se especificaron en el apartado anterior era el
de definir unos maacutergenes para el visor Entre ellos debiacutea haber un espacio
reservado donde ubicar los botones propios de navegacioacuten del visor ademaacutes
de las herramientas propias del proyecto ATLAS Para resolver estas
especificaciones se hizo uso de la libreriacutea ExtJS4 de la que ya se ha hablado
por su amplio abanico de posibilidades que facilitan el desarrollo de
aplicaciones interactivas para la web Basta con extender de alguacuten objeto
propio de la libreriacutea daacutendole valor a los atributos y definiendo las funciones que
deben ejecutarse cuando se produzca el evento que las dispare
En el Anexo D se muestra coacutemo se ha realizado la toolBar Para ello se
ha definido en Layoutjs (fichero que alberga todos los objetos que comportan
el layout definido en las especificaciones del apartado anterior) la componente
toolBar que haraacute referencia al panel toolBarjs y el panel toolBarPanel
Como se observa sobre el coacutedigo del anexo al inicializar los
componentes se hace referencia a la componente toolBar propia de la clase
Layout definidia como un ToolBar El coacutedigo de ToolBarjs se puede consultar
en el Anexo D
3 Veacutease Anexo D
4 Cuando realiceacute el proyecto la libreriacutea se llamaba ExtJS y la versioacuten empleada en este proyecto es la 30
Actualmente ya no se llama asiacute sino Sencha e incluye otros paquetes ademaacutes del ya mencionado que va por su versioacuten 321
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
17
El coacutedigo de Toolbarjs mostrado en el Anexo D sigue el esquema de
coacutemo se ha estructurado la definicioacuten de clases con ExtJS Asiacute la clase
ToolBar que se encuentra en LayoutBarToolBarjs extiende de ExtToolbar
Tras definir los atributos propios de dicha clase se definen los controles propios
del visor ya comentados arriba indicando el texto que apareceraacute en caso de
pasar el ratoacuten sobre dichos iconos y el icono con que apareceraacute Por uacuteltimo se
han definido los eventos de los controles previamente definidos
Todos estos controles que hacen referencia al Layout del visor web son
comunes a otros visores web es por ello que con el objetivo de optimizar el
coacutedigo se ha optado por incluirlos en del nuacutecleo de la aplicacioacuten al que hace
referencia el indexhtml del visor Dicho nuacutecleo estaacute compuesto ademaacutes por
las libreriacuteas javascript de OpenLayers y ExtJS de las que ya se ha hablado
Asiacute al arrancar la aplicacioacuten se cargan los scripts que realizan la carga de
mapas (GoogleMaps y YahooMaps) el nuacutecleo de la aplicacioacuten y se le antildeaden
las extensiones5
Como se ha indicado la aplicacioacuten es modular de forma que si se
quiere realizar una ampliacioacuten sobre el visor web creado bastaraacute con crear una
nueva extensioacuten y antildeadirla al nuacutecleo de la aplicacioacuten para la ejecucioacuten Se
consigue ademaacutes una buena utilizacioacuten del coacutedigo ya que se pueden reutilizar
las extensiones ya creadas en otros visores web (como ya se ha comentado la
extensioacuten de administracioacuten es una reutilizacioacuten de coacutedigo realizaacutendose tan
solo ligeras modificaciones sobre la extensioacuten)
A continuacioacuten voy se va a explicar la extensioacuten maacutes importante del
visor y que ocupa gran parte de la importancia del proyecto que no es otra
que la extensioacuten propia del ATLAS y que como se ha comentado en el punto
anterior contiene la mayoriacutea de las especificaciones propias del visor web
5 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
18
311 ExtSearchAtlasLocalejs
Aunque no pretende ser este documento un tutorial de programacioacuten de
la libreriacutea ExtJS se intentoacute seguir un estilo de programacioacuten organizada a
criterio del desarrollador estructurando los nuevos ficheros en diferentes
directorios atendiendo a su funcionalidad Asiacute desde el fichero principal
(ExtSearchAtlasjs) se invoca a los botones de buacutesqueda de establecimientos
informacioacuten y agrupaciones comerciales en el momento de la creacioacuten de dicha
clase Asimismo se indica queacute ventanas deben mostrarse cuando se produzca
el evento que las dispare De este modo las ventanas fueron almacenadas en
un directorio Window mientras que los paneles contenidos dentro de las
mismas se definieron en el directorio Panel La funcionalidad Informacioacuten es un
control es por ello que se creoacute InfoBBoxControljs y se almacena en el directorio
Control El contenido de esta extensioacuten se muestra por completo en un anexo
al final de la memoria
El primer archivo a comentar es Localejs Dado que el usuario puede
escoger el idioma de la aplicacioacuten (puede estar en espantildeol o en valenciano) ha
de haber un fichero diferente para cada idioma estos son lang-esjs para
espantildeol y lang-vajs para valenciano Localejs antildeade el fichero con el lenguaje
seleccionado
312 ExtSearchAtlasConfigjs
Ya se ha comentado anteriormente la relacioacuten entre las capas WFS
superpuestas sobre la capa WMS este fichero contiene las diferentes capas
WFS con proyeccioacuten EPSG23030 que contiene la aplicacioacuten El coacutedigo de
coacutemo se introducen estas capas se ha mostrado anteriormente cuando se ha
explicado el fichero Configjs
313 ExtSearchAtlasjs
Se trata del fichero principal de la extensioacuten ATLAS Sobre eacutel se definen
los diferentes botones controles y ventanas que comportan la funcionalidad
descrita en las especificaciones de la aplicacioacuten El evento createComponents
LocaleaddScript(ideolide-extensionsExtSearchAtlaslibLocalelang-+LocalegetLang()+js)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
19
define los diferentes botones y las funciones que se ejecutaraacuten cuando se
produzca un evento El evento onCreate antildeade los componentes definidos
anteriormente al layout de la aplicacioacuten Los componentes creados se
comentan a continuacioacuten
314 InfoBBox
Al pulsarlo activa el control InfoBBox (puesto que es un control no se
desactiva tras seleccionar el aacuterea de buacutesqueda con el ratoacuten) Presenta el icono
Tras seleccionar la capa se debe arrastrar el ratoacuten indicando un aacuterea de
buacutesqueda sobre el mapa Tras realizar la buacutesqueda de objetos en el aacuterea
marcada se analizaraacute la capa seleccionada Si existe alguacuten elemento de dicha
capa en el aacuterea marcada por el ratoacuten abriraacute una nueva ventana done
apareceraacuten los resultados como muestra la siguiente figura
Figura 4 Resultado de la buacutesqueda de InfoBBox
Como se observa en la figura y tras seleccionar un objeto de la lista
ofrece una vista de Street View la localizacioacuten en el mapa del mismo o el cierre
de la ventana
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
20
315 aSearchButton
Al pulsar sobre el icono abre una ventana con tres pestantildeas como
muestra la siguiente figura
Figura 5 Pestantildeas buacutesqueda de concentraciones comerciales
Se puede rellenar cualquiera de las tres (puede rellenarse maacutes de una
pestantildea para realizar la buacutesqueda) y en el momento en que se edita alguacuten
campo la pestantildea que se estaacute modificando se vuelve de color verde y en
negrita En caso de que el foco pase a otra pestantildea deja de ponerse en
negrita Al realizar la buacutesqueda (pulsando en Buscar) muestra una ventana con
los resultados como aparece en la siguiente figura Como el resultado de la
buacutesqueda puede devolver muchas concentraciones en el gridPanel se le antildeadioacute
un PagingGrid que permitese cargar de una forma raacutepida los resultados
pudiendo cambiar de paacutegina para mostrar nuevas soluciones
Figura 6 Resultados de la buacutesqueda de concentraciones comerciales
Como en el caso anterior se puede localizar mostrar una vista de la
calle con Street View o mostrar una ficha de la concentracioacuten comercial
seleccionada El resultado obtenido es como el que muestra la siguiente figura
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
21
Figura 7 Ficha de una concentracioacuten comercial
316 eSearchButton
Similar al anterior realiza la buacutesqueda de establecimientos Al pulsar
sobre el icono abre una ventana con cuatro pestantildeas como muestra la
siguiente figura
Figura 8 Pestantildeas buacutesqueda de establecimientos
Como sucediacutea con la buacutesqueda de concentraciones comerciales en el
momento en que se edita alguacuten campo la pestantildea que se estaacute modificando se
vuelve de color verde La ficha que muestra es similar tambieacuten a la que
mostraba si se realizaba la buacutesqueda de concentraciones comerciales
317 helpButton
Esta funcionalidad muestra un botoacuten sobre el toolBarPanel Al pulsarlo
muestra en una nueva ventana un documento en formato html Este documento
es un manual de ayuda al usuario detallado que explica punto por punto el
funcionamiento del visor web Su contenido se adjunta en el apeacutendice al final
del documento
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
22
32 Extensioacuten WMS
Esta extensioacuten permite obtener informacioacuten WMS sobre una capa
seleccionada previamente Al pulsar sobre el botoacuten InfoWMS se activa un
control (ExtWMSControlInfojs) que comprueba en primer lugar si la capa
seleccionada es consultable y visible Como se ha indicado anteriormente se
debe seleccionar la capa en primer lugar A continuacioacuten se debe indicar sobre
el mapa el punto en el que se desea obtener la informacioacuten El control debe
realizar una comprobacioacuten sobre la capa seleccionada y soacutelo mostraraacute el
contenido de la capa seleccionada si la capa es visible y es consultable6
Si la capa seleccionada es visible y consultable se abriraacute una
ventana que mostraraacute un gridPanel con las features que mostraraacute como
resultado Las features a mostrar se cargan mediante la funcioacuten
getColumnModel
33 Impresioacuten
Como se expuso en la definicioacuten del problema el visor web debe permitir
la impresioacuten de un mapa y su leyenda Esta extensioacuten comporta por una
extensioacuten en el lado cliente donde se realiza la solicitud de la impresioacuten del
mapa que se muestra en el visor y otra extensioacuten en el lado servidor donde se
procesa la orden generaacutendose el mapa y su leyenda Como resultado muestra
el documento generado en una nueva pestantildea del navegador en un formato
pdf La parte cliente7 se generoacute en JavaScript mientras que la parte servidor se
realizoacute en Java (servlet en java)
En el anexo se puede observar a continuacioacuten de la parte referida al
lado cliente la referida al lado servidor Para llevar a cabo la impresioacuten se
realizoacute una plantilla de impresioacuten mediante el software de coacutedigo abierto
Jasper Report En eacutel se definieron los maacutergenes de dicha plantilla el tamantildeo
de la leyenda y del mapa (se puede ver coacutemo se han descrito en el anexo) Se
6 Veacutease Anexo D
7 Veacutease Anexo D
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
23
generoacute un XML de la plantilla y se definieron los maacutergenes y propiedades del
jasper creado en el fichero wsPrintWMCProperties
Como se indicaba anteriomente desde el lado servidor se realiza la
composicioacuten de los elementos que generan el mapa y la leyenda Con el
objetivo de aclarar la funcionalidad de impresioacuten en el lado cliente la siguiente
figura muestra un diagrama que a modo de glosario muestra las diferentes
clases que se utilizaron para realizar la impresioacuten del documento
Figura 9 Glosario de ayuda para comprender el funcionamiento de la impresioacuten de imaacutegenes en el lado
servidor
En la figura anterior se observan una serie de clases que comentareacute
brevemente
- ReportRequest realiza una peticioacuten de los atributos al servlet mediante
el meacutetodo getParameter
- ReportBean obtiene y almacena los atributos del jasper
- ReportProperties obtiene y almacena las propiedades del jasper
ReportMgr
+workDirPath+imagesDirPath+idSession+wmsMgr+wmcMgr
+PrepareFixedAttrForBean(ReportRequest reportRequest)+GetReportBean(ReportRequest reportRequest)+PrepareFixedAttrsForBean(ReportRequest rR ReportBean rB)+GetReportProperties(ReportRequest rR)+PrepareImagesForBean(ReportProperties rP ReportBean rB)+PrepareBeanFromProperties(ReportProperties rP ReportBean rB)+PrepareBaseBean(ReportBean rB)
ReportProperties
+templateJasper+bannerName+mapImageWidth+mapImageHeight+littleMapImageWidth+littleMapImageHeight+disposicion+imagesMap
WMCMgr
+parseWMC(String xmlWMC)
ReportBean
+id+template+title+description+scale+size+fecha+imagesDirPath+imagesMap
ReportRequest
+project+title+description+mapWMC+scale+size+image
+ReportRequest(HttpServletRequest request)
WMSMgr
+createMapImage(ViewContextType mC int w int h String p String iS boolean oM)+createLegendImage(ViewContextType mC int w int h String p String iS boolean d)+getWMSLayer(ViewContextType mC int w int h boolean oM)+getServerURL(String contextURL)+getBBoxString(BoundingBox bbox)+getMaxExtentString(MaxExtentType mE)+aplicaRelacionAspectoManteniendoBBox(BoundingBoxType bbox double anO double alO double anD double alD)+aplicaRelacionAspectoManteniendoEscala(BoundingBoxType bbox double anO double alO double anD double alD)+getImageFromURL(String layerURL)+getImageFromURL(String layerURL)+getURLQueryLegends(ViewContextType vC)+getURLQueryLegend(LayerType layer)+getFirstLegendURL(LayerType layer)+writeImage(BufferedImage im String iP)+reprojectMaxExtent(MaxExtentType mE String src String dst)+reprojectBoundingBox(BoundingBoxType bbox String src String dst)
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
24
A primera vista puede parecer innecesario crear dos clases para realizar
las peticiones de la plantilla ya que tanto las propiedades definidas en
ReportProperties como las obtenidas en ReportBean son propiedades definidas
en la plantilla del jasper ReportProperties solicita la informacioacuten que contiene el
fichero wsPrintWMCproperties del que ya se ha hablado De esta forma resulta
un coacutedigo maacutes organizado
La plantilla se rellenaraacute una vez obtenidos el valor para cada uno de los
atributos mediante peticiones al servlet con ReportRequest para ello se
rellenaraacuten los atributos definidos en el ReportBean mediante el meacutetodo
prepareFixedAttrForBean Sobre la imagen del mapa debe realizarse un parseo8
a un servicio WMC (WebMapContext) para crear la imagen posteriormente
sobre el ReportBean Para evitar que la imagen del mapa asiacute como la de la
leyenda salga pixelada se optoacute por solicitar el ancho y el alto de la imagen del
mapa y de la leyenda al doble para encajarlos posteriormente en el espacio
definido para ambos Todas estas funcionalidades se describen en ReportMgr
como puede observarse en el anexo
La impresioacuten del mapa se realiza desde la clase PrintWMCServlet que se
muestra en el anexo Al crearse este objeto se define doacutende estaacuten
almacenadas las imaacutegenes del mapa y de la leyenda asiacute como de la plantilla
creada con jasperReports El servlet aceptaraacute peticiones POST rellenando la
plantilla en funcioacuten de si se trata de una imagen o de texto invocando al objeto
PrinterMgr o creando la imagen del mapa a partir del meacutetodo createMapImage
34 StreetView
En la definicioacuten del problema se indicaba que el visor debe mostrar en
una nueva ventana una imagen de la direccioacuten indicada con el ratoacuten sobre el
mapa mostrando una vista a pie de calle facilitando ademaacutes unas
herramientas que permitieran maximizar la ventana ampliar o reducir el zoom
de la imagen mostrada y moverse por la calle con solo arrastrar el ratoacuten sobre
la imagen Esta herramienta no es otra que la de Street View de GoogleMaps
8 Parseo (proviene de parcing en ingleacutes) se llama al proceso de anaacutelisis de siacutembolos con el fin de
determinar su estructura gramatical respecto a una gramaacutetica dada
Atlas Comercial de la Comunidad Valenciana ndash Solucioacuten del problema
25
y ofrecida por Google para desarrolladores web Mediante
GStreetViewPanorama podemos generar una vista Street View pasaacutendole como
paraacutemetro una posicioacuten definida por la longitud y latitud (lonlat) o lo que es lo
mismo la coordenada en el eje de la X y en el eje de la Y (se puede obtener
informacioacuten acerca de este control en httpcodegooglecomintles-
ESapismapsdocumentationjavascriptv2referencehtmlGStreetviewPanora
ma)
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
26
35 Trabajo futuro Antes de hablar de posibles extensiones que completen auacuten maacutes el visor
web es conveniente hacer especial hincapieacute en algo que ya se ha comentado
a lo largo de la memoria Este visor se caracteriza por ser modular y
extensible y por tanto la ampliacioacuten del mismo mediante nuevas herramientas
y funcionalidades resulta tremendamente sencilla ya que no supone realizar
cambios sobre el coacutedigo ya generado
351 Mapa localizador
Atendiendo a las funcionalidades que ofrece la libreriacutea OpenLayers
resulta interesante la opcioacuten de crear una nueva extensioacuten que permita
localizar la regioacuten del mapa sobre la que se ha hecho zoom bien de forma
manual para que el usuario trabaje con un aacuterea menor y pueda por tanto verla
maacutes grande en el espacio que ofrece el visor para el mapa bien porque se ha
pulsado al botoacuten localizar y la propia aplicacioacuten maximiza el zoom hasta el
punto que el usuario pueda perder la orientacioacuten del lugar sobre el mapa
regional
En el Mapa localizador se muestra la situacioacuten de la cartografiacutea que se
estaacute consultando en cada momento El aacuterea del localizador es interactiva con el
aacuterea del mapa de modo que pulsando y arrastrando sobre el localizador se
genera un aacuterea rectangular esta aacuterea rectangular se emplearaacute para hacer
zoom sobre el aacuterea del mapa
Figura 10 Extensioacuten de Localizador El recuadro en Rojo indica el aacuterea del mapa que estamos
consultando
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
27
352 Sobre StreetView
Ya se ha comentado que StreetView de GoogleMaps se puede
incorporar (como se incorporoacute al proyecto ATLAS) a proyectos de desarrollo
web mediante GStreetViewPanorama Google proporciona una herramienta que
permite ademaacutes visualizar en queacute zonas estaacute activo el StreetView mediante
GStreetViewOverlay La siguiente figura muestra un ejemplo de esta opcioacuten
sobre el mapa se visualizan las calles que tienen activo el StreetView quedan
subrayadas con liacuteneas azules que resaltan sobre el mapa
Figura 11 Las calles resaltadas tienen activado StreetView
353 Otros mapas
Como se dijo al principio de la memoria se podiacutea insertar otros mapas
como capas WMS uno de los posibles mapas comerciales y cada vez maacutes
extendido es el que ofrece Microsoft con BingMaps Cuando se realizoacute este
proyecto Bing todaviacutea ofreciacutea una versioacuten Beta Actualmente OpenLayers ya
ofrece la posibilidad de trabajar con Bing como capa base cartograacutefica La
siguiente figura muestra un ejemplo de coacutemo quedariacutea un mapa con capa base
Bing
Figura 12 OpenLayers ofrece la posibilidad de trabajar con capa base Bing de Microsoft
Atlas Comercial de la Comunidad Valenciana ndash Trabajo futuro
28
354 Dibujar sobre el mapa
Por uacuteltimo OpenLayers ofrece las herramientas para dibujar sobre el
mapa puntos liacuteneas aacutereas o poliacutegonos con las posibilidades que ello conlleva
Asiacute por ejemplo el usuario podriacutea realizar las buacutesquedas que ofrece el botoacuten de
informacioacuten del que ya se ha hablado sin necesidad de trazar un aacuterea
rectangular pudiendo calcular los establecimientos caacutemaras etc trazando una
figura poligonal o una liacutenea Un ejemplo de dibujo sobre el mapa viene ofrecido
por OpenLayers en esta direccioacuten httpopenlayersorgdevexamplesdraw-
featurehtml
Estas posibles extensiones son soacutelo algunas de las que ofrecen
OpenLayers y Google Se podriacutean mejorar algunas funcionalidades con la
libreriacutea ExtJS como por ejemplo la mejora que se explicoacute en el Grid facilitando
la carga de datos de una forma raacutepida cuando eacutesta es muy pesada Estas
mejoras se incluiriacutean dentro de las mejoras ofrecidas por las actualizaciones
indicar que OpenLayers es una libreriacutea compatible con los estaacutendares XHtml
pero que existen algunos problemas propios de la libreriacutea referentes a la
visualizacioacuten de algunas ventanas en Internet Explorer no ocurriendo lo mismo
cuando se carga la web en otro navegador como por ejemplo Mozilla Firefox
Esto no son propiamente errores ya que si se consulta en la documentacioacuten de
OpenLayers ya informan que esos defectos visuales se producen al cargar la
paacutegina en Internet Explorer
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
29
4 Relacioacuten con la industria
El Atlas Comercial de la Comunidad Valenciana es como se ha
explicado anteriormente un visor web que permite realizar buacutesquedas sobre
los diferentes comercios y caacutemaras de comercio entre otras asiacute como obtener
informacioacuten de los diferentes municipios de la comunidad permitiendo al
usuario que explote estas caracteriacutesticas sobre el mapa que desee bien mapas
de caraacutecter geneacuterico como los de Yahoo o Google o bien mapas de carreteras
(PNOA) El usuario al que va por tanto destinado es fundamentalmente
aquellos que tengan intereacutes en realizar este tipo de buacutesquedas pero dada su
flexibilidad a la hora de insertar nuevos mapas y nuevas capas de buacutesqueda
podriacutean perfectamente realizarse buacutesquedas de calles o de carreteras de la
Comunidad Valenciana por cualquier usuario
La principal ventaja que presenta este visor radica en primer lugar que
se trata de coacutedigo libre realizado con software OpenSource y por tanto tiene
un coste cero esto es completamente gratuito Tambieacuten cabe destacar otra
caracteriacutestica propia de este visor que no es otra que su modularidad
caracteriacutestica de la que ya se ha hablado pero que es importante remarcar ya
que dota al visor de la capacidad ser ampliado sin maacutes complicaciones que
crear una nueva extensioacuten completamente funcional y antildeadirla al visor sin que
presente mayores problemas Finalmente conviene sentildealar una caracteriacutestica
que si bien el usuario no tiene por queacute apreciarla dota al coacutedigo y al desarrollo
de software de una buena calidad ya que como se ha comentado en esta
memoria su funcionalidad es apreciable desde cualquier navegador que
cumpla los estaacutendares XHTML
La principal funcioacuten del visor es la buacutesqueda y localizacioacuten sobre el
mapa de los diferentes establecimientos comerciales de la Comunidad
Valenciana pertenecientes a la Caacutemara de Comercio Esta funcionalidad puede
ser uacutetil para el anaacutelisis industrial realizando estudios de crecimiento comercial
en las diferentes aacutereas de la comunidad asiacute como medicioacuten de riesgos que
ayuden en la toma de decisiones de futuros emplazamientos teniendo en
Atlas Comercial de la Comunidad Valenciana ndash Relacioacuten con la industria
30
cuenta no soacutelo la demografiacutea de los municipios que pueblan el aacuterea de estudio
sino tambieacuten la comunicacioacuten de carreteras que eacutestos puedan tener
Para posibles empresarios que quieran establecer un nuevo comercio en
un aacuterea de la Comunidad puede ser muy praacutectico realizar un estudio mediante
una buacutesqueda sobre el mapa indicando el tipo de establecimiento y la
ubicacioacuten De esta forma puede consultar la existencia de negocios similares
en dicha aacuterea
La funcionalidad StreetView dota al visor de una caracteriacutestica ventajosa
ya que facilita al usuario que desee realizar la buacutesqueda de un comercio la
posibilidad de explorar la calle donde estaacute ubicado el objeto de buacutesqueda
Otras posibilidades que ofrece un visor de estas caracteriacutesticas podriacutea
por ser muy uacutetil ademaacutes en las paacuteginas webs de aquellos ayuntamientos de la
Comunidad Valenciana que quieran potenciar el sector turiacutestico en su comarca
Ya que no soacutelo ofrece informacioacuten de carreteras que faciliten al usuario el
acceso al municipio sin tener que recurrir a otras webs sino que puede aportar
informacioacuten del propio municipio asiacute como de los municipios colindantes En
este marco podriacutea ampliarse el contenido de informacioacuten mediante una nueva
ficha como la de los establecimientos esta vez enfocada al turismo
Atlas Comercial de la Comunidad Valenciana ndash Conclusiones
31
5 Conclusiones
La realizacioacuten de un proyecto de estas caracteriacutesticas exige en primer
lugar iniciarse en los conocimientos de las libreriacuteas OpenLayers y ExtJS ya
que se han utilizado a lo largo de todo el proyecto (atendiendo a los manuales
de ExtJS muchas funcionalidades se podriacutean haber resuelto invocando una
funcioacuten en lugar de crear una clase y antildeadirle meacutetodos otras veces en cambio
se ha creado una clase de OpenLayers para mantener un coacutedigo lo maacutes
orientado a objetos posible ya que JavaScript no es un lenguaje orientado a
objetos) Ademaacutes de ampliar los conocimientos de algunas herramientas y
lenguajes de programacioacuten incluiacutedos en el programa universitario como es
Java o la realizacioacuten de plantillas con JasperReports El resultado del proyecto
es un coacutedigo bien organizado modular y extensible hasta el punto que algunas
funcionalidades del visor se trata de coacutedigo reutilizado de otros visores web y
algunas funcionalidades propias de este visor se han introducido en el nuacutecleo
de la aplicacioacuten dado que es una funcionalidad muy comuacuten que puede ser
compartida con otros visores web
El resultado final de este proyecto se puede probar en la siguiente URL
httpatlasiveres
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
32
6 Anexo A
Manual de usuario
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
33
Indice
1 Introduccioacuten 32
2 Cliente WMS 34
3 Administracioacuten 42
4 Exportar e importar 43
5 Acceso desde otros clientes WMS 44
6 Street View 45
7 Informacioacuten 45
8 Buacutesqueda comercial 49
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
34
1 Introduccioacuten
En este manual se describen las funcionalidades y el uso de la
herramienta WEB creada para la consulta del Atlas Comercial de la Comunidad
Valenciana En esta ayuda se facilita una visioacuten global del empleo del cliente
WEB a nivel de usuario y administrador consultando el servicio baacutesico de
mapas WMS
El cliente WEB permite consultar la cartografiacutea de los servicios WMS
implantados por otras instituciones y de otros servicios WMS existentes y
puacuteblicos en Internet
2 Cliente WMS
El servicio de cartografiacutea WMS (Web Map Services o Servicio de Mapas
en la Red) de la IDE se consulta mediante el cliente WEB creado a tal efecto
Se trata de un cliente WEB que se caracteriza por ser modular y extensible por
tanto seraacute posible la inclusioacuten de nuevas herramientas y funcionalidades en el
futuro
Este cliente de consulta no necesita instalacioacuten es consultable desde un
navegador de Internet como Internet Explorer o Mozilla Firefox El navegador
debe tener habilitado el uso de javascript
21 Caracteriacutesticas
El cliente WEB dispone de aacutereas perfectamente diferenciadas donde se
agrupa la funcionalidad
Barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa
Aacuterea del mapa donde se representa la cartografiacutea mediante imaacutegenes
Tabla de contenidos muestra la coleccioacuten de capas con las que se
puede interactuar y las leyendas de las mismas
Barra de estado zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del
mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
35
Aacuterea de administracioacuten
Figura 13 Vista del visor web Atlas Comercial de la Comunidad Valenciana
22 Barra de herramientas
La barra de herramientas almacena las herramientas interactivas con el
aacuterea del mapa Existen herramientas que interactuacutean con el aacuterea de la
cartografiacutea deben estar activas inicialmente para poder emplearlas Soacutelo es
posible mantener una herramienta como activa
Figura 14 Barra de herramientas
Herramientas de navegacioacuten Son las herramientas tiacutepicas de
navegacioacuten por la cartografiacutea que permiten ampliar reducir y
desplazarse por la misma
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
36
Zoom Completo Herramienta que realiza un zoom a la
totalidad de la cartografiacutea
Maacutes zoom Herramienta que permite ampliar la
imagen y aumentar su detalle Esta
herramienta funciona mediante un clic
o mediante la creacioacuten de una
ventana
Menos zoom Herramienta que permite disminuir la
imagen
Vista anterior Permite volver a extensiones de zoom
anteriores
Vista siguiente Permite volver a extensiones de zoom
posteriores
Desplazar el mapa Permite el desplazamiento por la
cartografiacutea mediante acciones de
pulsar y arrastrar
Herramientas de medida Son las herramientas de medidas de
distancias y aacutereas sobre la cartografiacutea
Distancia Permite medir distancias sobre la
imagen del mapa
Aacuterea Permite medir aacutereas sobre la imagen
del mapa
Herramientas
Limpiar el mapa Borra los elementos graacuteficos de la
vista
Recargar el mapa Actualiza las capas en la vista
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
37
Administracioacuten Permite acceder al aacuterea de registro
Herramienta de informacioacuten
Informacioacuten WMS Facilita la informacioacuten de los campos
de la capa seleccionada
Informacioacuten Obtiene informacioacuten de la capa
seleccionada
Exportar e Importar ficheros
Exportar e Importar Exporta e Importa en diferentes
formatos
Servicio WMS
Servicio WMS Exporta e Importa en diferentes
formatos
Centrado en
coordenadas
Centra el mapa en las coordenadas
introducidas
Street View Selecciona un punto en el mapa para
obtener una vista panoraacutemica
Herramientas de Buacutesqueda Comercial
Buacutesqueda de
establecimientos
Permite realizar buacutesqueda de
establecimientos indicando un
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
38
criterio de buacutesqueda
Buacutesqueda de
concentraciones
comerciales
Permite realizar buacutesqueda de
concentraciones comerciales
introduciendo un criterio de
buacutesqueda
Herramienta de seleccioacuten de idioma
Seleccioacuten de idioma Permite cambiar el idioma de la
Web puede seleccionar entre
Espantildeol o Valenciagrave
23 Aacuterea del mapa
El aacuterea del mapa es donde se representa la cartografiacutea mediante
imaacutegenes Dispone de una herramienta con zonas sensibles para
desplazamientos laterales En la esquina superior izquierda se encuentra un
punto que permite realizar desplazamientos por el mapa y modificar la escala
de la vista
Figura 15 Aacuterea del mapa con la herramienta que permite realizar desplazamientos y zoom sobre el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
39
24 Tabla de contenidos
La tabla de contenidos muestra como una pila la coleccioacuten de capas con
las que se puede interactuar y las leyendas de las mismas La tabla de
contenidos puede modificarse mediante herramientas que permiten alterar el
orden de visualizacioacuten
Figura 16 Tabla de Contenidos con detalle de las diferentes capas
Puede cambiar el orden de visualizacioacuten de las capas para ello haga
click sobre la capa deseada y arraacutestrela hasta la posicioacuten deseada
La tabla de contenidos tambieacuten muestra informacioacuten acerca de los
elementos que contiene con una representacioacuten de la leyenda empleada La
tabla de contenidos permite mostrar u ocultar la leyenda de una capa pulsando
el siacutembolo que precede al nombre de la misma Si desea mostrar u ocultar una
capa active o desactive el checkbox de la misma
Figura 17 Detalle de la leyenda en la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
40
Tambieacuten es posible cambiar el valor de opacidad de una capa hacer
zoom a la capa eliminarla crear un grupo para gestionar varias capas a la vez
y renombrar la capa Para ello pulse la capa deseada y acceda al menuacute
contextual pulsando el botoacuten secundario del ratoacuten
Figura 18 Edicioacuten de una capa
Desde la Tabla de Contenidos tambieacuten puede modificar los Mapas que
desea visualizar en la vista para ello seleccione en el panel desplegable
Mapas
Figura 19 Seleccioacuten de mapas desde la tabla de contenidos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
41
Tambieacuten puede seleccionar municipios desde el panel desplegable
Municipios
Figura 20 Seleccioacuten de municipios
Indique la provincia y el municipio que desee y aparece seleccionado en
la vista como se muestra en la siguiente imagen
Figura 21 Aacuterea del mapa seleccionado
25 Barra de estado
La barra de estado es la zona inferior de la aplicacioacuten donde se muestra
informacioacuten al usuario como coordenadas del puntero y la escala del mapa
La herramienta de escala muestra la escala a la que se visualizan los
datos y permite designar una escala de visualizacioacuten especificada por el
usuario Tambieacuten se mostraraacute la distancia yo aacuterea calculada
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
42
Figura 22 Barra de estado
3 Administracioacuten
Mediante el icono de la barra de herramientas Administracioacuten puede
acceder al aacuterea de registro Desde aquiacute puede controlar y gestionar la
cartografiacutea que se desea publicar en el visor de mapas Se abre una ventana
para realizar el registro
Figura 23 Aacuterea de registro al panel de Administracioacuten
Al acceder como administrador se abre una nueva pestantildea como se
muestra a continuacioacuten
Figura 24 Detalle de la nueva pestantildea que se abre al acceder como administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
43
4 Exportar e importar
Desde la herramienta Exportar e importar puede exportar a Web
Map Context (WMC) que es un estaacutendar de OGC
(httpwwwopengeoespatialorg) a imagen o bien a pdf El fichero con capas
WMC puede reproducirse sobre cualquier plataforma que soporte WMC El
resultado es un archivo XML con formato especiacutefico y extensioacuten cml
Figura 25 Menuacute ofrecido por la funcionalidad ExportarImportar
Si selecciona la opcioacuten Exportar a imagen se abre una nueva ventana
como se indica
Figura 26 Resultado de Exportar una imagen
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
44
Si Exporta a pdf se genera el pdf en una nueva ventana esta muestra
una imagen como la que se indicaba en el Anexo 61 desde donde puede
guardar una copia del documento imprimirlo etc
5 Acceso desde otros clientes WMS
Otra de las herramientas del Visor es la posibilidad de antildeadir capas de
otros clientes WMS concretamente del Catastro y PNOA y combinarlas con
las ya existentes
La herramienta para acceder a este servicio es Servicio WMS
pulsaacutendola aparece la siguiente ventana
Figura 27 Servicio WMS
Una vez seleccionado el servicio conecta con el servidor y por uacuteltimo
basta escoger que capa deseamos antildeadir
Figura 28 Detalle de conexioacuten a un servidor WMS para escoger capas
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
45
La capa seleccionada se antildeade a la vista
6 Street View
Mediante la herramienta Street View se abre una ventana donde el
usuario puede visualizar una imagen de 360ordm para ello seleccione esta utilidad
y pulse con el ratoacuten un punto en la vista
Figura 29 Visualizacioacuten de una calle con Street View
La ventana con la vista panoraacutemica puede hacerla grande e incluso
hacer la pantalla completa pulsando el icono situado en la parte superior
derecha Tambieacuten puede desplazarse por la vista panoraacutemica con el ratoacuten o
bien con las teclas A y D para girar a izquierda y derecha respectivamente W y
S para desplazarse verticalmente (arriba y abajo) y con las flechas del teclado
7 Informacioacuten
La herramienta informacioacuten permite obtener informacioacuten de la capa
seleccionada Para utilizar la herramienta de informacioacuten primero seleccione
con el ratoacuten en la tabla de contenidos una capa a continuacioacuten pulse sobre la
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
46
herramienta y luego de nuevo sobre el mapa en el elemento de la capa del que
se desea obtener la informacioacuten
Figura 30 Debe seleccionarse la capa en primer lugar
La Barra de estado muestra cual es la capa que tiene seleccionada
pulse la herramienta de informacioacuten y haga un rectaacutengulo en la vista
Figura 31 Seleccioacuten de aacuterea arrastrando el ratoacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
47
Aparece entonces una ventana con los establecimientos encontrados
Figura 32 Ventana con el resultado de la buacutesqueda de establecimientos
Desde esta ventana puede ver en una nueva ventana la vista
panoraacutemica para ello seleccione el establecimiento deseado y pulse el botoacuten
Street View
Figura 33 Ventana de Street View lanzada desde la ventana resultados de la buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
48
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra a
continuacioacuten
Figura 34 Detalle de ficha de establecimientos
Si selecciona la capa Municipios en la Tabla de Contenidos al activar la
herramienta informacioacuten y pulsar sobre un municipio aparece la siguiente
ventana con la informacioacuten correspondiente al municipio seleccionado
Figura 35 Informacioacuten de municipios
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
49
Seleccione el municipio y pulse sobre el botoacuten Ficha apareceraacute la
infomacioacuten correspondiente al municipio como se muestra en la siguiente
imagen
Figura 36 Ficha de municipios
8 Buacutesqueda comercial
A partir de los iconos de la Barra de herramientas Buacutesqueda comercial
puede realizar buacutesquedas de establecimientos y concentraciones comerciales
Figura 37 Iconos de establecimientos y concentraciones comerciales respectivamente
Si selecciona la herramienta Buacutesqueda de establecimientos se abre la siguiente ventana para que realice la buacutesqueda
Figura 38 Ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
50
Rellene los datos que desee para realizar la buacutesqueda y pulse Buscar
Figura 39 Cuando se edita un panel la pestantildea se pone en verde y negrita Si se cambia de pestantildea se mantendraacute en verde si el campo editado no se ha borrado
Aparece la siguiente ventana con el resultado
Figura 40 Resultados de la buacutesqueda de establecimientos
Desde aquiacute puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el icono Street View
Figura 41 Detalle de Street View desde la ventana de buacutesqueda de establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
51
Si selecciona el botoacuten Localizar situa la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha del establecimiento como se muestra en la
siguiente imagen
Figura 42 Ficha de un establecimiento
Mediante la herramienta Buacutesqueda de concentraciones comerciales
se abre la siguiente ventana para que realice la buacutesqueda
Figura 43 Ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
52
Rellene los datos que desee para realizar la buacutesqueda de la
concentracioacuten comercial y pulse Buscar
Figura 44 Edicioacuten de un panel de buacutesqueda de concentraciones comerciales
Aparece la siguiente ventana con el resultado de la buacutesqueda
Figura 45 Resultado de la buacutesqueda de concentraciones comerciales
Desde esta ventana puede acceder a Street View para ello seleccione el
establecimiento que desee y pulse el botoacuten Street View
Figura 46 Detalle de Street View desde la ventana de buacutesqueda de concentraciones comerciales
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
53
Si selecciona el botoacuten Localizar situacutea la vista en el establecimiento y si
pulsa el botoacuten Ficha se abre la ficha de la concentracioacuten comercial como se
muestra a continuacioacuten
Figura 47 Ficha de una concentracioacuten comercial
Atlas Comercial de la Comunidad Valenciana ndash Anexo A Manual de usuario
54
Detalle de Impresioacuten
Este es el resultado que se obtiene al realizar una impresioacuten
Figura 48 Detalle de impresioacuten en formato pdf
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
55
7 Anexo B
Manual de administracioacuten
Atlas Comercial
de la
Comunidad Valenciana
Arturo Argileacutes Casasuacutes
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
56
Indice
1 Introduccioacuten 57
2 Convenciones de uso de la aplicacioacuten 58
3 Instalacioacuten de la aplicacioacuten 59
4 Configuracioacuten de la aplicacioacuten 63
7 Acceso a la aplicacioacuten 65
8 Gestioacuten de servicios 66
9 Carga de datos 72
10 Gestioacuten de capas 74
11 Edicioacuten de siacutembolos 85
12 Etiquetacioacuten 92
13 Gestioacuten de usuarios 95
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
57
1 Introduccioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales del Atlas Comercial de la Comunidad Valenciana permite controlar y
gestionar que cartografiacutea se desea publicar en el visor de mapas
Figura 49 Detalle del visor web Atlas Comercial de la Comunidad Valenciana
Para la publicacioacuten de los datos cartograacuteficos se utiliza el servicio de
publicacioacuten de mapas estaacutendar WMS (Web Map Server) que permite la
visualizacioacuten y consulta de informacioacuten geograacutefica en remoto produciendo
mapas de datos espaciales referidos de forma dinaacutemica a partir de informacioacuten
geograacutefica
Para la publicacioacuten de estos servicios se dispone en el servidor de un
servidor de mapas (Mapserver) y de su cartografiacutea
Los datos cartograacuteficos (ficheros shape) se han almacenado de forma
unificada en una carpeta del servidor de cartografiacutea
(Nombre de la unidad)atlasortofoto
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
58
La aplicacioacuten dispone de un menuacute lateral situado en la parte izquierda
que permite al usuario acceder a las distintas opciones una parte central en la
que se muestran los datos de la aplicacioacuten y en la que se muestra en la parte
superior derecha el identificador del usuario que accede a la aplicacioacuten
Figura 50 Vista del panel de Administracioacuten
2 Convenciones de uso de la aplicacioacuten
La aplicacioacuten dispone de una serie de funcionalidades que son comunes
en todas las pantallas para facilitar su funcionamiento a los usuarios
Los datos que ha de rellenar el usuario de forma obligatoria se marcan
con el siguiente siacutembolo junto a la etiqueta que identifica al dato
Figura 51 Con un siacutembolo se indica que es obligatorio rellenar el campo
En los listados haciendo clic en la cabecera de las columnas se puede
reordenar por la columna seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
59
Figura 52 Detalle de coacutemo se puede reordenar una columna
Al cancelar una pantalla si se han modificado los datos se muestra una
pantalla de confirmacioacuten
Figura 53 Esta ventana se muestra si se cancela una pantalla habieacutendose modificado los datos
Al eliminar alguacuten dato se muestra una pantalla de confirmacioacuten
Figura 54 Ventana de confirmacioacuten al eliminar un dato
3 Instalacioacuten de la aplicacioacuten
31 Requisitos previos
Para el correcto funcionamiento de la aplicacioacuten de administracioacuten se
requiere tener instaladas las siguientes aplicaciones
Java 15
Tomcat 55
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
60
32 Proceso de instalacioacuten
Para realizar la instalacioacuten de la aplicacioacuten hay que desplegar el fichero
IDEAtlas_Adminwar en el servidor de aplicaciones Tomcat
Para instalarla se pueden utilizar dos meacutetodos instalacioacuten manual o con
la aplicacioacuten Manager de Tomcat A continuacioacuten se detallan los pasos a
realizar en ambos meacutetodos
33 Instalacioacuten manual
Copiar en el directorio de aplicaciones de Tomcat (CArchivos de
programaApache Software FoundationTomcat 55webapps)
Reiniciar el servidor de aplicaciones para desplegar la aplicacioacuten
ejecutando la aplicacioacuten Inicio-gtProgramas-gtApache Tomcat 55-gtMonitor
Tomcat
Figura 55 Ventana de propiedades de Apache Tomcat
Instalacioacuten con la aplicacioacuten Manager de Tomcat Tomcat dispone de
una aplicacioacuten que permite gestionar las aplicaciones Para acceder a la
aplicacioacuten hay que introducir en un navegador web la siguiente URL
httpSERVIDORPUERTOmanagerhtml
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
61
Al acceder a la aplicacioacuten se muestra una pantalla solicitando los datos
del usuario
Figura 56 Ventana de identificacioacuten para acceder al Manager de Tomcat
Los usuarios autorizados a acceder a esta aplicacioacuten se han de
configurar en el fichero CArchivos de programaApache Software
FoundationTomcat 55conftomcat-usersxml Este fichero tiene el siguiente
formato
ltxml version=10 encoding=utf-8gt
lttomcat-usersgt
ltrole rolename=tomcatgt
ltrole rolename=role1gt
ltrole rolename=managergt
ltrole rolename=admingt
ltuser username=tomcat password=aaaaaaa roles=tomcatgt
ltuser username=both password=bbbbbbb roles=tomcatrole1gt
ltuser username=admin password=ccccccc roles=adminmanagergt
lttomcat-usersgt
Si se quiere crear un usuario que pueda acceder a la aplicacioacuten de
Manager se ha de crear una entrada de user con los datos del usuario
especificando su nombre y clave y que tenga el rol de manager
ltuser username=usuario password=clave roles=managergt
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
62
Una vez validado el usuario se muestra la siguiente pantalla
Figura 57 Gestor de aplicaciones Tomcat
En la que se pueden gestionar las aplicaciones instaladas en el servidor
de aplicaciones e instalar (desplegar) nuevas aplicaciones
Para desplegar la aplicacioacuten se ha de seleccionar el paquete con la
aplicacioacuten IDEAdmin_Atlaswar en la seccioacuten de Archivo WAR a desplegar con
el botoacuten Examinar
Figura 58 Debe seleccionarse el paquete con la aplicacioacuten IDEAdmin_Atlaswar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
63
El fichero IDEAdmin_Atlaswar lo tiene que tener el usuario en su
equipo seleccionaacutendolo del directorio en el que lo haya copiado Una vez
seleccionado al pulsar el botoacuten Desplegar la aplicacioacuten se instala en el
servidor de aplicaciones apareciendo en el listado de aplicaciones
Desde el listado de aplicaciones el usuario puede realizar las siguientes
acciones con cada aplicacioacuten
Parar la aplicacioacuten
Recargar la aplicacioacuten para actualizar la aplicacioacuten si se han modificado
ficheros
Replegar desinstalar la aplicacioacuten
Al desplegarse la aplicacioacuten se crea un subdirectorio IDEAdmin con la
aplicacioacuten en DIR_INSTALACION_TOMCATwebapps pudiendo acceder a ella
con un navegador web con la siguiente URL
httpSERVIDORPUERTOIDEAdmin
en la que hay que sustituir SERVIDOR y PUERTO por el nombre del equipo y
el puerto en el que estaacute instalada la aplicacioacuten
Antes de acceder a la aplicacioacuten hay que configurarla como se describe
en los siguientes apartados
4 Configuracioacuten de la aplicacioacuten
La aplicacioacuten requiere que se configure la conexioacuten con la base de datos
y direccioacuten del servidor de mapas que se utiliza para ubicar los puntos de
intereacutes en el plano
35 Configurar la conexioacuten a la base de datos
La configuracioacuten de la conexioacuten de la base de datos se almacena en el
fichero jdbcproperties que estaacute en el directorio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
64
DIR_INSTALACION_TOMCATwebappsIDEAdminWEB-INF
En el fichero hay que configurar el nombre de la base de datos y los
datos del usuario de la base de datos a utilizar para realizar la conexioacuten
jdbcurl=jdbcpostgresqllocalhostPUERTONOMBRE_BASE_DATOS
jdbcusername=NOMBRE_USUARIO_BASE_DATOS
jdbcpassword=CLAVE_USUARIO_BASE_DATOS
dataloaderpath=CArchivos de programaApache Software FoundationTomcat
55webappsIDEAdmin_Atlascarga_datos
dataloaderperiod=600
dataloadershp2pgsql=CArchivos de
programaPostgreSQL82binshp2pgsqlexe
El atributo dataloaderpath hace referencia al directorio del disco en el
que se van a almacenar temporalmente las tareas de carga de datos El
atributo dataloaderperiod indica los segundos que van entre ejecucioacuten de las
tareas de carga pendientes La propiedad dataloadershp2pgsql indica la ruta de
disco donde estaacute instalada la aplicacioacuten shp2pgsql
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
36 Configurar ruta visor
La configuracioacuten del servidor de mapas se establece en el fichero
applicationContextxml que estaacute en el directorio
DIR_INSTALACION_TOMCATwebappsIDEAdmin_AtlasWEB-INF
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
65
En el fichero hay que configurar el directorio en el que estaacute instalados los
ficheros de configuracioacuten del visor de mapas el servidor de mapas en la
siguiente seccioacuten
ltbean id=servletManagerTarget class=orgiverideadmindomainmanagerServletManagerImplgt
ltproperty name=mapBuilderWritePathgt
ltvaluegtDIR_INSTALACION_TOMCATwebappsIDEAtlasdatacontextltvaluegt
ltpropertygt
ltproperty name=mapBuilderReadPathgt
ltvaluegtdatacontextltvaluegt
ltpropertygt
ltbeangt
El atributo mapBuilderWritePath indica el directorio de disco donde se
guardan los context de MapBuilder mientras que la propiedad
mapBuilderReadPath indica la parte del path de la propiedad anterior que se
encuentra dentro del visor (IDEAtlas)
Una vez modificado el fichero hay que actualizar la aplicacioacuten bien
reiniciando Tomcat o recargando la aplicacioacuten con el Manager de Tomcat
como se ha explicado en el apartado de instalacioacuten de la aplicacioacuten
7 Acceso a la aplicacioacuten
La aplicacioacuten de administracioacuten de la Infraestructura de Datos
Espaciales funciona en un navegador web (Internet Explorer 60+ Mozilla
Firefox 10+) Para acceder a ella se ha de introducir la siguiente URL
http SERVIDORPUERTO IDEAdminloginjsp
El usuario se ha de validar antes de poder acceder a la aplicacioacuten
introduciendo su nombre de usuario la clave de acceso y el servicio de mapas
que quiere gestionar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
66
Figura 59 Validacioacuten de usuario de acceso a la aplicacioacuten
Una vez validado el usuario se accede a la pantalla de configuracioacuten
general del servicio de mapas
Cada servicio dispone de un usuario administrador por defecto llamado
9 y con la clave Lo primero que ha de hacer cada usuario
administrador al entrar en la aplicacioacuten es modificar esta clave
Tambieacuten es posible entrar a la aplicacioacuten con el rol Administrador y este
es el uacutenico perfil que nos permite crear nuevos servicios El usuario por defecto
para este rol es con la clave Una vez dentro como administrador
podremos cambiar la contrasentildea
8 Gestioacuten de servicios
En este apartado definiremos las diferentes operaciones que podemos
realizar con los servicios de mapas tales como crear eliminar y modificar
81 Creacioacuten de servicios
Accederemos a la aplicacioacuten con el rol Administrador tal y como vemos
en la siguiente imagen
Figura 60 Validacioacuten de usuario de acceso a la aplicacioacuten como administrador
9 Confidencial En este documento estos datos no se han mostrado por motivos de seguridad
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
67
Nos encontraremos con un listado de los servicios ya creados
anteriormente a los que podemos acceder y modificar sus paraacutemetros
Tambieacuten podemos crear nuevos servicios gracias al botoacuten ldquoCrear serviciordquo
Figura 61 Listado de los servicios que ya han sido creados
Si creamos un nuevo servicio accederemos a la pantalla de
configuracioacuten donde se nos pediraacuten los datos que nos definen el nuevo
servicio de mapas
Figura 62 Detalle de creacioacuten de un nuevo servicio
Los datos que nos piden son los siguientes
Nombre interno nombre con el que se guarda el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
68
Nombre nombre que se muestra al usuario
Descripcioacuten breve descripcioacuten del servicio
Palabras clave palabras para la buacutesqueda del servicio
Proyeccioacuten cartografiacutea proyeccioacuten en la que se encuentra los datos
cartograacuteficos
Reproyeccioacuten proyeccioacuten en la que se representaraacute la cartografiacutea
Extent del mapa coordenadas cartograacuteficas de las esquinas inferior
izquierda y superior derecha de la zona que queremos representar
Una vez guardado el servicio nos apareceraacute en el listado visto
anteriormente
82 Eliminacioacuten de servicios
Esta opcioacuten soacutelo se encuentra disponible para el rol Administrador tal y
como ocurre con la creacioacuten de servicios Eliminaremos un servicio ya creado
con el botoacuten ldquoEliminarrdquo disponible en la opcioacuten de Configuracioacuten
Figura 63 Detalle de eliminacioacuten de un servicio
Una vez eliminado el servicio dejaraacute de aparecer en el listado de
servicios disponibles
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
69
83 Configuracioacuten de servicios
Al acceder a la opcioacuten de Configuracioacuten en el menuacute de la aplicacioacuten se
pueden configurar los datos del servicio de mapa Esta opcioacuten soacutelo estaacute
disponible para los usuarios de perfil administrador Tenemos cuatro pestantildeas
donde podemos definir diferentes elementos
Figura 64 Configuracioacuten de servicios
Los paraacutemetros a configurar en la pantalla de configuracioacuten del mapa
son los mismos que los listados para la creacioacuten de nuevos servicios excepto
por no estar disponible el campo de Nombre interno
Figura 65 Se pueden configurar todos los datos de un servicio excepto el nombre interno
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
70
Los paraacutemetros a configurar en la pantalla de configuracioacuten del servicio
son
URL Aplicacioacuten de publicacioacuten de mapas URL del servidor Tomcat del
servidor de cartografiacutea
URL Servidor de mapas URL del servidor MapServer del servidor de
cartografiacutea
Directorio de cartografiacutea lugar donde estaacuten los datos cartograacuteficos a
cargar (imaacutegenes shapes etc) en el servidor de cartografiacutea
Directorio de configuracioacuten de mapas lugar donde se guardaraacuten los
archivos de configuracioacuten de los mapas
Figura 66 Detalle de configuracioacuten de servicio
Los paraacutemetros a configurar en la pantalla de Informacioacuten de contacto
son diferentes datos e informacioacuten de la persona al cargo de la aplicacioacuten tales
como nombre cargo direccioacuten teleacutefono correo electroacutenico etc
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
71
Figura 67 Detalle de pantalla de conexioacuten de datos
Los paraacutemetros a configurar en la pantalla de conexioacuten de geodatos son
Tipo de conexioacuten tipo de conexioacuten con la base de geodatos
Servidor direccioacuten IP del servidor donde se encuentra la base de datos
Base de datos nombre de la base de datos
Esquema esquema donde se encuentran las tablas con los datos
Puerto puerto a traveacutes del que se hace la conexioacuten
Usuario nombre del usuario de la base de datos
Password contrasentildea del usuario de la base de datos
84 Publicacioacuten del servicio de mapas
Al modificar la configuracioacuten del servicio o de las capas que componen el
servicio la opcioacuten de Publicar servicio permite actualizar la configuracioacuten en el
servidor de mapas para reflejar los cambios realizados en el visor de mapas
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
72
Figura 68 Configuracioacuten del mapa
9 Carga de datos
Con esta herramienta podremos cargar nuevos datos en la base de
datos Esta herramienta permite cargar datos en formato shape y en formato
csv Tenemos esta herramienta en el menuacute de la aplicacioacuten en la parte
superior izquierda Una vez dentro tendremos que crear una nueva tarea
Figura 69 Carga de datos
Lo que nos llevaraacute a la siguiente pantalla donde deberemos definir los
paraacutemetros de la tarea de carga de datos que queremos realizar
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
73
Figura 70Debemos definir los paraacutemetros de la tarea de carga que queremos realizar
Los paraacutemetros que deberemos rellenar seraacuten los siguientes
Fichero fichero que queremos cargar En el caso del formato shape
tendremos que comprimir los ficheros necesarios (dbf shp y shx) en un
fichero zip que es el que indicaremos en la herramienta En el caso del
formato csv esto no es necesario
Tipo de datos tipo de fichero a cargar (shapecsv)
Capa de destino elegimos si queremos crear una tabla nueva (indicando
el nombre) o bien lo cargamos en una existente Hay que tener en
cuenta que si elegimos una tabla existente la carga de los datos
eliminaraacute los datos anteriormente recogidos en la tabla
Descripcioacuten breve descripcioacuten de los datos
Una vez creada la tarea se nos apareceraacute listada asiacute como su descripcioacuten
su estado y el resultado obtenido al finalizar el proceso
Figura 71 La tarea creada aparece listada con nombre descripcioacuten y estado
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
74
Se deberaacute tener en cuenta que en el caso de la carga de datos shape no
tendraacuten que aparecer en el nombre de los campos caracteres no anglosajones
tales como entildees y tildes
10 Gestioacuten de capas
Al acceder a la opcioacuten de Capas en el menuacute de la aplicacioacuten se muestra
un listado con las capas del servicio en el que nos encontramos
Figura 72 Listado con las capas del servicio
Desde este listado el usuario puede crear nuevas capas y modificar las
propiedades de las capas que tiene cargadas el servicio
101 Crear una capa
Para crear una capa el usuario ha de seleccionar desde el listado de
capas el tipo de capa (Vectorial Raster Tile WMS) y hacer clic en el botoacuten de
Crear capa
Figura 73 Seleccioacuten del tipo de capa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
75
1011 Capa vectorial
Al crear una capa en formato vectorial (shape) se muestra la siguiente
pantalla
Figura 74 Detalle de creacioacuten de una capa vectorial
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Tabla tabla donde estaacuten los geodatos a cargar Este listado mostraraacute las
tablas de la base de datos a la que esta conectada el servicio en el que
nos encontramos
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
76
Consultable si queremos o no que sean consultables sus datos
alfanumeacutericos Hay que tener en cuenta que se podraacuten consultar todos
los campos que contenga la capa
El raster debe encontrarse en el directorio de cartografiacutea que tiene definido
el servicio en el que nos encontramos Una vez creada la capa el usuario
puede acceder con el botoacuten a la configuracioacuten de la simbologiacutea de visualizacioacuten
de la capa
1012 Capa raster
Al crear una capa en formato raster se muestra la siguiente pantalla
Figura 75 Detalle de creacioacuten de una capa raster
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero imagen que queremos visualizar Se muestra un listado con
las capas en formato raster de las que se en el servidor de
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
77
cartografiacutea para que el usuario seleccione la capa a visualizar en el
mapa
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Visible inicialmente si se desea que se vea la capa al cargar el
servicio
1013 Capa WMS
Al crear una capa conectando con otro servicio WMS se muestra la
siguiente pantalla
Figura 76 Detalle de creacioacuten de una capa conectando con otro servicio WMS
Donde tendremos que escribir el servidor de cartografiacutea al que nos
queremos conectar En este caso se trato del servidor del Catastro
Una vez conectado con el servidor de cartografiacutea externo nos apareceraacute
un listado con las capas disponibles que podremos ir seleccionando una por
una o con las herramientas baacutesicas de ldquoSeleccionar todasrdquo o ldquoDeseleccionar
todasrdquo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
78
Figura 77 Listado de capas disponibles en el servidor al que nos hemos conectado
En el listado de capas nos apareceraacuten todas las que hayamos
seleccionado del servicio WMS
1014 Capa Tile
Un Tile es un mosaico de imaacutegenes que toma como referencia un shape
en el que se indica mediante poliacutegonos la posicioacuten de cada una de las
imaacutegenes siendo uno de los campos de la tabla asociada la direccioacuten en la que
se encuentra la imagen que va asociada a ese poliacutegono
El shape debe encontrarse en el directorio de cartografiacutea que tiene
definido el servicio en el que nos encontramos
Al crear una capa de tipo Tile se muestra la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
79
Figura 78 Detalle de creacioacuten de una capa Tile
En esta pantalla el usuario ha de rellenar los datos asociados a la capa
Nombre nombre de la capa
Descripcioacuten breve descripcioacuten de los datos
Palabras clave palabras clave para la buacutesqueda de la capa
Fichero fichero shape de definicioacuten del tile Se muestra un listado con
las capas en formato shape de las que se en el servidor de cartografiacutea
para que el usuario seleccione la capa a visualizar en el mapa
Campo del tile campo del shape que indica la direccioacuten de la imagen a
cargar
Posicioacuten posicioacuten en la leyenda Por defecto se colocaraacute la uacuteltima
Proyeccioacuten proyeccioacuten en la que se encuentra la cartografiacutea
Escala miacutenima de visualizacioacuten por debajo de esta escala no se
visualizaraacute el mapa
Escala maacutexima de visualizacioacuten por encima de esta escala no se
visualizaraacute el mapa
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
80
Visible inicialmente si se desea que se vea la capa al cargar el servicio
102 Modificar una capa
Esta opcioacuten es anaacuteloga a la pantalla para crear una capa permitiendo
Editar los datos de la configuracioacuten de la capa
Acceder a la leyenda de la capa
Eliminar la capa para que no se visualice en el servicio de mapas
Esto soacutelo quita la capa del servicio de mapas no borrando los
ficheros de cartografiacutea asociados
La uacutenica diferencia la encontramos en las capas de tipo WMS que nos
encontramos con una pantalla como la que sigue
Figura 79 Capa de tipo WMS
En la que soacutelo podemos modificar la descripcioacuten la posicioacuten en la
leyenda y si queremos que se visualice al cargar el mapa o no
103 Eliminar una capa
Una vez creadas las capas si accedemos a ellas para modificar sus
caracteriacutesticas tendremos habilitado un botoacuten que nos permitiraacute su eliminacioacuten
tal y como vemos en la siguiente pantalla
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
81
Figura 80 Eliminacioacuten de una capa
104 Leyenda de una capa
Esta opcioacuten permite modificar las propiedades de visualizacioacuten de la
capa Una vez creada la capa se nos habilita el botoacuten de leyenda con lo que
podremos acceder a las herramientas de edicioacuten de la misma
Figura 81 Modificacioacuten de las propiedades de visualizacioacuten de una capa permitiendo el acceso
a las propiedades de una leyenda
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
82
1041 Tipos de leyenda
Una vez en el editor de leyendas podemos seleccionar tres tipo de
leyenda simple de clasificacioacuten y por intervalos Para aplicar cualquier cambio
en el tipo de leyenda deberemos activar el botoacuten ldquoRegenerarrdquo
Leyenda simple En este tipo de leyenda se visualizan todos los
elementos de una capa con la misma simbologiacutea
Figura 82 Tipo de leyenda Simple
A continuacioacuten podemos ver como se representariacutea un tema de
poliacutegonos con este tipo de leyenda
Figura 83 Ejemplo de leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
83
Leyenda de clasificacioacuten En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos de la capa
Figura 84 Leyenda de clasificacioacuten
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Se
generaraacuten tantos siacutembolos como valores diferentas tenga dicho campo
Esquema de color colores que se van a usar en la clasificacioacuten Estos
colores se podraacute modificar posteriormente en la edicioacuten de siacutembolos
A continuacioacuten podemos ver como se representariacutea un tema de poliacutegonos
con este tipo de leyenda
Figura 85 Ejemplo de leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
84
Leyenda de intervalos En este tipo de leyendas se visualizan los
elementos de una capa con distintos siacutembolos en funcioacuten de los valores
de alguno de los campos agrupado en intervalos Dicho campo tiene que
ser numeacuterico
Figura 86 Ejemplo de leyenda de intervalos
El usuario debe seleccionar
Campo de clasificacioacuten campo por el que se clasificaraacute la capa Solo se
listaraacuten los campos numeacutericos
Nuacutemero de intervalos cantidad de intervalos que se generaraacuten en la
clasificacioacuten
Colores inicial y final componentes RGB de los colores inicial y final
entre los que se generaraacuten de forma lineal los tonos para los intervalos
Estos colores se podraacute modificar posteriormente en la edicioacuten de
siacutembolos
La visualizacioacuten de los elementos en el mapa seriacutea igual que en el caso de
la leyenda de clasificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
85
11 Edicioacuten de siacutembolos
Una vez elegida el tipo de leyenda en la parte inferior de la pantalla se
nos ha generado los siacutembolos que vamos a emplear en la representacioacuten de la
cartografiacutea
Figura 87 Edicioacuten de siacutembolos para visualizar los elementos de una capa
En esta zona se muestran los siacutembolos utilizados para visualizar los
elementos de la capa con sus caracteriacutesticas baacutesicas
Nombre nombre del siacutembolo que apareceraacute en la leyenda
Posicioacuten posicioacuten que ocupara el siacutembolo en la leyenda
Filtro valores a los que aplicaraacute el siacutembolo
Color color del siacutembolo
Siacutembolo nombre del siacutembolo especial que se aplicaraacute a dichos
elementos que puede venir de una imagen de una fuente etc
Haciendo clic en el botoacuten de cada siacutembolo se accede a la pantalla de
sus propiedades
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
86
En esta pantalla el usuario ha de rellenar los datos asociados al siacutembolo
utilizado para representar los elementos de una capa vectorial Estos datos
pueden cambiar ligeramente seguacuten el tipo de leyenda que hayamos
seleccionado asiacute como el tipo de capa que estemos tratando si es de puntos
de liacuteneas o de poliacutegonos
A continuacioacuten podemos ver una pantalla para la edicioacuten de elementos
poligonales en una leyenda de clasificacioacuten
Figura 88 Edicioacuten de elementos poligonales en una leyenda de clasificacioacuten
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color de primer plano que se le aplicaraacute al poliacutegono
Color de contorno color de contorno que se le aplicaraacute al poliacutegono
Color de fondo color de fondo que se le aplicaraacute al poliacutegono
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
87
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea de contorno
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos lineales con una
leyenda de intervalos
Figura 89 Elementos lineales con una leyenda de intervalos
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
88
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Valores del intervalo valores miacutenimo y maacuteximo a los que se le aplicara
este siacutembolo Solo disponible en leyenda por intervalos
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Grosor contorno grosor de la liacutenea
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Seguidamente podemos ver un ejemplo para elementos puntuales con una
leyenda simple
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
89
Figura 90 Elementos puntuales con una leyenda simple
Los atributos que podemos definir son los siguientes
Nombre nombre que apareceraacute en la leyenda
Descripcioacuten breve descripcioacuten del siacutembolo
Filtro valores que se aplicaraacuten para la aplicacioacuten del siacutembolo Activo
para leyendas simples y de clasificacioacuten
Posicioacuten en la leyenda posicioacuten que ocuparaacute el siacutembolo en la leyenda
Color color que se le aplicaraacute al elemento
Color de contorno color de contorno que se le aplicaraacute al siacutembolo
Transparente hace transparente el elemento
Plantilla de siacutembolo siacutembolo que se aplicaraacute para pintar el elemento La
aplicacioacuten dispone de una libreriacutea de siacutembolos complejos para poder
representar adecuadamente los elementos de las capas Este campo
permite especificar la plantilla a utilizar
Es importante resaltar que algunas de estas plantillas ya tienen predefinidas
algunas propiedades como los colores utilizados
Tamantildeo punto tamantildeo que se aplicaraacute al siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
90
Escala miacutenima escala miacutenima por debajo de la cual no se visualizaraacute el
elemento
Escala maacutexima escala maacutexima por encima de la cual no se visualizaraacute
el elemento
Para seleccionar los colores el usuario puede escribir el coacutedigo RGB del
color o hacer clic en el recuadro que representa el color mostraacutendose una
ventana flotante que permite seleccionar graacuteficamente el color La ventana
flotante consta de dos pestantildeas
Figura 91 Tabla de colores para que el administrador escoja el color de la leyenda
En la primera pestantildea (RGB) se muestra una lista de colores
predefinidos
Para seleccionar un color se ha hacer clic sobre alguno de los colores
cerraacutendose la ventana flotante y rellenando las casillas del color
correspondiente con el RGB del color seleccionado
En la segunda pestantildea (Color slider) el usuario puede especificar el color
moviendo las barras de desplazamiento que hay en cada uno de los valores del
RGB o escribiendo el valor en la casilla de texto correspondiente
Figura 92 Seleccioacuten de colores moviendo las barras de desplazamiento
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
91
Una vez especificado el color se ha de pulsar sobre la zona coloreada
para cerrar la ventana flotante rellenaacutendose las casillas RGB correspondientes
111 Crear siacutembolos
No soacutelo podemos modificar siacutembolos ya creados sino que tambieacuten
podemos antildeadir nuevos a una leyenda gracias al botoacuten ldquoCrear siacutembolordquo
Figura 93 Se pueden crear nuevos siacutembolos ademaacutes de modificar los ya existentes
Tendremos que rellenar una pantalla con todos los datos necesarios
para la correcta definicioacuten del siacutembolo que dependeraacute de si se trata de un
siacutembolo puntual lineal o poligonal Del mismo modo los campos a rellenar
tambieacuten diferiraacuten si se trata de una leyenda simple de clasificacioacuten o por
intervalos Las pantallas seraacuten las mismas que hemos vistos en el apartado
anterior de edicioacuten de simbologiacutea
Una vez creado el siacutembolo nuevo apareceraacute listado junto al resto
112 Eliminar siacutembolos
La eliminacioacuten de siacutembolos resulta muy sencilla ya que en la pantalla de
edicioacuten de siacutembolos disponemos de un botoacuten que nos elimina el siacutembolo que
estamos editando
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
92
Figura 94 Eliminar siacutembolo
Una vez eliminado el siacutembolo ya no apareceraacute listado en la leyenda
12 Etiquetacioacuten
Esta opcioacuten permite asignar etiquetas textuales a los elementos de una
capa siguiendo los elementos de un campo del tema
En primer lugar dentro de la pantalla de seleccioacuten de tipo de leyenda en
la pestantildea de etiquetacioacuten tendremos que seleccionar unas caracteriacutesticas
generales de la etiquetacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
93
Figura 95 Etiquetacioacuten de una leyenda
Los datos que se pueden rellenar son los siguientes
Campo de etiquetacioacuten campo con el que se generaraacute los textos de la
etiquetas
Campo altura si existiera campo donde se indica el tamantildeo de las
etiquetas
Campo aacutengulo si existiera campo que indica el aacutengulo de las etiquetas
Estos datos son generales para todas las etiquetas que queremos que
aparezcan en el mapa pero tenemos que definirlas de una forma maacutes
concreta Para ello al igual que ocurriacutea en la seleccioacuten del tipo de leyenda en
la edicioacuten de siacutembolos disponemos de una pestantildea de etiquetacioacuten donde
podremos definir las etiquetas que se aplicaraacuten a los elementos representados
con dicho siacutembolo
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
94
Figura 96 Etiquetacioacuten de un siacutembolo
Los campos que podemos modificar en esta pantalla son los siguientes
Etiquetacioacuten si se aplicaraacuten etiquetas a un siacutembolo (sino)
Fuente fuente con la que se escribiraacuten los textos
Color de texto color que se aplicaraacute a los textos
Posicioacuten posicioacuten del texto con respecto del elemento
Tamantildeo tamantildeo del texto
Aacutengulo aacutengulo a aplicar al texto (puede ser automaacutetico)
Desplazamiento desplazamiento en piacutexeles que se aplica a l texto con
respecto al elemento
Mostrar etiq Parciales se muestran las etiquetas parciales en los liacutemites
del visor (sino)
Permitir superposicioacuten permite la superposicioacuten de textos cuando estos
no caben sin superponerse (sino)
Halo liacutenea que bordea un texto de un piacutexel de ancho
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
95
13 Gestioacuten de usuarios
Esta opcioacuten permite en cada uno de los servicios gestionar los usuarios
que pueden acceder a la aplicacioacuten La herramienta de gestioacuten de usuarios la
encontramos en la parte superior izquierda de la aplicacioacuten en el menuacute
Figura 97 Gestioacuten de usuarios
Cada usuario soacutelo puede acceder al servicio al que estaacute autorizado Se
contemplan dos perfiles de usuario distintos
Perfil editor Los usuarios con este perfil pueden gestionar la
configuracioacuten de capas disponibles asiacute como la configuracioacuten del mapa
en el visor de mapas A continuacioacuten podemos ver la pantalla del perfil
editor donde en la zona del menuacute de la aplicacioacuten tenemos
deshabilitadas las opciones de gestioacuten de usuarios asiacute como la pestantildea
de configuracioacuten del servicio
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
96
Figura 98 Pantalla del perfil editor
Perfil administrador Los usuarios con este perfil ademaacutes de las
funcionalidades del perfil editor pueden gestionar la configuracioacuten del
servicio de mapas y los usuarios de la aplicacioacuten para ese servicio
Figura 99 Pantalla para perfil administrador
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
97
Al acceder a la opcioacuten Usuarios se muestra un listado con los usuarios
que pueden gestionar los datos del servicio Esta opcioacuten soacutelo estaacute disponible
para los usuarios de perfil administrador
Figura 100 Listado de los usuarios que pueden gestionar los datos del servicio
En la que podemos ver el nombre del usuario una breve descripcioacuten y
su rol Desde este listado el usuario puede crear nuevos usuarios y modificar
las propiedades de los usuarios del servicio
131 Crear un usuario
Para crear un nuevo usuario deberemos activar el botoacuten
correspondiente
Figura 101 Creacioacuten de un nuevo usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
98
Con lo que se nos mostraraacute la siguiente pantalla
Figura 102 Datos a rellenar para el nuevo usuario
En la que tendremos que rellenar los siguientes campos
Login nombre de acceso
Clave clave de acceso
Confirmar clave confirmacioacuten de la clave
Nombre nombre del usuario
Apellidos apellidos del usuario
Descripcioacuten breve descripcioacuten del usuario
Tipo de usuario si es editor o si es administrador
132 Modificacioacuten de un usuario
Esta pantalla es anaacuteloga a la de creacioacuten de usuarios permitiendo
modificar los datos de un usuario (excepto el login) y eliminarlo del sistema
(excepto el usuario admin)
133 Eliminacioacuten de un usuario
Para eliminar un usuario soacutelo tendremos que activar el botoacuten eliminar en
la pantalla de modificacioacuten
Atlas Comercial de la Comunidad Valenciana ndash Anexo B Manual de administracioacuten
99
Figura 103 Eliminacioacuten de un usuario existente
134 Cambiar la clave
Esta opcioacuten permite al usuario modificar su clave de acceso a la
aplicacioacuten Para ello ha de introducir la nueva clave por duplicado para evitar
posibles errores a la hora de introducir la clave
Figura 104 Modificacioacuten de la clave de un usuario
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
100
8 Anexo C
Solucioacuten a la proyeccioacuten Spherical Mercator
Para utilizar los mapas de Google y Yahoo como base cartograacutefica es necesario definirlo como proyecciones Spherical Mercator
Property sphericalMercatorOptions
Array(Object) Paraacutemetros por defecto para la creacioacuten de un mapa
SphericalMercator
sphericalMercatorOptions
projection new OpenLayersProjection(EPSG900913)
displayProjection new
OpenLayersProjection(EPSG900913)
units m
numZoomLevels 18
maxResolution 1565430339
controls [
new OpenLayersControlKeyboardDefaults()
new OpenLayersControlMouseDefaults(
performedDragfalse)
new OpenLayersControlScaleLine()
]
Method loadSphericalMercatorLayers
Antildeade capas SphericalMercator a un mapa
Parameters
map - OpenLayersMap Mapa al que antildeadir las capas
loadSphericalMercatorLayers function(map)
layers =
create Google Mercator layers
ghyb new OpenLayersLayerGoogle(Google
Hybridtype G_HYBRID_MAP sphericalMercator
true numZoomLevels 21)
gmap new OpenLayersLayerGoogle(Google
StreetssphericalMercator true numZoomLevels
20)
gsat new OpenLayersLayerGoogle(Google
Satellitetype G_SATELLITE_MAP
sphericalMercator true numZoomLevels 22)
create Yahoo layer
yahoo new OpenLayersLayerYahoo(Yahoo
StreetsphericalMercator true)
yahoosat new OpenLayersLayerYahoo(Yahoo
Satellitetype YAHOO_MAP_SAT
sphericalMercator true)
yahoohyb new OpenLayersLayerYahoo(Yahoo
Hybridtype YAHOO_MAP_HYB sphericalMercator
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
101
Re-proyeccioacuten sobre las capas Spherical Mercator
Debido a que Google y Yahoo utilizan proyecciones diferentes es necesario realizar una re-proyeccioacuten sobre estas capas antes de antildeadirlas al mapa
hellip
Reproyecta el maxExtent de las capas
for(var i=0 iltlayerslength i++)
var layer = layers[i]
layermaxExtenttransform(new OpenLayersProjection(projection)
new OpenLayersProjection(projCode))
thisregisterMapEvents(map)
mapaddLayers(layers)
if(oldBoundsMap = null)
Reproyecta el bounds antiguo
oldBoundsMaptransform(new
OpenLayersProjection(oldProjectionMap) new
OpenLayersProjection(projCode))
mapsetCenter(oldBoundsMapgetCenterLonLat()
mapgetZoomForExtent(oldBoundsMap true))
else
Reproyecta el bounds del contexto
boundstransform(new OpenLayersProjection(projection) new
OpenLayersProjection(projCode))
mapsetCenter(boundsgetCenterLonLat()
mapgetZoomForExtent(bounds true))
hellip
Extensioacuten Atlas ndash Configjs
ConfigExtSearchAtlasWFSLayers =
COMERCIOS_INNOVACION new IDEOLLayerWFS(Comercios
innovacioacutenhttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType comercios_innovacion
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CAMARAS_COMERCIO new IDEOLLayerWFS(Caacutemaras de
Comerciohttpservicesiveresgeoserverwfs
editable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
102
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType camaras
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ANTENAS_LOCALES new IDEOLLayerWFS(Antenas
Localeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType antenas
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
ESTABLECIMIENTOS new IDEOLLayerWFS(Establecimientos
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType establecimientos
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
CONCENTRACIONES_COMERCIALES new
IDEOLLayerWFS(Concentraciones
comercialeshttpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType POINT
featurePrefix atlas
featureType agrupaciones
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
MUNICIPIOS new IDEOLLayerWFS(Municipios
httpservicesiveresgeoserverwfs
editable false
projection new
OpenLayersProjection(EPSG23030)
geomType MULTIPOLYGON
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
103
featurePrefix atlas
featureType municipios
featureNS httplocalhostatlas
visibility false
displayInLayerSwitcher false
)
644 Definicioacuten de la interfaz
Extnamespace(Layout)
Class Layout
Representa la interfaz graacutefica de la aplicacioacuten
Inherits from
- ltExtComponentgt
Layout = Extextend(ExtComponent
Property ideol
ltIDEOLAppgt
ideol null
Property toolBar
ltLayoutBarToolBargt
toolBar null
Property toolBarPanel
ltExtPanelgt
toolBarPanel null
Otras Properties definidas como el tocPanel (table of
Contents)o el mapPanel
Method initComponents
Inicia los componentes
initComponents function()
hellip
thistoolBar = new LayoutBarToolBar(
layerWizardthislayerWizard)
Method initPanels
Inicia los paneles
initPanels function()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
104
thistoolBarPanel = new ExtPanel(
region north
layout fit
border false
tbar ConfigTOOLBAR thistoolBar null
)
hellip
Toolbarjs Extnamespace(LayoutBar)
Class LayoutBarToolBar
Inherits from
- ltExtToolbargt
LayoutBarToolBar = Extextend(ExtToolbar
map null
id toolbar
height 33
ideol null
drawManager null
statusBar null
localeCombo new IDEOLWidgetLocaleCombo()
layerWizard null
listeners
afterrender function()
thisaddItem(thislocaleCombo)
thisaddItems(thismapButtons)
thisaddSeparator()
if(ConfigEDITION_SUPPORT)
thisaddItem(thisloginButton)
thisaddSeparator()
CONTROLES DE MAPA
mapButtons
zoomFull new ExtToolbarButton(
iconCls zoomfull
tooltip LocalegetText(txt_zoom_completo)
)
zoomIn new ExtToolbarButton(
iconCls zoomin
tooltip LocalegetText(txt_zoom_mas)
toggleGroup map
)
zoomOut new ExtToolbarButton(
iconCls zoomout
tooltip LocalegetText(txt_zoom_menos)
toggleGroup map
)
pan new ExtToolbarButton(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
105
iconCls pan
tooltip LocalegetText(txt_desplazar_mapa)
toggleGroup map
enableToggle true
pressed true
)
back new ExtToolbarButton(
iconCls back
tooltip LocalegetText(txt_vista_anterior)
)
next new ExtToolbarButton(
iconCls next
tooltip LocalegetText(txt_vista_siguiente)
)
measureDistance new ExtToolbarButton(
iconCls distance
tooltip LocalegetText(txt_medir_distancias)
toggleGroup map
)
measureArea new ExtToolbarButton(
iconCls area
tooltip LocalegetText(txt_medir_areas)
toggleGroup map
)
cleanMap new ExtToolbarButton(
iconCls cleanMap
tooltip LocalegetText(txt_limpiar_mapa)
)
refreshMap new ExtToolbarButton(
iconCls refreshMap
tooltip LocalegetText(txt_recargar_mapa)
)
layerWizard new ExtToolbarButton(
iconCls layerWizard
tooltip LocalegetText(txt_anyadir_capa)
disabled true
)
END CONTROLES DE MAPA
EVENTOS CONTROLES DE MAPA
setMapButtonsEvents function()
thismapButtonszoomFullon(click function(object
event)
thisideolcontrolsManagercontrolszoomFulltrigger()
this)
thismapButtonszoomInon(click function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomIn)
this)
thismapButtonszoomOuton(click function(object
event)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
106
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolszoomOut)
this)
thismapButtonspanon(click function(object event)
thisideolcontrolsManageractivateControl(thisideolcontr
olsManager
controlspan)
this)
thismapButtonsbackon(click function(object event)
thisideolcontrolsManagercontrolsnavprevioustrigger()
this)
thismapButtonsnexton(click function(object event)
thisideolcontrolsManagercontrolsnavnexttrigger()
this)
thismapButtonsmeasureDistanceon(click
function(object event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureDistance)
this)
thismapButtonsmeasureAreaon(click function(object
event)
thisideolcontrolsManageractivateControl(thisideol
controlsManagercontrolsmeasureArea)
this)
thismapButtonscleanMapon(click function(object
event)
thisdrawManagercleanAll()
this)
thismapButtonsrefreshMapon(click function(object
event)
thisideolload(thisideolcontextURL )
this)
thismapButtonslayerWizardon(click function(object
event)
thislayerWizardshow()
this)
END EVENTOS CONTROLES DE MAPA
EVENTO LOGIN
setLoginButtonEvent function()
thisloginButtonon(click function(object event)
TODO
Loginshow()
this)
setIDEOL function(ideol)
thisideol = ideol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
107
setStatusBar function(statusBar)
thisstatusBar = statusBar
visibleItems function(items bool)
for(key in items)
items[key]setVisible(bool)
enableItems function(items bool)
for(key in items)
items[key]setDisabled(bool)
addSeparator function()
thisaddItem(new ExtToolbarSeparator())
addItems function(items)
for(key in items)
thisaddItem(items[key])
initComponent function()
LayoutBarToolBarsuperclassinitComponentcall(this)
Asegura que una extension ha antildeadido un panel
lo hace por cada panel
thislayerWizardtabPanelon(add function()
thismapButtonslayerWizardsetDisabled(false)
this)
thisdrawManager = IDEOLManagerDrawgetInstance()
thissetMapButtonsEvents()
thissetLoginButtonEvent()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
108
Indexhtml
Sobre la hoja de arranque de la aplicacioacuten se antildeaden las extensiones
cada una de ellas completamente funcional e independiente generaacutendose asiacute
un coacutedigo modular y faacutecilmente ampliable
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
lthtmlgt
ltheadgt
lttitlegtIDEOLlttitlegt
ltscript
type=textjavascriptsrc=httpmapsgooglecommapsfile=gt
ltscriptgt
ltscript
type=textjavascriptsrc=httpapimapsyahoocomajaxymap
gt
ltscriptgt
hellip
ltscript type=textjavascript src=ideolIDEOLjsgtltscriptgt
ltscript type=textjavascript src=ideolIDEOL-
Extensionsjsgtltscriptgt
ltheadgt
ltbodygt
ltscriptgt
BASES
ideoladdExtension(new ExtWMS())
ideoladdExtension(new ExtStreetView())
ideoladdExtension(new ExtAdmin())
ideoladdExtension(new ExtMunicipios())
Atlas
ideoladdExtension(new ExtSearchAtlas())
ltscriptgt
ltbodygt
lthtmlgt
Extensioacuten WMS
Para la obtencioacuten de la informacioacuten WMS hay que comprobar en primer
lugar si la capa es consultable y visible El control debe realizar una
comprobacioacuten sobre la capa seleccionada
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
109
hellip
onClick function(evt)
var selectedNode = thisideoltocselectedNode
if(selectedNode = null)
Un control antildeadido en el mapa ya contiene una
referencia al mapa
var arrayLayers =
thisideolmapgetLayersByName(selectedNodetext)
var layer = null
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer = null)
if(layerqueryable)
if(layergetVisibility())
var xy = evtxy
thisinfoWindowshow(layer xy)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visibl
e_mapa) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(
txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consul
table) ExtMessageBoxWARNING)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_in
formacion)
LocalegetText(msg_seleccionar_capa_consultable_obte
ner_info) ExtMessageBoxWARNING)
hellip
getColumnModel
Mediante este meacutetodo se cargan las features a mostrar en el gridPanel
mostrando visibles las diez primeras columnas ocultando las features
geometry y fid
thisgetColumnModel = function(describeFeatureData)
var columns = []
for(var i=0 i lt describeFeatureDatalength i++)
var dataHeaderTitle =
describeFeatureData[i]split()[1]
if(describeFeatureData[i] == fid)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
110
columnspush(header Fid dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(describeFeatureData[i] == geometry)
columnspush(header Geometry dataIndex
describeFeatureData[i] sortable true hidden
true)
else if(columnslength lt 10)
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true editor new ExtformTextField())
else
columnspush(header dataHeaderTitle
dataIndex describeFeatureData[i] sortable
true hidden true editor new
ExtformTextField())
var columnModel = new ExtgridColumnModel(columns
columns)
return columnModel
hellip
Impresioacuten
Sobre estas liacuteneas se muestra el coacutedigo que hace referencia al lado
cliente de la impresioacuten
Extnamespace(ExtExportWindow)
ExtExportWindowInfoReport = OpenLayersClass(
infoReportPanel null
win null
mask null
wmcManager new IDEOLManagerWMC()
printManager new IDEOLManagerPrintPrint()
initialize function()
thiscreateComponents()
thisprepareComponents()
createComponents function()
thisinfoReportPanel = new ExtExportPanelInfoReport()
thiswin = new ExtWindow(
layout fit
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
111
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_detalle_impresion)
constrainHeader true
width 300
collapsible true
autoHeight true
maximizable false
resizable false
draggable true
closeAction hide
plain true
border false
)
prepareComponents function()
thiswinadd(thisinfoReportPanel)
thiswinaddButton(text
LocalegetText(txt_imprimir)function (button event)
thisprintReport()
this)
thiswinaddButton(text LocalegetText(txt_cerrar)
function(button event)
thiswinhide()
this)
thiswinon(afterrender function()
thismask = new ExtLoadMask(thiswinbodymsg
LocalegetText(msg_preparando_documento))
this)
show function()
if(thiswinisVisible())
thiswinshow()
thiswincenter()
thiswinexpand()
setMap function(map)
thismap = map
getPrintRequest function()
var printRequest = new IDEOLManagerPrintPrintRequest()
var scale = +thismapgetScale()+
scale = 1+scalesplit()[0]
printRequestproject = ConfigExtExportREPORT_NAME
printRequesttitle =
thisinfoReportPaneltituloTextFieldgetValue() trim()
printRequestdescription =
thisinfoReportPaneldescripcionTextArea getValue()
printRequestmapWMC =
thiswmcManagergetWMCStringMap(thismap)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
112
printRequestscale = scale
printRequestsize =
thisinfoReportPanelcomboSizegetValue()
return printRequest
onPrintReportSuccess function(fileURL)
thismaskhide()
windowopen(fileURL)
onPrintReportFailure function()
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_preparar_documento)
ExtMessageBoxERROR
)
printReport function()
if(thisinfoReportPanelgetForm()isValid())
return
thismaskshow()
var printRequest = thisgetPrintRequest()
thisprintManagerprintReport(
printRequest
thisonPrintReportSuccess
thisonPrintReportFailure
this)
)
Definicioacuten de los maacutergenes de la plantilla para un formato A4
IMAGEIO_READ_TIMEOUT = 8000
MAP_IMAGE_WIDTH=535
MAP_IMAGE_HEIGHT=450
ATLASTEMPLATE_NAME=atlas
ATLASTEMPLATE_JASPER=atlasTemplatejasper
ATLASBANNER=atlasBannerpng
ATLASMAP_IMAGE_WIDTH=502
ATLASMAP_IMAGE_HEIGHT=430
ATLASOVERVIEW_MAP_IMAGE_WIDTH=1
ATLASOVERVIEW_MAP_IMAGE_HEIGHT=1
ATLASLEGEND_IMAGE_WIDTH=502
ATLASLEGEND_IMAGE_HEIGHT=151
ATLASDISPOSICION=true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
113
Report Request realiza una peticioacuten de los atributos al servlet mediante el
meacutetodo getParameter
import javaxservlethttpHttpServletRequest
public class ReportRequest
String project = null
String title = null
String description = null
String mapWMC = null
String overViewMapWMC = null
String scale = null
String size = null
boolean image = false
public ReportRequest(HttpServletRequest request) throws
InvalidReportRequestException
thisproject = requestgetParameter(project)
if(thisproject == null)
throw new InvalidReportRequestException()
thismapWMC = requestgetParameter(mapWMC)
if(thismapWMC == null)
throw new InvalidReportRequestException()
thistitle = requestgetParameter(title)
thisdescription = requestgetParameter(description)
thisoverViewMapWMC =
requestgetParameter(overViewMapWMC)
thisscale = requestgetParameter(scale)
thissize = requestgetParameter(size)
String imageParam = requestgetParameter(image)
if(imageParam = null ampamp imageParamequals(true))
thisimage = true
hellip meacutetodos get de cada atributo
public boolean isImage()
return image
ReportBean obtiene y almacena los atributos del jasper
import javautilHashMap
public class ReportBean
private String id
private String template
private String title
private String description
private String scale
private String size
private String fecha
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
114
private String imagesDirPath
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportBean()
hellip meacutetodos get y set para cada atributo
Report Properties obtiene y almacena las propiedades del jasper
import javautilHashMap
public class ReportProperties
private String templateJasper
private String bannerName
private int mapImageWidth
private int mapImageHeight
private int legendImageWidth
private int legendImageHeight
private int littleMapImageWidth
private int littleMapImageHeight
boolean disposicion
HashMapltString Stringgt imagesMap = new HashMapltString
Stringgt()
public ReportProperties()
hellip meacutetodos get y set para cada atributo
ReportMgr
import javaioFile
hellip
public class ReportMgr
private static Logger logger =
LoggergetLogger(ReportMgrclass)
static int DEFAULT_MAP_IMAGE_WIDTH
static int DEFAULT_MAP_IMAGE_HEIGHT
String workDirPath
String imagesDirPath
String idsession
WMSMgr wmsMgr
WMCMgr wmcMgr
static
try
DEFAULT_MAP_IMAGE_WIDTH =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_WIDTH))intValue()
DEFAULT_MAP_IMAGE_HEIGHT =
IntegervalueOf(ConfiguraciongetConfig()getProperty
(MAP_IMAGE_HEIGHT))intValue()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
115
catch (NumberFormatException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
public ReportMgr(String workDirPath String imagesDirPath
String idsession)
thisworkDirPath = workDirPath
thisimagesDirPath = imagesDirPath
thisidsession = idsession
thiswmsMgr = new WMSMgr()
thiswmcMgr = new WMCMgr()
public ReportBean getReportBean(ReportRequest reportRequest)
throws ConfiguracionException
ValidateException IOException
ReportBean reportBean = new ReportBean()
prepareFixedAttrsForBean(reportRequest reportBean)
ReportProperties reportProperties =
getReportProperties(reportRequest)
prepareImagesForBean(reportProperties reportRequest
reportBean)
prepareBeanFromProperties(reportProperties reportBean)
prepareBaseBean(reportBean)
return reportBean
private void prepareFixedAttrsForBean(ReportRequest
reportRequest ReportBean reportBean)
String title = reportRequestgetTitle()
String description = reportRequestgetDescription()
String scale = reportRequestgetScale()
String size = reportRequestgetSize()
reportBeansetTitle(title)
reportBeansetDescription(description)
reportBeansetScale(scale)
reportBeansetSize(size)
public ReportProperties getReportProperties(ReportRequest
reportRequest) throws ConfiguracionException
String project = reportRequestgetProject()
ReportProperties reportProperties = new ReportProperties()
String templateJasper = null
String bannerName = null
int mapImageWidth = 0
int mapImageHeight = 0
int legendImageWidth = 0
int legendImageHeight = 0
int littleMapImageWidth = 0
int littleMapImageHeight = 0
boolean disposicion = false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
116
if(projecttoLowerCase()equals(ConfiguraciongetConfig()g
etProperty(ATLASTEMPLATE_NAME)))
templateJasper =
ConfiguraciongetConfig()getProperty(ATLASTEMPLATE
_JASPER)
bannerName =
ConfiguraciongetConfig()getProperty(ATLASBANNER)
mapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_WIDTH)))
mapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASMAP_IMAGE_HEIGHT)))
legendImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_WIDTH)))
legendImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASLEGEND_IMAGE_HEIGHT)))
littleMapImageWidth =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_WIDTH)))
littleMapImageHeight =
IntegervalueOf((ConfiguraciongetConfig()getPropert
y(ATLASOVERVIEW_MAP_IMAGE_HEIGHT)))
String disposicionConfig =
ConfiguraciongetConfig()getProperty(ATLASDISPOSIC
ION)
disposicion = disposicionConfigequals(true) true
false
reportPropertiessetTemplateJasper(templateJasper)
reportPropertiessetBannerName(bannerName)
reportPropertiessetMapImageWidth(mapImageWidth)
reportPropertiessetMapImageHeight(mapImageHeight)
reportPropertiessetLegendImageWidth(legendImageWidth)
reportPropertiessetLegendImageHeight(legendImageHeight)
reportPropertiessetLittleMapImageWidth(littleMapImageWidth)
reportPropertiessetLittleMapImageHeight(littleMapImageHeight)
reportPropertiessetDisposicion(disposicion)
return reportProperties
private void prepareImagesForBean(ReportProperties
reportProperties ReportRequest reportRequest ReportBean
reportBean) throws ValidateException IOException
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
117
ViewContextType mapContext =
wmcMgrparseWMC(reportRequestgetMapWMC())
int mapWidth = reportPropertiesgetMapImageWidth()2
int mapHeight = reportPropertiesgetMapImageHeight()2
int overViewMapWidth =
reportPropertiesgetLittleMapImageWidth()
int overViewMapHeight =
reportPropertiesgetLittleMapImageHeight()
int legendWidth = reportPropertiesgetLegendImageWidth()2
int legendHeight =
reportPropertiesgetLegendImageHeight()2
boolean disposicion = reportPropertiesisDisposicion()
File mapImage = wmsMgrcreateMapImage(mapContext mapWidth
mapHeight workDirPath idsession false)
File legendImage = wmsMgrcreateLegendImage(mapContext
legendWidth legendHeight workDirPath disposicion
idsession)
File bannerImage = new File(imagesDirPath+reportProperties
getBannerName())
reportBeansetId(mapContextgetId())
reportBeangetImagesMap()put(mapImagePath
mapImagegetAbsolutePath())
reportBeangetImagesMap()put(legendImagePath
legendImagegetAbsolutePath())
reportBeangetImagesMap()put(bannerImagePath
bannerImagegetAbsolutePath())
reportBeangetImagesMap()putAll(reportPropertiesgetImagesMap()
)
private void prepareBeanFromProperties(ReportProperties
reportProperties ReportBean reportBean)
reportBeansetTemplate(reportPropertiesgetTemplateJasper())
SimpleDateFormat formato = new SimpleDateFormat(
ddMMyyyy)
Date fechaActual = new Date()
String fecha = formatoformat(fechaActual)
reportBeansetFecha(fecha)
private void prepareBaseBean(ReportBean reportBean)
reportBeansetImagesDirPath(thisimagesDirPath)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
118
El siguiente coacutedigo hace referencia al archivo PrinterMgr muestra coacutemo
se completaraacute la plantilla cuando no se trate de una imagen generando el pdf
public class PrinterMgr
private static Logger logger =
LoggergetLogger(PrinterMgrclass)
ReportMgr reportMgr
public String generateReport(ReportRequest reportRequest String
workDirPath String imagesDirPath String reportsDirPath String
idsession) throws ConfiguracionException ValidateException
IOException JRException
reportMgr = new ReportMgr(workDirPath imagesDirPath
idsession)
ReportBean reportBean =
reportMgrgetReportBean(reportRequest)
String reportName = report-+reportBeangetId()+pdf
String reportPath = workDirPath+reportName
ListltReportBeangt reports = new ArrayListltReportBeangt()
reportsadd(reportBean)
JRBeanCollectionDataSource datasource = new
JRBeanCollectionDataSource(reports)
String templatePath =
reportsDirPath+reportBeangetTemplate()
HashMapltString Stringgt parameters =
reportBeangetImagesMap()
JasperPrint jasperPrint =
JasperFillManagerfillReport(templatePath parameters
datasource)
JasperExportManagerexportReportToPdfFile(jasperPrint
reportPath)
return reportName
Sobre estas liacuteneas se muestra el coacutedigo que genera la impresioacuten en pdf
PrintWMCServlet
public class PrintWMCServlet extends HttpServlet
Logger logger = LoggergetLogger(PrintWMCServletclass)
String WORKDIR
String IMAGESDIR
String WORKURL
String REPORTSDIR
String SESSION_ID
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
119
public void init(ServletConfig config) throws ServletException
superinit(config)
WORKDIR = getServletContext()getRealPath()+tmp
IMAGESDIR = getServletContext()getRealPath()+images
REPORTSDIR = getServletContext()getRealPath()+reports
protected void doPost(HttpServletRequest request
HttpServletResponse response)
loggerinfo( POST Request PrintWMCServlet )
String key = requestgetParameter(key)
String hostname = requestgetRemoteHost()
if(KeyManagertestKey(hostname key))
responsesetStatus(401)
return
if(WORKURL == null)
WORKURL = http+requestgetServerName()+
+requestgetServerPort()+requestgetContextPath()+tmp
HttpSession session = requestgetSession()
SESSION_ID = sessiongetId()
try
ReportRequest reportRequest = new ReportRequest(request)
if(reportRequestisImage())
WMSMgr wmsMgr = new WMSMgr()
WMCMgr wmcMgr = new WMCMgr()
ViewContextType mapContext = wmcMgrparseWMC
(reportRequestgetMapWMC())
int mapWidth=
mapContextgetGeneral()getWindow()getWidth()intValue()
int mapHeight=
mapContextgetGeneral()getWindow()getHeight()intValue()
File file = wmsMgrcreateMapImage(mapContext
mapWidth mapHeight WORKDIR SESSION_ID false)
String imageURL = WORKURL+filegetName()
responsegetOutputStream()write(imageURLgetBytes(UTF-8))
else
PrinterMgr printerMgr = new PrinterMgr()
String fileName =
printerMgrgenerateReport(reportRequest WORKDIR
IMAGESDIR REPORTSDIR SESSION_ID)
String reportURL = WORKURL+fileName
responsegetOutputStream()write(reportURLgetBytes(UTF-8))
catch(InvalidReportRequestException e)
loggerinfo(ERROR Peticioacuten invaacutelida)
catch (ConfiguracionException e)
TODO Auto-generated catch block
eprintStackTrace()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
120
catch (ValidateException e)
loggerinfo(ERROR No se ha podido validar el
contexto WMC)
catch (IOException e)
TODO Auto-generated catch block
eprintStackTrace()
catch (JRException e)
TODO Auto-generated catch block
eprintStackTrace()
private String convertStreamToString(InputStream is)
To convert the InputStream to String we use the
BufferedReaderreadLine()
method We iterate until the BufferedReader return null
which means
theres no more data to read Each line will appended
to a StringBuilder
and returned as String
BufferedReader reader = new BufferedReader(new
InputStreamReader(is))
StringBuilder sb = new StringBuilder()
String line = null
try
while ((line = readerreadLine()) = null)
sbappend(line + n)
catch (IOException e)
eprintStackTrace()
finally
try
isclose()
catch (IOException e)
eprintStackTrace()
return sbtoString()
private String getFileContent(String path) throws IOException
FileInputStream fileInputStream = new FileInputStream
(path)
byte[] b = new byte[fileInputStreamavailable()]
fileInputStreamread(b)
fileInputStreamclose ()
return new String (b)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
121
Extensioacuten Atlas
ExtSearchAtlasjs
Extnamespace(ExtSearchAtlas)
Antildeade la traduccioacuten correspondiente de la extensioacuten
LocaleappendLocale(LocaleExtSearchAtlas[LocalegetLang()])
Class ExtSearchAtlas
Descripcioacuten de la extensioacuten
Inherits from
- ltIDEOLExtensiongt
ExtSearchAtlas = OpenLayersClass(IDEOLExtension
Property infoBBoxButton
ExtSearchAtlasButtonInfoBBox
infoBBoxButton null
Property infoBBoxControl
ExtSearchAtlasControlInfoBBox
infoBBoxControl null
Property eSearchButton
ExtSearchAtlasControlESearch
eSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowESearch
eSearchWindow null
Property aSearchButton
ExtSearchAtlasControlASearch
aSearchButton null
Property eSearchWindow
ExtSearchAtlasWindowASearch
aSearchWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
122
Property gridResultWindow
ExtSearchAtlasWindowGridResult
gridResultWindow null
Property helpButton
ExtSearchAtlasControlButton
helpButton null
Property helpWindow
ExtSearchAtlasWindowHelpWindow
helpWindow null
Constructor ExtSearchAtlas
Inicializa los componentes de la extensioacuten
initialize function()
thiscreateComponents()
Method createComponents
createComponents function()
thisinfoBBoxButton = new ExtSearchAtlasButtonInfoBBox()
thisinfoBBoxButtonon(click function()
thisactivateControl(thisinfoBBoxControl)
this)
thiseSearchButton = new ExtSearchAtlasButtonESearch()
thiseSearchButtonon(click function()
thiseSearchWindowshow()
this)
thisaSearchButton = new ExtSearchAtlasButtonASearch()
thisaSearchButtonon(click function()
thisaSearchWindowshow()
this)
thishelpButton = new ExtSearchAtlasButtonHelp()
thishelpButtonon(click function()
if (LocalegetLang() == es)
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_ES)
else
thishelpWindowshowHTML(LocalegetText(msg_ayuda)ConfigExtS
earchAtlasHTML_PATH_HELP_VAL)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
123
Event onCreate
Este evento se lanza para indicar que la aplicacioacuten estaacute
lista
Antildeadir aquiacute los componentes de la extensioacuten al layout de la
aplicacioacuten
onCreate function()
var map = thisideolmap
thisgridResultWindow = new
ExtSearchAtlasWindowGridResult()
thiseSearchWindow = new
ExtSearchAtlasWindowESearch(gridResultWindow
thisgridResultWindow)
thisaSearchWindow = new
ExtSearchAtlasWindowASearch(gridResultWindow
thisgridResultWindow)
thishelpWindow = new IDEOLToolHTMLTemplateView()
Crea el control y lo antildeade al mapa
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
mapaddControl(thisinfoBBoxControl)
Antildeade los botones al toolbar
var layout = thisideollayout
layouttoolBaraddItem(thisinfoBBoxButton)
layouttoolBaraddItem(thiseSearchButton)
layouttoolBaraddItem(thisaSearchButton)
layouttoolBaraddItem(thishelpButton)
layouttoolBardoLayout()
Event onUpdate
Este evento se lanza para indicar que la aplicacioacuten se ha
actualizado
Informar a los componentes de la extensioacuten que lo necesiten
el nuevo objeto de la aplicacioacuten
onUpdate function()
Es necesario recrear el control y antildeadirlo al mapa
thisinfoBBoxControldestroy()
thisinfoBBoxControl = new
ExtSearchAtlasControlInfoBBox(thisideol)
var map = thisideolmap
mapaddControl(thisinfoBBoxControl)
Method activateControl
Parameters
control - OpenLayersControl
activateControl function(control)
thisideolcontrolsManagerdeactivateControls()
controlactivate()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
124
CLASS_NAME ExtSearchAtlas
)
ButtonASearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonASearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonASearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ASearch_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_concentraciones)
Constructor ExtSearchAtlasButtonASearch
initComponent function()
ExtSearchAtlasButtonASearchsuperclassinitComponentcall(this
)
)
ButtonESearchjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonESearch
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonESearch = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_ESearch_Icon
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
125
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_busqueda_establecimientos)
Constructor ExtSearchAtlasButtonESearch
initComponent function()
ExtSearchAtlasButtonESearchsuperclassinitComponentcall(this
)
)
64104 ButtonInfoBBoxjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonInfoBBox
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonInfoBBox = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_InfoBBox_Icon
Property tooltip
String Tooltip del botoacuten
tooltip titleLocalegetText(txt_informacion)
textLocalegetText(msg_obtiene_informacion_capa_seleccionada)
toggleGroup map
Property ideol
ltIDEOLAppgt Objeto de la aplicacioacuten
ideol null
Constructor ExtSearchAtlasButtonInfoBBox
initComponent function()
ExtSearchAtlasButtonInfoBBoxsuperclassinitComponentcall(thi
s)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
126
Method setIDEOL
Actualiza el objeto de la aplicacioacuten del botoacuten
Parameters
ideol - ltIDEOLAppgt - Objeto de la aplicacioacuten
setIDEOL function(ideol)
thisideol = ideol
)
ButtonHelpjs
Extnamespace(ExtSearchAtlasButton)
Class ExtSearchAtlasButtonHelp
Inherits from
- ltExtToolbarButtongt
ExtSearchAtlasButtonHelp = Extextend(ExtToolbarButton
Property iconCls
String Icono del botoacuten
iconCls ExtSearchAtlas_Button_Help_Icon
Property tooltip
String Tooltip del botoacuten
tooltip LocalegetText(msg_ayuda)
Constructor ExtSearchAtlasButtonHelp
initComponent function()
ExtSearchAtlasButtonHelpsuperclassinitComponentcall(this)
)
ControlInfoBBoxjs
Extnamespace(ExtSearchAtlasControl)
ExtSearchAtlasControlInfoBBox = OpenLayersClass(OpenLayersControl
dataViewWindow null
ideol null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
127
Property out
Boolean Should the control be used for zooming out
out false
Method draw
draw function()
thishandler = new OpenLayersHandlerBox( this done
thisshowInfo keyMask thiskeyMask )
initialize function(ideol)
thisideol = ideol
thisdataViewWindow = new
ExtSearchAtlasWindowDataView(thisideolmap)
OpenLayersControlprototypeinitializeapply(this)
checkWMSLayer function(nodeText)
var layer
var arrayLayers = thismapgetLayersByName(nodeText)
if(arrayLayerslength == 1)
layer = arrayLayers[0]
if(layer == null)
return false
if(layerqueryable)
if(layergetVisibility())
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_visible_mapa)
ExtMessageBoxWARNING)
return false
return true
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_capa_seleccionada_no_consultable)
ExtMessageBoxWARNING)
return false
showInfo function(position)
var selectedNode = thisideoltocselectedNode
if(selectedNode)
var wmsLayerName = selectedNodetext
if(thischeckWMSLayer(wmsLayerName))
var layerWFS =
thisgetWFSLayerByName(wmsLayerName)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
128
if(layerWFS = null)
var bounds = thisgetBounds(position)
if(bounds = null)
boundstransform(new
OpenLayersProjection(thismapgetProjection()) new
OpenLayersProjection(layerWFSprojectionprojCode))
thisdataViewWindowshow(layerWFS
bounds)
else
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_capa_consultable_obtener_info)
ExtMessageBoxWARNING)
getWFSLayerByName function(layerName)
var layer = null
if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
layer = ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
layer =
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname)
layer = ConfigExtSearchAtlasWFSLayersMUNICIPIOS
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname)
layer =
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACION
else if(layerName ==
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname)
layer = ConfigExtSearchAtlasWFSLayersANTENAS_LOCALES
else if(layerName ==
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname)
layer = ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIO
return layer
getBounds function(position)
var bounds = null
if (position instanceof OpenLayersBounds)
if (thisout)
var minXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionleft
positionbottom))
var maxXY = thismapgetLonLatFromPixel(
new OpenLayersPixel(positionright
positiontop))
bounds = new OpenLayersBounds(minXYlon minXYlat
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
129
maxXYlon maxXYlat)
else
var pixWidth = Mathabs(positionright-positionleft)
var pixHeight = Mathabs(positiontop-
positionbottom)
var zoomFactor = Mathmin((thismapsizeh
pixHeight)
(thismapsizew pixWidth))
var extent = thismapgetExtent()
var center = thismapgetLonLatFromPixel(
positiongetCenterPixel())
var xmin = centerlon -
(extentgetWidth()2)zoomFactor
var xmax = centerlon +
(extentgetWidth()2)zoomFactor
var ymin = centerlat -
(extentgetHeight()2)zoomFactor
var ymax = centerlat +
(extentgetHeight()2)zoomFactor
bounds = new OpenLayersBounds(xmin ymin xmax
ymax)
else its a pixel
var offsetPoint = 14
if (thisout)
var min =
x positionx-offsetPoint
y positiony+offsetPoint
var minLonLat = thismapgetLonLatFromPixel(min)
var max =
x positionx+offsetPoint
y positiony-offsetPoint
var maxLonLat = thismapgetLonLatFromPixel(max)
bounds = new OpenLayersBounds(minLonLatlon
minLonLatlat maxLonLatlon maxLonLatlat)
else
thismapsetCenter(thismapgetLonLatFromPixel(position)
thismapgetZoom() - 1)
return bounds
CLASS_NAME ExtSearchAtlasControlInfoBBox
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
130
PanelAgrupacionesCentrojs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAgrPanelCentro
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesCentro = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_tipo_centro)
originalTitle LocalegetText(txt_tipo_centro)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeCentros new ExtdataStore(
reader new ExtdataJsonReader(
id tipo_centr
[tipo_centr]
)
sortInfo
field tipo_centr
direction ASC
)
comboCentros new ExtformComboBox (
displayFieldtipo_centr
valueFieldtipo_centr
fieldLabel LocalegetText(txt_tipo_centro)
name tipo_centr
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getCentros function(wfsFeatures)
var blankFeature = tipo_centr ---
+LocalegetText(txt_seleccionar)+ ---
var centros = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
131
var centro = wfsFeatures[i]data
centrospush(centro)
return centros
onWFSQuerySuccess function(wfsFeatures)
var centros = thisgetCentros(wfsFeatures)
thisloadCombo(centros)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(centros)
thisstoreCentrosloadData(centros)
requestFeatures function()
thismaskshow()
var attributes = thisstoreCentrosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
tipo_centr
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboCentrosstore = thisstoreCentros
thisadd(thiscomboCentros)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboCentroson(select function(combo record
index)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
132
if(recorddatatipo_centr = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelAgrupacionesCentro
initComponent function()
ExtSearchAtlasPanelAgrupacionesCentrosuperclassinitComponen
tcall(this)
thisinitialize()
)
PanelAgrupacionesDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersMUNICIPIOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
name direccion
enableKeyEvents true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
133
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
valueFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead false
typeAhead true
forceSelection true
triggerAction all
emptyTextSeleccione una provincia
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
134
var municipios = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
135
else if(direccion = null ampamp direcciontrim() = )
update = true
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelAgrupacionesDireccion
initComponent function()
ExtSearchAtlasPanelAgrupacionesDireccionsuperclassinitCompo
nentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
136
)
PanelAgrupacionesNombrejs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesNombre = Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelAgrupacionesNombre
initComponent function()
ExtSearchAtlasPanelAgrupacionesNombresuperclassinitComponen
tcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
137
PanelAgrupacionesTabjs
Extnamespace(ExtSearchAtlasPanelAgrupaciones)
Class ExtSearchAtlasPanelAgrupacionesTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelAgrupacionesTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelAgrupacionesTab
initComponent function()
ExtSearchAtlasPanelAgrupacionesTabsuperclassinitComponentc
all(this)
)
PanelEstablecimientosActividadjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosActividad
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosActividad =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_actividad)
originalTitle LocalegetText(txt_actividad)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
storeActividades new ExtdataStore(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
138
reader new ExtdataJsonReader(
id dactividad
[dactividad]
)
sortInfo
field dactividad
direction ASC
)
comboActividades new ExtformComboBox (
displayFielddactividad
valueFielddactividad
fieldLabel LocalegetText(txt_actividad)
name dactividad
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getActividades function(wfsFeatures)
var blankFeature = dactividad ---
+LocalegetText(txt_seleccionar)+ ---
var actividades = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
var actividad = wfsFeatures[i]data
actividadespush(actividad)
return actividades
onWFSQuerySuccess function(wfsFeatures)
var actividades = thisgetActividades(wfsFeatures)
thisloadCombo(actividades)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(actividades)
thisstoreActividadesloadData(actividades)
requestFeatures function()
thismaskshow()
var attributes = thisstoreActividadesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
139
OpenLayersFilterComparisonLIKE
dactividad
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboActividadesstore = thisstoreActividades
thisadd(thiscomboActividades)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
thiscomboActividadeson(select function(combo record
index)
if(recorddatadactividad = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosActividad
initComponent function()
ExtSearchAtlasPanelEstablecimientosActividadsuperclassinitC
omponentcall(this)
thisinitialize()
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
140
PanelEstablecimientosAgrupacioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosAgrupacion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosAgrupacion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_agrupacion)
originalTitle LocalegetText(txt_agrupacion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
mask null
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
id nom_agrup
[nom_agrup]
)
sortInfo
field nom_agrup
direction ASC
)
comboAgrupaciones new ExtformComboBox (
displayFieldnom_agrup
valueFieldnom_agrup
fieldLabel LocalegetText(txt_agrupacion)
name agrupacion
mode local
typeAhead false
triggerAction all
selectOnFocustrue
editable false
anchor95
)
getAgrupaciones function(wfsFeatures)
var blankFeature = nom_agrup ---
+LocalegetText(txt_seleccionar)+ ---
var agrupaciones = [blankFeature]
for(i=0 iltwfsFeatureslength i++)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
141
var agrupacion = wfsFeatures[i]data
agrupacionespush(agrupacion)
return agrupaciones
onWFSQuerySuccess function(wfsFeatures)
var agrupaciones = thisgetAgrupaciones(wfsFeatures)
thisloadCombo(agrupaciones)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadCombo function(agrupaciones)
thisstoreAgrupacionesloadData(agrupaciones)
requestFeatures function()
thismaskshow()
var attributes = thisstoreAgrupacionesfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nom_agrup
false)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
initialize function()
thiscomboAgrupacionesstore = thisstoreAgrupaciones
thisadd(thiscomboAgrupaciones)
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thison(afterrender function( panel )
thisrequestFeatures()
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
142
thiscomboAgrupacioneson(select function(combo record
index)
if(recorddatanom_agrup = ---
+LocalegetText(txt_seleccionar)+ ---)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
this)
Constructor ExtSearchAtlasPanelEstablecimientosAgrupacion
initComponent function()
ExtSearchAtlasPanelEstablecimientosAgrupacionsuperclassinit
Componentcall(this)
thisinitialize()
)
PanelEstablecimientosDireccioacutenjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosDireccion
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosDireccion =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_direccion)
originalTitle LocalegetText(txt_direccion)
autoWidth true
height 95
buttonAlign center
labelWidth 70
layerMunicipios ConfigExtSearchAtlasWFSLayersMUNICIPIOS
filterManager new IDEOLManagerFilter()
mask null
wfsManager new IDEOLManagerWFS()
direccionTextField new ExtformTextField(
fieldLabel LocalegetText(txt_direccion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
143
name direccion
enableKeyEvents true
anchor95
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[nombre]
)
sortInfo
field nombre
direction ASC
)
storeProvincias new ExtdataSimpleStore(
fields [codigonombre]
data [
[00 --- +LocalegetText(txt_seleccionar)+ ---
]
[03Alicante]
[12Castelloacuten]
[46Valencia]
]
)
comboMunicipios new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_municipio)
name municipio
mode local
triggerAction all
selectOnFocustrue
editable false
anchor95
)
comboProvincias new ExtformComboBox (
displayFieldnombre
fieldLabel LocalegetText(txt_provincia)
value --- +LocalegetText(txt_seleccionar)+ ---
name nombre
mode local
typeAhead true
forceSelection true
triggerAction all
selectOnFocustrue
editable false
anchor95
)
keyEventHandler function(object event)
thisupdateTitleColor()
getMunicipios function(wfsFeatures)
var blankFeature = nombre ---
+LocalegetText(txt_seleccionar)+ ---
var municipios = [blankFeature]
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
144
for(i=0 iltwfsFeatureslength i++)
var municipio = wfsFeatures[i]data
municipiospush(municipio)
return municipios
onWFSQuerySuccess function(wfsFeatures)
var municipios = thisgetMunicipios(wfsFeatures)
thisloadComboMunicipios(municipios)
thismaskhide()
onWFSQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta)
ExtMessageBoxERROR
)
loadComboMunicipios function(municipios)
thisstoreMunicipiosloadData(municipios)
requestFeatures function(codprov)
thismaskshow()
var attributes = thisstoreMunicipiosfieldskeys
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
codprov
codprov
false)
thiswfsManagergetFeaturesByFilter(
thislayerMunicipios
attributes
filter
thisonWFSQuerySuccess
thisonWFSQueryFailure
this
)
updateTitleColor function()
var update =false
var provincia = thiscomboProvinciasgetValue()
var municipio = thiscomboMunicipiosgetValue()
var direccion = thisdireccionTextFieldgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
update = true
else if(direccion = null ampamp direcciontrim() = )
update = true
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
145
if(update)
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
initialize function()
thison(render function( panel )
thismask = new ExtLoadMask(thisbody)
this)
thiscomboProvinciasstore = thisstoreProvincias
thiscomboMunicipiosstore = thisstoreMunicipios
thiscomboProvinciason(select function(combo record
index)
El combo de municipios nunca podraacute estar informado
si el combo de provincias no lo estaacute
thisstoreMunicipiosremoveAll()
thiscomboMunicipiossetValue()
thisupdateTitleColor()
if(recorddatacodigo = 00)
thisrequestFeatures(recorddatacodigo)
this)
thiscomboMunicipioson(select function(combo record
index)
thisupdateTitleColor()
this)
thisdireccionTextFieldon(keyup function(object
event)
thiskeyEventHandler(object event)
this)
thisadd(thiscomboProvincias)
thisadd(thiscomboMunicipios)
thisadd(thisdireccionTextField)
Constructor ExtSearchAtlasPanelEstablecimientos
initComponent function()
ExtSearchAtlasPanelEstablecimientosDireccionsuperclassinitC
omponentcall(this)
thisinitialize()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
146
)
PanelEstablecimientosNombrejs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosNombre
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosNombre =
Extextend(ExtFormPanel
frame true
title LocalegetText(txt_nombre)
originalTitle LocalegetText(txt_nombre)
autoWidth true
height 95
buttonAlign center
labelWidth 70
nombreTextField new ExtformTextField(
fieldLabel LocalegetText(txt_nombre)
name nombre
enableKeyEvents true
anchor95
)
keyEventHandler function(object event)
var rotulo = thisnombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
thissetTitle(ltspan style=color
greengt+thisoriginalTitle+ltspangt)
else
thissetTitle(thisoriginalTitle)
Constructor ExtSearchAtlasPanelEstablecimientosNombre
initComponent function()
ExtSearchAtlasPanelEstablecimientosNombresuperclassinitComp
onentcall(this)
thisnombreTextFieldon(keyup function(object event)
thiskeyEventHandler(object event)
this)
thisadd(thisnombreTextField)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
147
PanelEstablecimientosTabjs
Extnamespace(ExtSearchAtlasPanelEstablecimientos)
Class ExtSearchAtlasPanelEstablecimientosTab
Inherits from
- ltExtPanelgt
ExtSearchAtlasPanelEstablecimientosTab = Extextend(ExtTabPanel
activeTab 0
border false
autoHeight true
Constructor ExtSearchAtlasPanelEstablecimientosTab
initComponent function()
ExtSearchAtlasPanelEstablecimientosTabsuperclassinitCompone
ntcall(this)
)
WindowASearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowASearch
ExtSearchAtlasWindowASearch = OpenLayersClass(
layer
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALES
wfsManager null
filterManager new IDEOLManagerFilter()
columns
ConfigExtSearchAtlasColumnsCONCENTRACIONES_COMERCIALES
tabPanel null
panelNombre null
panelDireccion null
panelCentro null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
148
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thistabPanel = new
ExtSearchAtlasPanelAgrupacionesTab()
thispanelNombre = new
ExtSearchAtlasPanelAgrupacionesNombre()
thispanelDireccion = new
ExtSearchAtlasPanelAgrupacionesDireccion()
thispanelCentro = new
ExtSearchAtlasPanelAgrupacionesCentro()
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_concentraciones)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelCentro)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
149
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(click function()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var nombre = null
nombre = thispanelNombrenombreTextFieldgetValue()
if(nombre = null ampamp nombretrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nombre
+ nombre +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
150
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomvia
+ direccion +
false)
filterspush(filter)
Centro
var centro = null
centro = thispanelCentrocomboCentrosgetValue()
if(centro = null ampamp centrotrim() = ampamp centro = ---
+LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
tipo_centr
centro
true)
filterspush(filter)
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowASearch
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
151
WindowDataViewjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowDataView
ExtSearchAtlasWindowDataView = OpenLayersClass(
filterManager new IDEOLManagerFilter()
WFSLAYERS_ESTABLECIMIENTOS
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname
WFSLAYERS_CONCENTRACIONES_COMERCIALES
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname
WFSLAYERS_MUNICIPIOS
ConfigExtSearchAtlasWFSLayersMUNICIPIOSname
WFSLAYERS_COMERCIOS_INNOVACION
ConfigExtSearchAtlasWFSLayersCOMERCIOS_INNOVACIONname
WFSLAYERS_ANTENAS_LOCALES
ConfigExtSearchAtlasWFSLayersANTENAS_LOCALESname
WFSLAYERS_CAMARAS_COMERCIO
ConfigExtSearchAtlasWFSLayersCAMARAS_COMERCIOname
TEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS
TEMPLATE_DATAVIEW_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_AGRUPACIONES
TEMPLATE_DATAVIEW_PATH_CAMARAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_CAMARAS
TEMPLATE_DATAVIEW_PATH_ANTENAS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_ANTENAS
TEMPLATE_DATAVIEW_PATH_MUNICIPIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_MUNICIPIOS
TEMPLATE_DATAVIEW_PATH_COMERCIOS
ConfigExtSearchAtlasTEMPLATE_DATAVIEW_PATH_COMERCIOS
storeConcentraciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
storeEstablecimientos new ExtdataStore(
reader new ExtdataJsonReader(
[id
rotulo
sigla
nomcall
numpol
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
152
km
cp
provincia
municipio
nom_agrup
num_local
dactividad
tipo_patec
long_fach
refcat
foto1
foto2
the_geom
])
)
storeAgrupaciones new ExtdataStore(
reader new ExtdataJsonReader(
[id
nombre
sigla
nomvia
numpol
km
cp
municipio
provincia
tipo_centr
directorio
plant_tota
aparcamien
pl_ap_tot
pl_ap_int
pl_ap_ext
foto1
foto2
the_geom
])
)
storeCamaras new ExtdataStore(
reader new ExtdataJsonReader(
[nombre
direccion
codpostal
provincia
municipio
web
the_geom
])
)
storeAntenas new ExtdataStore(
reader new ExtdataJsonReader(
[nom_antena
perso_cont
direccion
cp
municipio
provincia
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
153
telefono
horario
the_geom
])
)
storeMunicipios new ExtdataStore(
reader new ExtdataJsonReader(
[
nombre
ine
the_geom
])
)
storeComercios new ExtdataStore(
reader new ExtdataJsonReader(
[
id
empresa
sector
nombre
numpol
ciudad
provincia
web
the_geom
])
)
tplEstablecimientos null
tplAgrupaciones null
tplCamaras null
tplAntenas null
tplMunicipios null
tplComercios null
layer null
map null
wfsManager null
drawManager null
wktFormat null
establecimientosManager null
mask null
arrayData null
fichaWindow null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
154
streetViewWindow null
dataView null
panel null
win null
streetViewButton null
buscarButton null
fichaButton null
cerrarButton null
initialize function(map)
thiscreateComponents(map)
thisprepareComponents()
thisprepareTemplates()
createComponents function(map)
thismap=map
thiswfsManager = new IDEOLManagerWFS()
thisdrawManager = IDEOLManagerDrawgetInstance()
thiswktFormat = new OpenLayersFormatWKT()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos(thismap)
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisstreetViewWindow = ExtStreetViewWindowWindow
thisdataView = new ExtDataView(
store thisstoreEstablecimientos
tpl thistpl
autoWidth true
autoHeighttrue
singleSelect true
multiSelect false
overClassx-view-over
itemSelectordivsearch-item
emptyText No items to display
)
thispanel = new ExtPanel(
id ea-view
layoutfit
frametrue
width 450
height250
autoScroll true
)
thiswin = new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title LocalegetText(txt_informacion)
titleCollapse true
constrainHeader true
maximizable false
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
155
resizable false
draggable true
collapsible true
closeAction hide
plain true
border false
)
prepareComponents function()
thispaneladd(thisdataView)
thiswinadd(thispanel)
thisfichaButton = thiswinaddButton(text
LocalegetText(txt_ficha) function()
thisrequestShowFicha()
this)
thisstreetViewButton = thiswinaddButton(text
LocalegetText(txt_streetview)function()
thisshowStreetView()
this)
thisbuscarButton = thiswinaddButton(text
LocalegetText(txt_localizar)function()
thislocateElement()
this)
thiscerrarButton = thiswinaddButton(text
LocalegetText(txt_cerrar) function()
thiswinhide()
this)
Method prepareTemplates
prepareTemplates function()
var tplMunicipiosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_MUNICIPIOS)
thistplMunicipios = new
ExtXTemplate(tplMunicipiosContent)
var tplAntenasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ANTENAS)
thistplAntenas = new ExtXTemplate(tplAntenasContent)
var tplCamarasContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_CAMARAS)
thistplCamaras = new ExtXTemplate(tplCamarasContent)
var tplAgrupacionesContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_AGRUPACIONES)
thistplAgrupaciones = new
ExtXTemplate(tplAgrupacionesContent)
var tplEstablecimientosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_ESTABLECIMIENTOS)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
156
thistplEstablecimientos = new
ExtXTemplate(tplEstablecimientosContent)
var tplComerciosContent =
thisgetTplContent(thisTEMPLATE_DATAVIEW_PATH_COMERCIOS)
thistplComercios = new ExtXTemplate(tplComerciosContent)
getTplContent function(contentURL)
var content
var request = OpenLayersRequestGET(
url contentURL
success function(response)content =
responseresponseText
failure function(response)content = null
async false
)
return content
Method getGeometryFromRecord
getGeometryFromRecord function(record)
var geometryWKT = recordget(the_geom)
var geometry = thiswktFormatread(geometryWKT)
return geometry
showStreetView function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
157
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
thisfichaWindowshow(thislayername thisagrupacion
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
158
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
else if(layerName == thisWFSLAYERS_ESTABLECIMIENTOS)
thisfichaWindowshow(thislayername
completeFeature
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS)
else
thisfichaWindowshow(thislayername
completeFeature ConfigExtSearchAtlasTEMPLATE_PATH_MUNICIPIOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(idvalue)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
value
true)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
159
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
Municipios
if(thisdataViewstoreid == 2)
thisrequestCompleteFeature(ine
recordget(ine))
else
thisrequestCompleteFeature(id
recordget(id))
locateElement function()
var cont = thisdataViewstoregetCount()
var records = thisdataViewgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
160
LocalegetText(msg_seleccionar_elemento_localizar)
ExtMessageBoxWARNING)
else
if(cont == 1)
record = thisdataViewstoregetAt(0)
var geom = thisgetGeometryFromRecord(record)
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisdrawManagerdrawMarker(lonlat
thislayerprojectiongetCode() true true)
Method getPreparedFeatures
Obtiene el array de objetos con el que se cargaraacute el store
del grid a partir de features WFS
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
Returns
OpenLayersLayerWFS Array de objetos con el que se podraacute
cargar el store del grid
getPreparedFeatures function(wfsFeatures)
var features = []
for(i=0 iltwfsFeatureslength i++)
var feature = wfsFeatures[i]data
TODO obtener nombre de atributo del store
featurethe_geom = wfsFeatures[i]geometry
featurespush(feature)
return features
onWFSBBoxQuerySuccess function(wfsFeatures)
thisshowResults(wfsFeatures)
thismaskhide()
onWFSBBoxQueryFailure function(response)
thismaskhide()
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_error_realizar_consulta_bbox)
ExtMessageBoxERROR
)
showResults function(wfsFeatures)
var store
var tpl
var features = thisgetPreparedFeatures(wfsFeatures)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
161
if(thislayername == thisWFSLAYERS_ESTABLECIMIENTOS)
tpl = thistplEstablecimientos
store = thisstoreEstablecimientos
storeid = 0
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CONCENTRACIONES_COMERCIALES)
tpl = thistplAgrupaciones
store = thisstoreAgrupaciones
storeid = 1
thisfichaButtonshow()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername ==
thisWFSLAYERS_CAMARAS_COMERCIO)
tpl = thistplCamaras
store = thisstoreCamaras
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_ANTENAS_LOCALES)
tpl = thistplAntenas
store = thisstoreAntenas
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
else if(thislayername == thisWFSLAYERS_MUNICIPIOS)
tpl = thistplMunicipios
store = thisstoreMunicipios
storeid = 2
thisfichaButtonshow()
thisbuscarButtonhide()
thisstreetViewButtonhide()
else if(thislayername ==
thisWFSLAYERS_COMERCIOS_INNOVACION)
tpl = thistplComercios
store = thisstoreComercios
thisfichaButtonhide()
thisbuscarButtonshow()
thisstreetViewButtonshow()
storeremoveAll()
storeloadData(features)
thisdataViewtpl = tpl
thisdataViewsetStore(store)
doSearch function()
if(thisdataViewstore = null)
thisdataViewstoreremoveAll()
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
162
thismaskshow()
thiswfsManagergetFeaturesByBBOX(
thislayer
thisbounds
thisonWFSBBoxQuerySuccess
thisonWFSBBoxQueryFailure
this
)
show function(layer bounds)
if(layer ampamp bounds)
thislayer = layer
thiswinsetTitle(LocalegetText(txt_informacion)+
- +thislayername)
thisbounds = bounds
thisshowWindow()
thismask= new ExtLoadMask(thispanelbody)
thisdoSearch()
showWindow function()
thiswinshow()
thiswinexpand()
setFichaType function(param)
)
WindowESearchjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowESearch
ExtSearchAtlasWindowESearch = OpenLayersClass(
layer ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOS
wfsManager new IDEOLManagerWFS()
filterManager new IDEOLManagerFilter()
tabPanel null
columns ConfigExtSearchAtlasColumnsESTABLECIMIENTOS
panelNombre null
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
163
panelDireccion null
panelActividad null
panelAgrupacion null
buscarButton new ExtButton(
text LocalegetText(txt_buscar)
)
cerrarButton new ExtButton(
text LocalegetText(txt_cerrar)
)
win null
gridResultWindow null
initialize function(options)
OpenLayersUtilextend(this options)
thiscreateComponents()
thisprepareComponents()
createComponents function()
thiswfsManager = new IDEOLManagerWFS()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thistabPanel= new
ExtSearchAtlasPanelEstablecimientosTab()
thispanelNombre= new
ExtSearchAtlasPanelEstablecimientosNombre()
thispanelDireccion= new
ExtSearchAtlasPanelEstablecimientosDireccion()
thispanelActividad= new
ExtSearchAtlasPanelEstablecimientosActividad()
thispanelAgrupacion= new
ExtSearchAtlasPanelEstablecimientosAgrupacion()
thiswin= new ExtWindow(
layout fit
bodyStyle padding 2px 2px 2px
modal false
title
LocalegetText(msg_busqueda_establecimientos)
titleCollapse true
constrainHeader true
width 340
autoHeight true
expandOnShow true
maximizable false
collapsible true
resizable false
draggable true
closeAction hide
plain true
border false
items [thistabPanel]
buttons [thisbuscarButtonthiscerrarButton]
)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
164
prepareComponents function()
thistabPaneladd(thispanelNombre)
thistabPaneladd(thispanelDireccion)
thistabPaneladd(thispanelActividad)
thistabPaneladd(thispanelAgrupacion)
Eventos de componentes
thispanelNombrenombreTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thispanelDirecciondireccionTextFieldon(keypress
function(object event)
thiskeyEventHandler(object event)
this)
thisbuscarButtonon(click function()
thisdoSearch()
this)
thiscerrarButtonon(clickfunction()
thiswinhide()
this)
keyEventHandler function(object event)
if (eventgetCharCode() == eventENTER)
thisdoSearch()
getFilter function()
var filter = null
var filters = []
Nombre
var rotulo = null
rotulo = thispanelNombrenombreTextFieldgetValue()
if(rotulo = null ampamp rotulotrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
rotulo
+ rotulo +
false)
filterspush(filter)
Direccion
var provincia = null
provincia = thispanelDireccioncomboProvinciasgetValue()
if(provincia = null ampamp provinciatrim() = ampamp provincia
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
provincia
provincia
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
165
var municipio = null
municipio =
thispanelDireccioncomboMunicipiosgetValue()
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
municipio
false)
if(municipio = null ampamp municipiotrim() = ampamp
municipio = --- +LocalegetText(txt_seleccionar)+ ---)
filtervalue = municipio
else
filtervalue =
filterspush(filter)
var direccion = null
direccion =
thispanelDirecciondireccionTextFieldgetValue()
if(direccion = null ampamp direcciontrim() = )
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonLIKE
nomcall
+ direccion +
false)
filterspush(filter)
Actividad
var actividad = null
actividad =
thispanelActividadcomboActividadesgetValue()
if(actividad = null ampamp actividadtrim() = ampamp actividad
= --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
dactividad
actividad
false)
filterspush(filter)
Agrupacioacuten
var agrupacion = null
agrupacion =
thispanelAgrupacioncomboAgrupacionesgetValue()
if(agrupacion = null ampamp agrupaciontrim() = ampamp
agrupacion = --- +LocalegetText(txt_seleccionar)+ ---)
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
nom_agrup
agrupacion
false)
filterspush(filter)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
166
filter =
thisfilterManagergetLogicalFilter(OpenLayersFilterLogicalAND
filters)
return filter
doSearch function()
var filter = thisgetFilter()
thisgridResultWindowshow(thislayer thiscolumns
filter)
show function()
thiswinshow()
thiswinexpand()
thispanelNombrenombreTextFieldfocus(false 700)
CLASS_NAME ExtSearchAtlasWindowESearch
)
WindowGridResultjs
Extnamespace(ExtSearchAtlasWindow)
Class ExtSearchAtlasWindowGridResult2
ExtSearchAtlasWindowGridResult =
OpenLayersClass(IDEOLToolWFSResultsGrid
TEMPLATE_PATH_AGRUPACIONES
ConfigExtSearchAtlasTEMPLATE_PATH_AGRUPACIONES
TEMPLATE_PATH_ESTABLECIMIENTOS
ConfigExtSearchAtlasTEMPLATE_PATH_ESTABLECIMIENTOS
mask null
streetViewButton null
streetViewWindow null
filterManager new IDEOLManagerFilter()
Property fichaWindow
IDEOLToolHTMLTemplateView
fichaWindow null
fichaButton null
establecimientosManager null
initialize function(options)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
167
IDEOLToolWFSResultsGridprototypeinitializeapply(this[optio
ns])
thiscreateExtendedComponents()
thisprepareExtendedComponents()
createExtendedComponents function()
thisfichaWindow = new IDEOLToolHTMLTemplateView()
thisestablecimientosManager = new
ExtSearchAtlasManagerEstablecimientos()
thisfichaButton = new ExtButton(
text LocalegetText(txt_ficha)
handler function()
thisrequestShowFicha()
scope this
)
thisstreetViewWindow = ExtStreetViewWindowWindow
thisstreetViewButton = new ExtButton(
text LocalegetText(txt_streetview)
handler function()
thisshowStreetView()
scope this
)
prepareExtendedComponents function()
thiswinbuttonsunshift(thisfichaButton)
thiswinbuttonsunshift(thisstreetViewButton)
thiswinon(show function()
thismask = new ExtLoadMask(thisgridbody)
this)
showStreetView function()
var countRecords = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = null
if(recordslength == 1)
record = records[0]
else if(recordslength == 0 ampamp countRecords == 1)
record = thisgridstoregetAt(0)
if(record = null)
thisrequestGeometryForRecord(record)
else
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
168
LocalegetText(msg_seleccionar_registro_para_street_view)
ExtMessageBoxWARNING)
onWFSRequestGeometrySuccess function(wfsFeatures)
var geoms = thisgetGeometriesForFeatures(wfsFeatures)
if(geomslength gt 0)
var geom = geoms[0]
var bounds = geomgeometrygetBounds()
var lonlat = boundsgetCenterLonLat()
thisstreetViewWindowshow(lonlat
thislayerprojection)
thismaskhide()
requestGeometryForRecord function(record)
thismaskshow()
var fid = recorddatafid
TODO comprobar cual es el atributo de geometriacutea para la
capa
var attributes = [the_geom]
var filter = new OpenLayersFilterFeatureId(
fids [fid]
)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonWFSRequestGeometrySuccess
thisonWFSQueryFailure
this
)
Method onEstablecimientosWFSQuerySuccess
Muestra la ficha para la agrupacion una vez obtenidos los
establecimientos de la misma
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onEstablecimientosWFSQuerySuccess function(establecimientos)
thismaskhide()
thisagrupaciondataestablecimientos = []
if(establecimientoslength gt 0)
thisagrupaciondataestablecimientos =
establecimientos
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
169
thisfichaWindowshow(thislayername thisagrupacion
thisTEMPLATE_PATH_AGRUPACIONES)
Method requestEstablecimientosForAgrupacion
Parameters
idagrupacion - String Id de la agrupacioacuten sobre la que se
desea obtener todos los establecimientos
requestEstablecimientosForAgrupacion function(idagrupacion)
thismaskshow()
var attributes = [rotulo dactividad]
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
cod_agrup
idagrupacion
true)
thisestablecimientosManagergetEstablecimientos(
attributes
filter
thisonEstablecimientosWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method onCompleteFeatureWFSQuerySuccess
Obtiene las features de la consulta WFS
Muestra la ficha correspondiente con la feature obtenida
Parameters
wfsFeatures - Array(OpenLayersFeatureWFS) Features WFS
onCompleteFeatureWFSQuerySuccess function(wfsFeatures)
var completeFeature = null
thismaskhide()
if(wfsFeatureslength gt 0)
La ficha no necesita features preparadas Accede
al data de las mismas directamente
completeFeature = wfsFeatures[0]
var layerName = thislayername
if(layerName ==
ConfigExtSearchAtlasWFSLayersCONCENTRACIONES_COMERCIALESname)
thisagrupacion = completeFeature
thisrequestEstablecimientosForAgrupacion(thisagrupaciondatai
d)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
170
else if(layerName ==
ConfigExtSearchAtlasWFSLayersESTABLECIMIENTOSname)
thisfichaWindowshow(thislayername
completeFeature thisTEMPLATE_PATH_ESTABLECIMIENTOS)
Method requestCompleteFeature
Realiza una consulta WFS para obtener todos los atributos de
una geometriacutea dado su id
Parameters
id - String Valor del id de la feature
requestCompleteFeature function(id)
thismaskshow()
Todos los atributos
var attributes =
var filter = thisfilterManagergetComparisonFilter(
OpenLayersFilterComparisonEQUAL_TO
id
id
true)
thiswfsManagergetFeaturesByFilter(
thislayer
attributes
filter
thisonCompleteFeatureWFSQuerySuccess
thisonWFSQueryFailure
this
)
Method requestShowFicha
Solicita obtener la ficha para el registro seleccionado en el
grid
requestShowFicha function()
var cont = thisgridstoregetCount()
var records = thisgetSelectedRecords()
var record = records[0]
if(record == null ampamp cont gt 1)
IDEOLUtilUIshowMessageWindow(
LocalegetText(txt_informacion)
LocalegetText(msg_seleccionar_registro_para_ficha)
ExtMessageBoxWARNING)
Atlas Comercial de la Comunidad Valenciana ndash Anexo C Coacutedigo
171
else
if(cont == 1)
record = thisgridstoregetAt(0)
El grid muestra las features con los atributos
necesarios para el grid
Es necesario obtener todos los atributos de la
feature para la ficha
thisrequestCompleteFeature(recordget(id))
)
Atlas Comercial de la Comunidad Valenciana - Bibliografiacutea
172
10 Bibliografiacutea
La documentacioacuten del manejo de libreriacutea ExtJS se puede encontrar en la
URL httpdevsenchacomdeploydevdocs
Existen ademaacutes ejemplos muy praacutecticos para el desarrollo de interfaces
en la siguiente URL httpdevsenchacomdeploydevexamples
Informacioacuten referente al manejo de capas WMC para utilizarlas en la
impresioacuten 03-
036r2_Web_Map_Context_Documents_WMC_version_10pdf
Para el desarrollo del StreetView y otras aplicaciones de googles hay
informacioacuten relevante en la ayuda para este proyecto en esta URL
httpcodegooglecomintles-ESapismapsdocumentationjavascriptv2
Ayuda acerca de la libreriacutea OpenLayers se puede encontrar en la
siguiente URL httpdevopenlayersorgdocsfilesOpenLayers-jshtml
JasperReports for Java Developers (David R Hefflfinger) ndash Packt Publishing
httpwikiosgeoorgwikiOpenlayers_las_herramientas_disponibles_por_defecto
httpmapserverorgogc