GZONAS: DEFINICION Y CREACION
INDICE DE TEMAS:
- ¿Que es una GZONA?.
- Los mapas y sus modulos de software asociados.
- Conceptos y definición de elementos básicos.
- La base de datos.
- ¿Que se necesita a niveles de servidor y cliente?.
- Parametros de servidor y uso de las MAPIs de Google.
- Creación de la base de datos de una GZONA.
- Poblar mapa con PTIs y polilineas.
- Elementos externos a la base de datos.
- El Panel de Control.
- RESUMEN DE PASOS A SEGUIR PARA LA CREACION DE UNA GZONA.
AVISO: Esta documentación ha quedado desfasada en algunos de sus apartados. Mi última revisión de la misma fué hace dos años. No he tenido ocasión de actualizarla.
- Angelo -
1.- ¿QUE ES UNA GZONA?.
Una gzona es una zona geográfica (aldea, pueblo, municipio, parque natural, etc.)
cuyos puntos de interés, limites, rutas de transporte, sendas/caminos turisticos, etc.
se presentan sobre un mapa interactivo basado en las map-APIs (MAPIs) de Google.
Un ejemplo se puede ver en gzona-ALDAN-HIO
Como se puede observar en ese ejemplo, la interactividad en cada punto permite:
- Mostrar el nombre del lugar y sus coordenadas geográficas (para aparato GPS).
- Leer notas acerca del lugar, monumento, parada o punto de senda.
- Mostrar vista (desde satelite), del area del punto ampliada al máximo.
- Ver una minifoto del punto sobre pequeña ventana.
- Escuchar una descripción almacenada en formato MP3 (para reproductor).
- Ver un video con info acerca del punto.
- Acceder a Información adicional acerca del punto.
Asimismo, se puede imprimir el mapa junto con lista asociada de puntos con sus
nombres, coordenadas y archivos audio. Dicho mapa, combinado con un aparato GPS y un reproductor MP3, permite que los turistas visiten cada punto de interés
y escuchen al mismo tiempo su descripción.
El conjunto de herramientas que se describen en los apartados de este documento,
permiten crear con suma facilidad gzonas similares. En esta versión inicial, dichas
herramientas, estan orientadas solamente, a trés posibles aspectos de una zona: a) La zona en si, con sus puntos de interés. b) Sus rutas de transporte. y c) Areas de senderismo. Sin embargo, en el trasfondo solo existe una herramienta/plantilla básica (el sistema de presentación y mantenimiento), la cual es paralelizable a otros tipos de areas geográficas. Por lo tanto este mismo sistema se puede usar/extender para la creación de gzonas en aplicaciones tales como: un poligono de bateas mejilloneras, la actualización en tiempo real de lugares de incendio en en épocas piromaniáticas,etc. Y, como no, la puntualización/señalización de rutas como las del Camino Jacobeo.
A todos aquellos desarrolladores web interesados en crear su propia
gzona, se les informa que el conjunto de herramientas se ofrece a todo aquel que lo pida a Angelo de Aldán-Hio (
angelogonza@gmail.com). Desde luego, agradecería se me envie info para mejoras, sugerencias o posibles "bugs" (que los tiene que haber, como nuestras meigas, ...de hecho, a pesar de su virtualidad, los "bugs" sí existen.).
Asimismo, para todos aquellos interesados en el tema, he creado un foro al que se
puede acceder via
Foros Google y una vez en esa página buscar grupo "gzonas" (de momento está casi vacio, crecerá conforme esto evolucione).
2.- LOS MAPAS Y SUS MODULOS DE SOFTWARE ASOCIADOS.
Para cada aspecto de una gzona se usan/presentan dos mapas:
- Mapa de presentación a usuario (MU).
- Mapa de mantenimiento (MM).
Y dado que en esta versión inicial, se consideran solo 3 aspectos (zona, rutas o sendas), se manejan por lo tanto 6 mapas. Cada uno de estos mapas es controlado por un modulo principal de software y varios auxiliares. Los nombres de esos 6 modulos principales son:
- usuario_zona.php
- manteni_zona.php
- usuario_rutas.php
- manteni_rutas.php
- usuario_sendas.php
- manteni_sendas.php
Una muestra de como se ha estructurado el soft para cubrir los apectos antes mencionados, se puede ver en: DIRECTORIOS GZONA. y el conjunto total de modulos en
MODULOS/ARCHIVOS GZONA.
3.- CONCEPTOS Y DEFINICION DE ELEMENTOS BASICOS.
Tanto los modulos de presentación a usuario como los de mantenimiento de una
gzona, manejan sobre el mapa, tres tipos básicos de elementos:
- Puntos de Interés (PTIs), resaltados por iconos (pequeñas imagenes de marcaje). Los hay de diferentes clases (según el tipo de mapa).
Pero hay uno, archivado bajo el nombre "cmz.png", que es común a todos los mapas. Se trata del primero que debe pulsar el usuario que visita un mapa de la gzona por primera vez (se abre una ventana informativa que explica el significado, o uso, de las diferentes clases de iconos.
- Ventanas informativas (InfoWindows). Normalmente se activan ("they pop up") al pulsar sobre un PTI. Cuando hay mas de una en un punto, se muestran pestañe-adas.
- Lineas poligonales usadas para limites, rutas, sendas, etc. y a las que
empecé por llamarles polilineas (traducción del inglés
"polylines"), y en este momento pienso debia haber traducido por "poligonales"
simplemente.
Por otro lado, a fin de facilitar la creación y mantenimiento de estas poligonales, los modulos de mantenimiento usan ademas, unos puntos simples (PTSs), con un minimo de datos (linea a la que pertenecen y posición en la misma). Estos PTSs no aparecen en los mapas presentados al usuario.
Muestras de las imagenes usadas para los iconos de marcaje, se pueden ver en
ICONOS PTI. e
ICONOS PTS.
Tambien es conveniente mencionar que, para los mapas de sendas, los
colores de los iconos PTI (asociados con la primera letra de su nombre: a, b, c,...),
se corresponden con los colores de las poliginales (especificadas por los números: 1, 2, ...). Esta correspondencia facilita la asignación de iconos PTI, del mismo color que la poligonal, sobre las sendas. Ahora bien, es una correspondencia asignada por defecto, lo cual no implica que el desarrollador tenga que atenerse a ella.
De hecho, para facilitar el uso de colores diferentes a los asignados, entre las herramientas se ha incluido
una que permite MODIFICAR COLORES Y NOMBRES DE POLILINEAS. Desde luego, si se usa esta herramienta, dicha correspondencia desaparecerá y si el desarrollador quiere mantenerla, pues...
simplemente... crea un nuevo conjunto de iconos PTI.
4.- LA BASE DE DATOS.
En las tablas de la base de datos se almacena toda la información asociada con PTIs y PTSs. Obviamente. la configuración de dichas tablas se ajusta a esos dos parametros: tipo de mapa y tipo de punto. De esta forma las tablas creadas por el
modulo que configura y crea la base de datos son las siguientes:
Mapa | Tabla PTIs | Tabla PTSs |
ZONAINI (zona en si) | pti_zona | pts_divideX |
RUTAS | pti_parada | pts_rutaX |
SENDAS | pti_senda | pts_sendaX |
El sufijo X en los nombres de las tablas PTSs representa el digito (1, 2, 3,..etc.) asociado con la Ruta, Senda o trozo de Divisoria. Su numero depende de los
valores puestos en el formulario donde se define la configuración de contenidos de la base de datos.
Por otro lado, con el fin de almacenar colores y nombres de las polilineas se crean
ademas las tres tablas siguientes:
-
names_rutas
-
names_sendas
-
names_dvisos
Por último, se crea la tabla "gzo_conf". Es precisamente en esta
tabla, donde se almacenan los parametros de configuración de contenidos y asimismo datos tales como: nombre de la zona, aumentos y coordenadas al inicio, etc.
En el apartado 7 se describe como se crean estas tablas, de forma automática, a
partir del mapa.
5.- ¿QUE SE NECESITA A NIVELES DE SERVIDOR Y CLIENTE?,
Esta primera versión de herramientas se ha desarrollado para un sistema cuyos componentes de soft son:
- Servidor: Apache/1.3.34
- Procesador del lenguaje de script PHP (a nivel de servidor): PHP 4.4.1
- Gestión BD (a nivel de servidor): MySQL
- Interpretadores de lenguajes HTML, XHTML y JavaScript (a nivel de cliente): Firefox, Google Chrome, Opera, Zafari, MS-IE, etc.
Los componentes del servidor pueden estar localizados en uno externo o bien localmente en el mismo PC de trabajo (actuando como servidor y cliente con acceso via localhost). De hecho, la solicitud de acceso a las map-APIs de Google (MAPIs) se puede obtener mediante registro para servidor externo o local. Este último caso facilita grandemente la creación de gzonas dado que no necesita la carga (uploading) continua de modulos prueba sobre un servidor externo.
NOTA1: Para su instalación local, esos componentes se pueden descargar como software libre. Se instalan, se hacen pruebas localmente y despues se FTP-ean
los modulos gzona a un servidor externo conectado a internet. Ahora bien, pudiera suceder que no se disponga de MySQL en ese servidor.
Para ese caso, se incluye una herramienta adicional que permite generar los datos automaticamente sobre archivos JavaScript (JS) que su vez se FTP-ean sobre el servidor (vease apartado 10).
Una vez instalados/disponibles dichos componentes, se deben copiar sobre el directorio web del servidor (local o externo), los modulos constitutivos de las herramientas (vease: MODULOS/ARCHIVOS GZONA.).
Ahora bien, antes de configurar la base de datos y comenzar las pruebas es necesario hacer las modificaciones descriptas en el apartado 6 (siguiente).
NOTA2: A nivel de cliente se han hecho pruebas con los navegadores Firefox, Netscape, Mozilla y MS-IE. No se ha probado con Opera, ni Safari, por no disponer de los mismos.
Agradecería alguien lo probase y me informase. El resultado de dichas pruebas es como sigue:
- No hay problemas con los mapas de presentación a usuario (los que ven los visitantes).
- En cuanto a los mapas de mantenimiento (los que usa el webmaster) funcionan
perfectamente con Mozilla y Firefox pero a MS-IE le disgustan. Tan pronto se encuentra con un caracter ASCII html-izable sin html-izar, en una variable JS, se le atraganta y... se cierra con raras explicaciones. La robustez de su interpretador del estandar ECMAScript, es pésima cuando se le compara con los originados por el grupo Mozilla. Y lo que es peor, no lleva incorporado un depurador de JS, hay que descargarlo e instalarlo. Mozilla y Firefox sí lo tienen y es muy útil en la depuración del código JS. De hecho, en el desarrollo de estas herramientas se ha usado solo Mozilla.
6.- PARAMETROS SERVIDOR Y USO DE LAS MAPIS DE GOOGLE.
Una vez instalados los modulos, se deben:
-
Poner los valores apropiados en las variables del archivo "gzona_db_access.php". Actualmente los valores por defecto son:
- $zdbserver = "localhost"; //Servidor
- $zusername = "root"; // Nombre usuario
- $zpassword = ""; // Contraseña
Esos valores sirven en la mayoría de los casos, pero para algunos servidores
puede que sean diferentes.
-
Solicitar la clave para poder usar las MAPIs de Google (es necesario tener cuenta de correo GMAIL). Una vez obtenida se debe poner en el archivo clv_google.js en el lugar donde dice: ¡ LA CLAVE DE GOOGLE SE PONE AQUI !. Un ejemplo de clave, es el siguiente (precedida por el URL fuente y otros parametros):
src="http://maps.google.com/maps?file=api&v=2&key=26ANGELO_HIOARemPjnt0m1wlRxb8vO2KohTGQ9MfKktMoh_BwXovKrdKXc2_RxSwuyq44j65OmXZ33j4wuqAohsi8g"
Dado que especifica el lugar donde está localizado un archivo del tipo JavaScript, debe de ir precedido del elemento <script type="text/javascript"> y terminado por </script> (ambos ya incluidos en el archivo a modificar).
NOTA: Para versión 3 de las APIs no se necesita usar clave para que funcionen correctamente, sin embargo se recomienda se solicite y use si se desea que Google informe de actualizaciones.
7.- CREACION DE LA BASE DE DATOS DE UNA GZONA.
Una vez hechas las modificaciones descriptas en el apartado anterior, el siguiente
paso es crear la configuración de los contenidos de la base de datos y las
tablas correspondientes a su estructura total.
Dicha configuración incluye: nombre de la zona, número de rutas, sendas y trozos de divisoria. Pero ademas, teniendo en cuenta, que toda gzona presenta inicialmente al visitante, un mapa a una escala dada y centrado sobre un punto geográfico determinado, esos dos parametros, tambien entran en
dicha configuración. Todos ellos se almacenan automaticamente en la llamada tabla de configuración (gzo_conf), al mismo tiempo que son usados para
crear la estructura total de la base de datos. ¿Como se crea dicha estructura?
La mejor forma de crearla es a partir de un formulario sobre el mismo mapa. Un ejemplo/muestra se puede ver en CREAR DB SOBRE MAPA.Tambien se puede hacer a través de un formulario que se incluye en el Panel de Control, pero en ese
caso, las coordenadas hay que introducirlas de forma manual.
El paso siguiente es crear la población de PTIs y PTSs (polilineas), lo cual
se explica en el apartado que sigue.
8.- POBLAR MAPA CON PTIs Y POLILINEAS.
La población de Puntos de Interés (PTIs) y Polilineas se crea usando
los modulos de mantenimiento, los cuales se ofrecen en dos modalidades: manual y
automática (a partir de datos recogidos con un aparato GPS). Normalmente para plasmar rutas de senderismo se combinan ambas modalidades. Primero se transfieren los datos de forma automática y después se ajustan de forma manual.
En este documento y a fin de explicar como se crean, modifican o eliminan dichos elementos poblacionales, se usará un modulo de mantenimiento manual de carácter didático, donde se combinan modulos de aplicación real con diapositivas, para contar una pequeña historia (geo-relato) usando las mismas herramientas como si fuese para gzonas. De esta forma, se muestra otro posibble uso de las mismas. A dicho demo se accede pulsando sobre DEMO MANTENIMIENTO. Las explicaciones (botón de AYUDA) que acompañan a ese demo dan suficiente idea de como gestionar dichos elementos poblacionales.
Y una vez almacenados los elementos en la base de datos (caso se tratase de la
aplicación real) se podría ver el resultado accediendo al mapa de usuario DEMO USUARIO.
Cuando se comparan los dos mapas (mantenimiento y usuario), se notarán como diferencias principales, las dos siguientes:
- La información, que se muestra al pulsar sobre los iconos PTI, es de
diferente formato para cada mapa.
- En el mapa de usuario se muestran solo las polilineas (en colores diferenciados). Los iconos PTS auxiliares, usados en mantenimiento, no se muestran.
En el Panel de Control (vease apartado 10) se incluyen varias utilidades que facilitan
el desarrollo. Entre ellas está la que muestra, mediante tablas, los conjuntos de datos PTI y PTS para cada aspecto de la gzona. Una muestra de las mismas, para estos mapas demo, se puede ver pulsando sobre LISTA DATOS DEMO.
9.- ELEMENTOS ADJUNTOS/EXTERNOS A LA BASE DE DATOS.
Como se explica en la ayuda para formularios del mapa de mantenimiento
(DEMO MANTENIMIENTO), algunos de los datos almacenados en la BD son referencias a archivos externos localizados en la estructura que define una gzona (DIRECTORIOS GZONA.). Del analisis de esa estructura y
como asimismo se indica en los formularios, se puede ver que,
los archivos asociados con cada PTI, se forman a partir de un nombre genérico seguido de una extensión. Dicha extensión determina su
formato que puede ser de varios tipos. En la presente versión se incluyen los siguientes:
- Imagenes del tipo ".png" para la pestaña de FOTOS,
(a insertar bajo el directorio "/fotos"). El tamaño máximo de las mismas es: 300px ancho por 200px alto. Si son mayores o menores, el navegador las ajusta, pero puede que pierdan calidad.
- Archivos de audio en formato ".mp3", para escuchar o descargar (a insertar bajo el directorio "/audio").
- Archivos de video en formato ".mpg" para ver o descargar (a insertar bajo el directorio "/video").
- Páginas ".html" con información adicional. (a insertar bajo el directorio "/masinfo")
Aparte de los iconos de marca, esos son los elementos (archivos) a añadir para cada PTI, y... si no se incluyen, no pasa nada. En otras palabras, no se presentará al visitante, el típico mensaje de: "Error 204: No se encontró la página". En caso de que alguno de esos archivos no exista, el sistema se encarga de que tampoco se le muestren los botones de acceso. Desde luego, cada vez que se añada o se elimine uno de ellos, es necesario decirle a la
base de datos que allí están (o que han desaparecido), y para ello
se debe de actualizar ejecutando la utilidad correpondiente (en el panel de control):
Dicha utilidad ejecuta la actualización y asimismo presenta una lista
de archivos presentes y ausentes para cada punto.
10.- EL PANEL CONTROL.
Como complemento a este conjunto de herramientas y a fin de facilitar su uso se
incluye un PANEL DE CONTROL con explicaciones.
Obviamente, la mayor parte de las opciones aperacionales que allí se muestran, solo estarán disponbles cuando se hayan instalado Apache, PHP y
MySQL, y creado la configuración de la BD.
NOTA: Para aquellos desarrolladores que no dispongan de MySQL en su
servidor externo, se ha creado un PANEL DE CONTROL (NO-MySQL).
11.- RESUMEN DE PASOS A SEGUIR PARA LA CREACION DE UNA GZONA.
En primer lugar lease este documento de pe a pa. Y despues...
- INSTALAR el servidor web Appache, procesador del lenguaje PHP y gestionador de base de datos MySQL.
- COPIAR las herramientas sobre el directorio web del servidor (vease apartado 5 de este documento).
- INTRODUCIR los parametros de acceso al servidor y clave para Google MAPIs
(vease apartado 6 de este documento).
- CREAR la base de datos (vease apartado 7 de este documento).
- USAR el PANEL DE CONTROL para acceder a mapas de mantenimiento y poblar los mismos con PTIs y Polilineas (vease apartado 10 de este documento).
- En paralelo con el paso anterior (o antes o despues), crear los elementos externos a la base de datos (vease apartado 9 de este documento). Asimismo, si se
desea, se pueden cambiar colores y nombres de las polilineas.
Y para los que carezcan de MySQL en su servidor externo, deben primero
crear la gzona localmente siguiendo estos mismos pasos y despues pasar a usar
el PANEL DE CONTROL (NO-MySQL) donde se explica con detalle como proceder.
Esto es todo a fecha de 04/29/2007.
Angelo Gonzalez de Aldan-Hio