Atlas Comercial Comunidad Valenciana

172
Autor del proyecto: Arturo Argilés Casasús ([email protected]) Director: Moisés Pastor Gadea Septiembre de 2010 Atlas Comercial Comunidad Valenciana

Transcript of Atlas Comercial Comunidad Valenciana

Page 1: 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

pdf

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

email

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

pdf

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

Page 2: 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

pdf

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

email

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

pdf

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

Page 3: Atlas Comercial Comunidad Valenciana

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

pdf

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

email

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

pdf

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

Page 4: Atlas Comercial Comunidad Valenciana

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

pdf

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

email

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

pdf

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

Page 5: Atlas Comercial Comunidad Valenciana

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

pdf

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

email

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

pdf

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

Page 6: Atlas Comercial Comunidad Valenciana

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

pdf

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

email

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

pdf

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

Page 7: Atlas Comercial Comunidad Valenciana

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

pdf

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

email

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

pdf

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

Page 8: Atlas Comercial Comunidad Valenciana

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

pdf

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

email

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

pdf

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

Page 9: Atlas Comercial Comunidad Valenciana

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

pdf

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

email

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

pdf

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

Page 10: Atlas Comercial Comunidad Valenciana
Page 11: Atlas Comercial Comunidad Valenciana
Page 12: Atlas Comercial Comunidad Valenciana
Page 13: Atlas Comercial Comunidad Valenciana
Page 14: Atlas Comercial Comunidad Valenciana
Page 15: Atlas Comercial Comunidad Valenciana
Page 16: Atlas Comercial Comunidad Valenciana
Page 17: Atlas Comercial Comunidad Valenciana
Page 18: Atlas Comercial Comunidad Valenciana
Page 19: Atlas Comercial Comunidad Valenciana
Page 20: Atlas Comercial Comunidad Valenciana
Page 21: Atlas Comercial Comunidad Valenciana
Page 22: Atlas Comercial Comunidad Valenciana
Page 23: Atlas Comercial Comunidad Valenciana
Page 24: Atlas Comercial Comunidad Valenciana
Page 25: Atlas Comercial Comunidad Valenciana
Page 26: Atlas Comercial Comunidad Valenciana
Page 27: Atlas Comercial Comunidad Valenciana
Page 28: Atlas Comercial Comunidad Valenciana
Page 29: Atlas Comercial Comunidad Valenciana
Page 30: Atlas Comercial Comunidad Valenciana
Page 31: Atlas Comercial Comunidad Valenciana
Page 32: Atlas Comercial Comunidad Valenciana
Page 33: Atlas Comercial Comunidad Valenciana
Page 34: Atlas Comercial Comunidad Valenciana
Page 35: Atlas Comercial Comunidad Valenciana
Page 36: Atlas Comercial Comunidad Valenciana
Page 37: Atlas Comercial Comunidad Valenciana
Page 38: Atlas Comercial Comunidad Valenciana
Page 39: Atlas Comercial Comunidad Valenciana
Page 40: Atlas Comercial Comunidad Valenciana
Page 41: Atlas Comercial Comunidad Valenciana
Page 42: Atlas Comercial Comunidad Valenciana
Page 43: Atlas Comercial Comunidad Valenciana
Page 44: Atlas Comercial Comunidad Valenciana
Page 45: Atlas Comercial Comunidad Valenciana
Page 46: Atlas Comercial Comunidad Valenciana
Page 47: Atlas Comercial Comunidad Valenciana
Page 48: Atlas Comercial Comunidad Valenciana
Page 49: Atlas Comercial Comunidad Valenciana
Page 50: Atlas Comercial Comunidad Valenciana
Page 51: Atlas Comercial Comunidad Valenciana
Page 52: Atlas Comercial Comunidad Valenciana
Page 53: Atlas Comercial Comunidad Valenciana
Page 54: Atlas Comercial Comunidad Valenciana
Page 55: Atlas Comercial Comunidad Valenciana
Page 56: Atlas Comercial Comunidad Valenciana
Page 57: Atlas Comercial Comunidad Valenciana
Page 58: Atlas Comercial Comunidad Valenciana
Page 59: Atlas Comercial Comunidad Valenciana
Page 60: Atlas Comercial Comunidad Valenciana
Page 61: Atlas Comercial Comunidad Valenciana
Page 62: Atlas Comercial Comunidad Valenciana
Page 63: Atlas Comercial Comunidad Valenciana
Page 64: Atlas Comercial Comunidad Valenciana
Page 65: Atlas Comercial Comunidad Valenciana
Page 66: Atlas Comercial Comunidad Valenciana
Page 67: Atlas Comercial Comunidad Valenciana
Page 68: Atlas Comercial Comunidad Valenciana
Page 69: Atlas Comercial Comunidad Valenciana
Page 70: Atlas Comercial Comunidad Valenciana
Page 71: Atlas Comercial Comunidad Valenciana
Page 72: Atlas Comercial Comunidad Valenciana
Page 73: Atlas Comercial Comunidad Valenciana
Page 74: Atlas Comercial Comunidad Valenciana
Page 75: Atlas Comercial Comunidad Valenciana
Page 76: Atlas Comercial Comunidad Valenciana
Page 77: Atlas Comercial Comunidad Valenciana
Page 78: Atlas Comercial Comunidad Valenciana
Page 79: Atlas Comercial Comunidad Valenciana
Page 80: Atlas Comercial Comunidad Valenciana
Page 81: Atlas Comercial Comunidad Valenciana
Page 82: Atlas Comercial Comunidad Valenciana
Page 83: Atlas Comercial Comunidad Valenciana
Page 84: Atlas Comercial Comunidad Valenciana
Page 85: Atlas Comercial Comunidad Valenciana
Page 86: Atlas Comercial Comunidad Valenciana
Page 87: Atlas Comercial Comunidad Valenciana
Page 88: Atlas Comercial Comunidad Valenciana
Page 89: Atlas Comercial Comunidad Valenciana
Page 90: Atlas Comercial Comunidad Valenciana
Page 91: Atlas Comercial Comunidad Valenciana
Page 92: Atlas Comercial Comunidad Valenciana
Page 93: Atlas Comercial Comunidad Valenciana
Page 94: Atlas Comercial Comunidad Valenciana
Page 95: Atlas Comercial Comunidad Valenciana
Page 96: Atlas Comercial Comunidad Valenciana
Page 97: Atlas Comercial Comunidad Valenciana
Page 98: Atlas Comercial Comunidad Valenciana
Page 99: Atlas Comercial Comunidad Valenciana
Page 100: Atlas Comercial Comunidad Valenciana
Page 101: Atlas Comercial Comunidad Valenciana
Page 102: Atlas Comercial Comunidad Valenciana
Page 103: Atlas Comercial Comunidad Valenciana
Page 104: Atlas Comercial Comunidad Valenciana
Page 105: Atlas Comercial Comunidad Valenciana
Page 106: Atlas Comercial Comunidad Valenciana
Page 107: Atlas Comercial Comunidad Valenciana
Page 108: Atlas Comercial Comunidad Valenciana
Page 109: Atlas Comercial Comunidad Valenciana
Page 110: Atlas Comercial Comunidad Valenciana
Page 111: Atlas Comercial Comunidad Valenciana
Page 112: Atlas Comercial Comunidad Valenciana
Page 113: Atlas Comercial Comunidad Valenciana
Page 114: Atlas Comercial Comunidad Valenciana
Page 115: Atlas Comercial Comunidad Valenciana
Page 116: Atlas Comercial Comunidad Valenciana
Page 117: Atlas Comercial Comunidad Valenciana
Page 118: Atlas Comercial Comunidad Valenciana
Page 119: Atlas Comercial Comunidad Valenciana
Page 120: Atlas Comercial Comunidad Valenciana
Page 121: Atlas Comercial Comunidad Valenciana
Page 122: Atlas Comercial Comunidad Valenciana
Page 123: Atlas Comercial Comunidad Valenciana
Page 124: Atlas Comercial Comunidad Valenciana
Page 125: Atlas Comercial Comunidad Valenciana
Page 126: Atlas Comercial Comunidad Valenciana
Page 127: Atlas Comercial Comunidad Valenciana
Page 128: Atlas Comercial Comunidad Valenciana
Page 129: Atlas Comercial Comunidad Valenciana
Page 130: Atlas Comercial Comunidad Valenciana
Page 131: Atlas Comercial Comunidad Valenciana
Page 132: Atlas Comercial Comunidad Valenciana
Page 133: Atlas Comercial Comunidad Valenciana
Page 134: Atlas Comercial Comunidad Valenciana
Page 135: Atlas Comercial Comunidad Valenciana
Page 136: Atlas Comercial Comunidad Valenciana
Page 137: Atlas Comercial Comunidad Valenciana
Page 138: Atlas Comercial Comunidad Valenciana
Page 139: Atlas Comercial Comunidad Valenciana
Page 140: Atlas Comercial Comunidad Valenciana
Page 141: Atlas Comercial Comunidad Valenciana
Page 142: Atlas Comercial Comunidad Valenciana
Page 143: Atlas Comercial Comunidad Valenciana
Page 144: Atlas Comercial Comunidad Valenciana
Page 145: Atlas Comercial Comunidad Valenciana
Page 146: Atlas Comercial Comunidad Valenciana
Page 147: Atlas Comercial Comunidad Valenciana
Page 148: Atlas Comercial Comunidad Valenciana
Page 149: Atlas Comercial Comunidad Valenciana
Page 150: Atlas Comercial Comunidad Valenciana
Page 151: Atlas Comercial Comunidad Valenciana
Page 152: Atlas Comercial Comunidad Valenciana
Page 153: Atlas Comercial Comunidad Valenciana
Page 154: Atlas Comercial Comunidad Valenciana
Page 155: Atlas Comercial Comunidad Valenciana
Page 156: Atlas Comercial Comunidad Valenciana
Page 157: Atlas Comercial Comunidad Valenciana
Page 158: Atlas Comercial Comunidad Valenciana
Page 159: Atlas Comercial Comunidad Valenciana
Page 160: Atlas Comercial Comunidad Valenciana
Page 161: Atlas Comercial Comunidad Valenciana
Page 162: Atlas Comercial Comunidad Valenciana
Page 163: Atlas Comercial Comunidad Valenciana
Page 164: Atlas Comercial Comunidad Valenciana
Page 165: Atlas Comercial Comunidad Valenciana
Page 166: Atlas Comercial Comunidad Valenciana
Page 167: Atlas Comercial Comunidad Valenciana
Page 168: Atlas Comercial Comunidad Valenciana
Page 169: Atlas Comercial Comunidad Valenciana
Page 170: Atlas Comercial Comunidad Valenciana
Page 171: Atlas Comercial Comunidad Valenciana
Page 172: Atlas Comercial Comunidad Valenciana