Sie sind auf Seite 1von 180

cenidet

Centro Nacional de Investigacin y Desarrollo Tecnolgico


Departamento de Ciencias Computacionales

TESIS DE MAESTRA EN CIENCIAS EN CIENCIAS


DE LA COMPUTACIN

Generador de mapas croquis en formato SVG-Tiny para


dispositivos mviles aplicando perfiles
presentada por

Omar Ros Gonzlez


Ing. en Sistemas Computacionales por el I. T. de Minatitln

como requisito para la obtencin del grado de:


Maestra en Ciencias en Ciencias de la Computacin

Director de tesis:
Dr. Juan Gabriel Gonzlez Serna

Co-Director de tesis:
Dr. Hugo Estrada Esquivel

Jurado:
Dr. Javier Ortiz Hernndez Presidente
Dra. Azucena Montes Rendn Secretario
Dr. Jos Antonio Zarate Marceleo Vocal
Dr. Juan Gabriel Gonzlez Serna Vocal Suplente

Cuernavaca, Morelos, Mxico. Febrero de 2010


RESUMEN
En el presente documento se describe una metodologa para la generacin automtica de
mapas croquis en formato SVG-Tiny en el proyecto Generador de mapas tipos croquis en
formato SVG-Tiny para dispositivos mviles aplicando perfiles, se identifican las
caractersticas tcnicas del dispositivo celular que enva la solicitud para generar el mapa
en funcin de las caractersticas del dispositivo.
Este proyecto tiene como objetivo proporcionar servicios de bsquedas contextuales, para
localizar puntos de inters o prestadores de servicios que se encuentren cerca de la
ubicacin del usuario que realiza la consulta.
El resultado de estas consultas es un mapa de tipo croquis en formato vector escalable
grfico tiny (SVG-Tiny), el servicio utilizado para el envo de las solicitudes se realiza va
HTTP, el resultado de esta solicitud es enviado en un archivo SVG-Tiny que contiene el
mapa croquis mostrando los resultados de la bsqueda contextual, por medio de
conexiones HTTP, la parte innovadora de este trabajo es la adopcin de mtodos para
identificar el perfil del dispositivo celular y en funcin de sus capacidades es generado un
mapa a la medida.

ABSTRACT
This document describes a methodology for automatic generation of sketch maps in SVG-
Tiny format in the "Generator type-sketch maps in SVG-Tiny format for mobile devices
applying profiles", identifies the technical characteristics of the mobile device that sends
the request to generate the map based on device characteristics.

The objective of this project is to provide services of contextual searches to locate points
of interest or service providers that are near the location of the user who make the
consultation.

The result of these consultations is a type sketch map in format tiny scalable vector
graphics (SVG-Tiny), the service used for sending the request is performed via HTTP, the
result of this request is sent to a file SVG-Tiny containing the sketch map showing the
contextual search results through HTTP connections, the innovative part of this work is the
adoption of methods to identify the profile of mobile device and based on their capacities is
generated a map to the measure.
TABLA DE CONTENIDO

CAPTULO I INTRODUCCIN _______________________________________ 1


1. Introduccin __________________________________________________ 2
1.1 Descripcin del problema _________________________________________3
1.2 Objetivo ________________________________________________________3
1.3 Justificacin y beneficios__________________________________________4
1.4 Antecedentes ____________________________________________________5
1.5 Alcances y limitaciones ___________________________________________7
1.5.1 Alcances _____________________________________________________________ 7
1.5.2 Limitaciones __________________________________________________________ 7
1.6 Estado del arte___________________________________________________8
1.6.1 Desarrollo de servicios de rutas de mapas para celulares basados en G-XML ______ 8
1.6.2 Mapas adaptivos para aplicaciones mviles _________________________________ 9
1.6.3 Mejorando las direcciones de ruta en dispositivos mviles _____________________ 11
1.6.4 Sistema de soporte para contenido multimedia dinmico personalizado en dispositivos
mviles ___________________________________________________________________ 12
1.6.5 Visualizacin Adaptiva de informacin geogrfica en dispositivos mviles _________ 13
1.6.6 gvSIG para dispositivos mviles _________________________________________ 14
1.6.7 Sistema de Informacin Geogrfica basado en SVG _________________________ 15
1.6.8 Procesando datos interoperables por Aplicaciones Geoespaciales Mviles _______ 16
1.6.9 Tabla comparativa del estado del arte _____________________________________ 19

1.7 Organizacin del documento ______________________________________20


CAPTULO II MARCO TERICO ____________________________________ 21
2. Marco terico ________________________________________________ 22
2.1 Mapa tipo croquis _______________________________________________22
2.2 LBS. Servicios basados en localizacin _____________________________22
2.2.1 Componentes de los LBS _______________________________________________ 23
2.2.2 Funcionamiento ______________________________________________________ 24
2.2.3 Clasificacin _________________________________________________________ 24

2.3 Sistema de informacin geogrfica_________________________________26


2.3.1 GIS Vectoriales _______________________________________________________ 27
2.3.2 GIS Raster __________________________________________________________ 28

2.4 Imgenes Grficos Vectoriales Escalables (SVG) _____________________29


2.5 Mensajera SMS _________________________________________________30
2.6 Mensajera MMS ________________________________________________31

i
CAPTULO III ANLISIS Y DISEO __________________________________ 33
3. Anlisis y diseo _____________________________________________ 34
3.1 Anlisis________________________________________________________34
3.1.1 Arquitectura del generador de mapas croquis _______________________________ 34
3.1.2 Base de datos espacial ________________________________________________ 35
3.1.3 Algoritmo de ruta _____________________________________________________ 39
3.1.4 Casos de uso de la aplicacin mvil SketchMap4U __________________________ 42
3.1.4.1 Caso de uso general ______________________________________________ 42
3.1.4.2 Caso de uso: Configurar RMS _______________________________________ 43
3.1.4.3 Caso de uso: Construir peticin HTTP _________________________________ 48
3.1.4.4 Caso de uso: Enviar peticin HTTP ___________________________________ 49
3.1.5 Casos de uso de la aplicacin web SketchMapServer ________________________ 50
3.1.5.1 Casos de uso general______________________________________________ 50
3.1.5.2 Caso de uso: recibir peticin HTTP ___________________________________ 51
3.1.5.3 Caso de uso: Interpretar peticin HTTP ________________________________ 52
3.1.5.4 Caso de uso: Generar mapa SVG-Tiny ________________________________ 53
3.1.5.5 Caso de uso: Enviar mapa SVGTiny __________________________________ 61

3.2 Diseo ________________________________________________________62


3.2.1 Paquetes diseados ___________________________________________________ 63
3.2.1.1 Paquete mx.edu.cenidet.gateway.database ____________________________ 63
3.2.1.2 Paquete mx.edu.cenidet.gateway.maps _______________________________ 64
3.2.1.3 Paquete mx.edu.cenidet.gateway.maps.coordinates ______________________ 67
3.2.1.4 Paquete mx.edu.cenidet.gateway.servlet_______________________________ 69
3.2.1.5 Paquete mx.edu.cenidet.gateway.mobiledevice _________________________ 70
3.2.1.6 Paquete mx.edu.cenidet.gateway.routing ______________________________ 71
3.2.1.7 Paquete mx.edu.cenidet.gateway.SVGTiny _____________________________ 72

3.3 Base de datos MobileDevice ______________________________________74


3.3.1 DeviceMine v3.0 ______________________________________________________ 74
3.3.2 DeviceAtlas __________________________________________________________ 74
3.3.3 WURFL (Wireless Universal Resource File) ________________________________ 75

CAPTULO IV IMPLEMENTACIN __________________________________ 77


4. Implementacin ______________________________________________ 78
4.1 Recibir peticin HTTP ____________________________________________78
4.2 Interpretar la peticin HTTP _______________________________________79
4.3 Conexin a las bases de datos ____________________________________79
4.3.1 Obtener el perfil del dispositivo mvil ______________________________________ 81
4.3.2 Obtener puntos de inters ______________________________________________ 82
4.3.3 Obtener puntos de referencia ____________________________________________ 83
4.4 Generar mapa SVGTiny __________________________________________84

ii
4.5 Enviar mapa SVGTiny ____________________________________________94
CAPTULO V PRUEBAS Y RESULTADOS ____________________________ 95
5. Pruebas y resultados__________________________________________ 96
5.1 Realizacin de las pruebas _______________________________________96
5.2 Evaluacin de los resultados _____________________________________102
CAPTULO VI CONCLUSIONES ____________________________________ 103
6.1 Conclusiones __________________________________________________104
6.2 Aportaciones __________________________________________________105
6.3 Problemas encontrados _________________________________________105
6.4 Trabajos futuros _______________________________________________106
6.5 Publicaciones _________________________________________________108
ANEXOS ______________________________________________________ 109
ANEXO A Anlisis para representar puntos de inters ________________ 110
ANEXO B Estudio de plataformas mviles __________________________ 119
ANEXO C Plan de pruebas _______________________________________ 131
ANEXO D Scalable Vector Graphics (SVG) __________________________ 152
REFERENCIAS _________________________________________________ 163

iii
Listado de figuras
Figura 1-1 Usuarios de dispositivos mviles por cada 100 habitantes _______________________ 4
Figura 1-2 Representacin del servicio de rutas ________________________________________ 8
Figura 1-3 Procedimiento para generar la ruta del mapa _________________________________ 9
Figura 1-4 Segmento de ruta presentado va Web _____________________________________ 11
Figura 1-5 Descripcin de ruta _____________________________________________________ 11
Figura 1-6 Navegacin de mapas en PDA (CityMap) ___________________________________ 12
Figura 1-7 Arquitectura de MM4U __________________________________________________ 13
Figura 1-8 Interfaz de usuario de gvSIG Mobile _______________________________________ 14
Figura 1-9 Sincronizacin de datos desde gvSIG desktop _______________________________ 15
Figura 1-10 Arquitectura de GIAS __________________________________________________ 16
Figura 1-11 Creacin de archivo SVG _______________________________________________ 16
Figura 1-12 Arquitectura para integrar aplicaciones mviles especificando dispositivos al SDI ___ 17
Figura 1-13 Principales componentes del prototipo del cliente mvil _______________________ 18
Figura 1-14 Representacin y visualizacin de datos ___________________________________ 18
Figura 2-1 Representacin de un Mapa tipo croquis ____________________________________ 22
Figura 2-2 reas que conforman los LBS ____________________________________________ 22
Figura 2-3 Componentes bsicos LBS ______________________________________________ 23
Figura 2-4 Funcionamiento LBS____________________________________________________ 24
Figura 2-5 Clasificacin de los LBS _________________________________________________ 25
Figura 2-6 Operaciones de geometra _______________________________________________ 27
Figura 2-7 Representacin de un mapa vectorial ______________________________________ 28
Figura 2-8 Representacin de un mapa rster ________________________________________ 28
Figura 2-9 Perfiles SVG __________________________________________________________ 30
Figura 2-10 Estructura de un mensaje SMS. __________________________________________ 30
Figura 2-11 Esquema de composicin de pginas en un mensaje MMS. ____________________ 31
Figura 3-1 Arquitectura del generador de mapas croquis en un contexto de cliente/servidor ____ 34
Figura 3-2 Tablas de metadatos de la especificacin OpenGIS ___________________________ 36
Figura 3-3 Representacin de un BBOX _____________________________________________ 37
Figura 3-4 Algoritmo de Dijkstra ____________________________________________________ 40
Figura 3-5 Representacin del rea de inters ________________________________________ 40
Figura 3-6 Aristas y nodos del rea de inters ________________________________________ 41
Figura 3-7 Grafo con los nodos inferidos _____________________________________________ 41
Figura 3-9 Diagrama de flujo del proceso de obtencin de la ruta _________________________ 42
Figura 3-8 Ruta obtenida del algoritmo de Dijkstra _____________________________________ 42
Figura 3-10 Diagrama general de los casos de uso de la aplicacin SketchMap4U ____________ 43
Figura 3-11 Diagrama de caso de uso: CU1 Configurar RMS _____________________________ 43
Figura 3-12 Diagrama de actividad del caso de uso: CU1 Configurar RMS __________________ 44
Figura 3-13 Diagrama de actividad del caso de uso: CU1.1 Crear RMS ____________________ 45
Figura 3-14 Diagrama de actividad del caso de uso: CU1.2 Leer RMS _____________________ 46
Figura 3-15 Diagrama de actividad del caso de uso: CU1.3 Actualizar RMS _________________ 47
Figura 3-16 Diagrama de caso de uso: CU2 Construir peticin HTTP ______________________ 48
Figura 3-17 Diagrama de actividad del caso de uso: CU2 Construir peticin HTTP ____________ 48
Figura 3-18 Diagrama de caso de uso: CU3 Enviar trama _______________________________ 49
Figura 3-19 Diagrama de actividad del caso de uso: CU3 Enviar trama _____________________ 49

iv
Figura 3-20 Diagrama general de casos de uso de la aplicacin SketchMapServer ___________ 50
Figura 3-21 Diagrama de caso de uso: CU4 Recibir peticin HTTP ________________________ 51
Figura 3-22 Diagrama de actividad del caso de uso: CU4 Recibir peticin HTTP _____________ 51
Figura 3-23 Diagrama de caso de uso: CU5 Interpretar peticin HTTP _____________________ 52
Figura 3-24 Diagrama de actividad del caso de uso: CU5 Interpretar peticin HTTP ___________ 53
Figura 3-25 Diagrama de caso de uso: CU6 Generar mapa SVGTiny ______________________ 53
Figura 3-26 Diagrama de actividad del caso de uso: CU6.1 Obtener perfil del dispositivo _______ 54
Figura 3-27 Diagrama de caso de uso: CU6.2 Crear imagen SVGTiny _____________________ 55
Figura 3-28 Diagrama de actividad del caso de uso: CU6.2.1 Obtener mapa SVG ____________ 56
Figura 3-29 Diagrama de actividad del caso de uso: CU6.2.2 Convertir SVG a SVGTiny _______ 57
Figura 3-30 Diagrama de actividad del caso de uso: CU6.2.3 Generar ruta __________________ 58
Figura 3-31 Diagrama de actividad del caso de uso 6.2.4 Obtener puntos de referencia________ 59
Figura 3-32 Diagrama de actividad del caso de uso: CU6.2.5 Agregar datos al SVGTiny _______ 60
Figura 3-33 Diagrama de caso de uso: CU7 Enviar mapa SVGTiny ________________________ 61
Figura 3-34 Diagrama de actividad del caso de uso: CU7 Enviar mapa SVGTiny _____________ 61
Figura 3-35 Diagrama general de paquetes del generador de mapas croquis SVGTiny ________ 62
Figura 3-36 Diagrama de clases del paquete mx.edu.cenidet.gateway.database _____________ 63
Figura 3-37 Diagrama de secuencia para una conexin a postgres ________________________ 64
Figura 3-38 Diagrama de clases del paquete mx.edu.cenidet.gateway.maps ________________ 65
Figura 3-39 Diagrama de secuencia para la obtencin del mapa SVG ______________________ 66
Figura 3-40 Diagrama de secuencia para la obtencin de los datos del SVGTiny _____________ 67
Figura 3-41 Diagrama de clases del paquete mx.edu.cenidet.gateway.maps.coordinates_______ 68
Figura 3-42 Diagrama de secuencia para convertir coordenadas UTM y georeferenciales ______ 69
Figura 3-43 Diagrama de clases del paquete mx.edu.cenidet.gateway.servlets _______________ 69
Figura 3-44 Diagrama de secuencia para dar al servlet el mapa SVGTiny ___________________ 70
Figura 3-45 Diagrama de clases del paquete mx.edu.cenidet.edu.gateway.mobiledevice _______ 70
Figura 3-46 Diagrama de secuencia para la obtencin del dispositivo mvil _________________ 71
Figura 3-47 Diagrama de clases del paquete mx.edu.cenidet.gateway.routing _______________ 71
Figura 3-48 Diagrama de secuencia para generar la ruta mnima _________________________ 72
Figura 3-49 Diagrama de clases del paquete mx.edu.cenidet.gateway.SVGTiny ______________ 73
Figura 3-50 Diagrama de actividad para crear el mapa SVGTiny __________________________ 73
Figura 3-51 Diagrama relacional de la base de datos MobileDevice ________________________ 76
Figura 4-1 Recepcin de la peticin HTTP. ___________________________________________ 79
Figura 4-2 Interpretacin de la peticin HTTP _________________________________________ 79
Figura 4-3 Conexin a la base de datos Postgres ______________________________________ 80
Figura 4-4 Conexin a la extensin PostGIS de la base de datos Postgres __________________ 80
Figura 4-5 Ejemplo de conexin a la base de datos ____________________________________ 81
Figura 4-6 Obtencin del perfil del dispositivo mvil ____________________________________ 82
Figura 4-7 Obtencin de los puntos de inters ________________________________________ 83
Figura 4-8 Obtencin de los puntos de referencia ______________________________________ 84
Figura 4-9 Obtencin del mapa SVGTiny ____________________________________________ 86
Figura 4-10 Generacin y obtencin del rea de inters (BBOX) __________________________ 87
Figura 4-11 Obtencin del mapa SVG _______________________________________________ 88
Figura 4-12 Conversin SVG a SVGTiny _____________________________________________ 89
Figura 4-13 Obtencin de la ruta ___________________________________________________ 90
Figura 4-14 Conversin de coordenadas georeferenciales a pixeles _______________________ 91

v
Figura 4-15 Ejemplo para convertir coordenadas georeferenciales a pixeles _________________ 92
Figura 4-16 Mtodos de elementos que se agregan al mapa SVGTiny _____________________ 93
Figura 4-17 Mtodos para agregar datos al mapa SVGT ________________________________ 94
Figura 4-18 Enviar el mapa SVGT al dispositivo mvil __________________________________ 94
Figura 5-1 Parmetros de conexin para el MBDR PostgreSQL __________________________ 97
Figura 5-2 Parmetros de conexin de la extensin PostGIS SBLAGWMMS ________________ 97
Figura 5-3 Interpretacin del mensaje recibido ________________________________________ 97
Figura 5-4 Perfil del dispositivo mvil ________________________________________________ 98
Figura 5-5 Proceso de obtencin del mapa imagen en consola ___________________________ 99
Figura 5-6 Mapa obtenido ________________________________________________________ 99
Figura 5-7 Representacin de la ruta en nodos ________________________________________ 99
Figura 5-8 Visualizacin de la ruta mediante Netbeans ________________________________ 100
Figura 5-9 Obtencin de los POR(Point of Reference - puntos de referencia) _______________ 100
Figura 5-10Visualizacin del proceso de una peticin del servicio de taxis. _________________ 101

Listado de tablas
Tabla 1-1 Costos de mensajera de las telefnicas en Mxico, 2009 ________________________ 5
Tabla 1-2 Comparativa de los trabajos del estado del arte _______________________________ 19
Tabla 2-1 Necesidades de los usuarios mviles _______________________________________ 25
Tabla 3-1 Descripcin del caso de uso: CU1 Configurar RMS ____________________________ 44
Tabla 3-2 Descripcin del caso de uso: CU1.1 Crear RMS _______________________________ 45
Tabla 3-3 Descripcin del caso de uso: CU1.2 Leer RMS _______________________________ 46
Tabla 3-4 Descripcin del caso de uso: CU1.3 Actualizar RMS ___________________________ 47
Tabla 3-5 Descripcin del caso de uso: CU2 Construir peticin HTTP ______________________ 48
Tabla 3-6 Descripcin del caso de uso: CU3 Enviar trama _______________________________ 49
Tabla 3-7 Descripcin del caso de uso: CU4 Recibir peticin HTTP ________________________ 51
Tabla 3-8 Descripcin del caso de uso: CU5 Interpretar peticin HTTP _____________________ 52
Tabla 3-9 Descripcin del caso de uso: CU6.1 Obtener perfil del dispositivo mvil ____________ 53
Tabla 3-10 Descripcin del caso de uso: CU6.2.1 Obtener mapa SVG _____________________ 55
Tabla 3-11 Descripcin del caso de uso: CU 6.2.2 Convertir SVG a SVGTiny ________________ 56
Tabla 3-12 Descripcin del caso de uso: CU6.2.3 Generar ruta ___________________________ 57
Tabla 3-13 Descripcin del caso de uso: CU6.2.4 Obtener puntos de referencia ______________ 58
Tabla 3-14 Descripcin del caso de uso: CU6.2.5 Agregar datos al SVGTiny ________________ 59
Tabla 3-15 Descripcin del caso de uso: CU7 Enviar mapa SVGTiny ______________________ 61
Tabla 3-16 Descripcin de los paquetes de la aplicacin SketchMapServer. _________________ 62
Tabla 3-17 Comparacin de los repositorios de dispositivos mviles _______________________ 75
Tabla 3-18 Descripcin de las de la base de datos MobileDevice _________________________ 76
Tabla 5-1 Evaluacin de resultados ________________________________________________ 102

vi
GLOSARIO
API Application Programming Interface. Interfaz de programacin de
aplicacin. Es el conjunto de funciones y procedimientos que ofrece cierta
librera para ser utilizado por otro software como una capa de abstraccin.
Representa una interfaz de comunicacin entre componentes de software.

BDE Base de Datos Espacial. Provee todos los servicios de los Sistemas
manejadores de bases de datos relacionales y una administracin efectiva
y eficiente de datos espaciales

BBOX Bounding BOX. Es un rectngulo orientado por lneas x-y, contiene un


conjunto de datos geogrficos especificado por dos coordenadas: xmin,
ymin and xmax, ymax.

Capa Unidad bsica de informacin geogrfica que puede solicitarse a un


servidor como un mapa.

Cartografa La cartografa es la creacin, la produccin y el estudio de mapas. Se


considera una subdisciplina de la geografa.

CDMA Code Division Multiple Access. El acceso mltiple por divisin de cdigo o
CDMA es un trmino genrico para varios mtodos de multiplexacin o
control de acceso al medio basados en la tecnologa de espectro
extendido (spread spectrum). Generalmente se emplea en
comunicaciones inalmbricas (por radiofrecuencia), aunque tambin
puede usarse en sistemas de fibra ptica o de cable.

DBMS Sistema Manejador de bases de datos.

Gateway Hardware o software que realiza la conversin de protocolos entre


diferentes tipos de redes.

GIS Geographic Information System. Los sistemas de informacin geogrfica


son una integracin organizada de hardware, software, datos geogrficos
y personal, diseado para capturar, almacenar, manipular, analizar y
desplegar en todas sus formas la informacin geogrficamente
referenciada con el fin de resolver problemas complejos de planificacin y
gestin.

GPS Global Positioning System. Sistema de Posicionamiento Global. Sistema


Global de Navegacin por Satlite que permite determinar en todo el
mundo la posicin de un objeto.

GPRS General Packet Radio Service. Es un servicio de datos mvil orientado a


paquetes. Est disponible para los usuarios del Sistema Global para
Comunicaciones Mviles (GSM). Permite velocidades de transferencia de
56 a 114 Kbps.
GSM Global System for Mobile communications. Es un sistema estndar para
comunicacin utilizando telfonos mviles que incorporan tecnologa
digital.

HTTP HyperText Transfer Protocol. Es un protocolo orientado a transacciones


Web y sigue el esquema peticin-respuesta entre un cliente y un servidor.

IEEE Institute of Electrical and Electronics Engineers. Instituto de Ingenieros


Elctricos y Electrnicos, una asociacin tcnico-profesional mundial
dedicada a la estandarizacin, entre otras cosas. Es la mayor asociacin
internacional sin fines de lucro formada por profesionales de las nuevas
tecnologas, como ingenieros de telecomunicaciones, ingenieros
electrnicos, Ingenieros en informtica e Ingenieros en computacin.

JCP Java Community Process. Es un proceso formalizado que permite a las


partes interesadas involucrarse en la definicin de futuras versiones y
caractersticas de la plataforma Java.

JSR Java Specification Request. Son documentos formales que describen las
especificaciones y tecnologas propuestas para que sean aadidas a la
plataforma Java.

LBS Location Based Service. Ofrecen un servicio personalizado a los usuarios


basado en su informacin de ubicacin geogrfica. Para su operacin
utiliza tecnologa de sistemas de informacin geogrfica, alguna
tecnologa de posicionamiento y tecnologa de comunicacin de redes
para transmitir informacin hacia una aplicacin LBS que pueda procesar
y responder la solicitud.

Mapa Representacin de dos dimensiones de la distribucin espacial de


fenmenos o de objetos. Por ejemplo, un mapa puede demostrar la
localizacin de ciudades, de gamas de la montaa, de los ros, o de los
tipos de roca en una regin dada. La mayora de los mapas son planos,
haciendo su produccin, almacenamiento y manipulacin relativamente
fcil. Los mapas presentan su informacin al espectador en una escala
reducida. Son ms pequeos que el rea que representan y usan las
relaciones matemticas para mantener relaciones geogrficas
proporcionalmente exactas entre los puntos. Los mapas muestran la
informacin usando los smbolos que se identifican en una leyenda.

Mapa croquis Se define como una representacin grfica de la ubicacin exacta de una
direccin o lugar que se est localizando por medio de coordenadas o
puntos de referencia, bsicamente se utiliza para localizar una direccin
en particular. Los puntos de inters que se muestran en el mapa sirven
como referencia visual para orientar al usuario, presentndose la ruta con
la informacin pertinente representada mediante smbolos y textos.
MIDP Mobile Information Device Profiles. Perfil para dispositivos mviles de
informacin.

MMS Multimedia Messaging Service. Servicio de mensajera multimedia. Es un


estndar de para los sistemas de mensajera de las telefonas celulares
que permite el envo de mensajes que incluyen objetos de multimedia
tales como: imgenes, audio, video y texto enriquecido.

PostGIS Mdulo que aade soporte de objetos geogrficos a la base de datos


objeto relacional PostgreSQL para su utilizacin en Sistema de
Informacin Geogrfica. Se publica bajo la GNU (General Public License).

PostgreSQL Servidor de base de datos libre desarrollado en su primera versin con el


nombre de Ingres, proyecto desarrollado en la universidad de Berkeley.
Considerado como el referente a los sistemas manejadores de base de
datos libres.

Shapefile Formato de archivo de tipo vectorial con extensin .shp desarrollado por la
empresa Esri para la representacin de la informacin a travs de
geometras y un sistema de referencia espacial.

SRS Spatial Referencing System or Coordinate Reference System (CRS) es


un sistema de coordenadas locales, regionales o globales usados para
localizer entidades geogrficas.

SVG Es un lenguaje para describir grficos bidimensionales en XML. Soporta


tres tipos de objetos grficos: figuras vectoriales (por ejemplo rutas
formadas por lneas rectas y curvas), imgenes y texto. Estos objetos se
pueden agrupar, estilizar, transformar y componer en nuevos objetos
previamente representados.

URL Uniform Resource Locator. Es una secuencia de caracteres, de acuerdo a


un formato estndar, que se usa para nombrar recursos como
documentos e imgenes en Internet para su localizacin.

URI Uniform Resource Identifier. Es una cadena corta de caracteres que


identifica inequvocamente un recurso (servicio, pgina, documento,
direccin de correo electrnico, enciclopedia, etc.). Normalmente estos
recursos son accesibles en una red o sistema.

WAP Wireless Application Protocol. Es un estndar abierto internacional para


aplicaciones que utilizan las comunicaciones inalmbricas, p.ej. acceso a
servicios de Internet desde un telfono mvil.

Wi-Fi Es un sistema de envo de datos sobre redes computacionales que utiliza


ondas de radio en lugar de cables.
WMA Wireless Messaging API. Es un paquete opcional para J2ME que
proporciona acceso independiente de la plataforma a recursos de
comunicacin inalmbrica como SMS.

WMS Servicio de Mapas en Web (Web Map Service por sus siglas en ingls) es
una especificacin definida por la OGC caracterizada por ser un servicio
que provee mapas a travs de la Web. Estos mapas tienen como fuente
de informacin datos vectoriales y rster.

XML eXtensible Markup Language. Lenguaje de marcado extensible. Es un


meta-lenguaje que permite definir lenguajes de marcado adecuados a
usos determinados. En la prctica corresponde a un estndar que permite
a diferentes aplicaciones interactuar entre s a travs de una red.
CAPTULO I
INTRODUCCIN
En este captulo se presenta una visin general del tema de investigacin, se describe la
problemtica que se abord, el objetivo, la justificacin, los beneficios, los alcances y las
limitaciones del proyecto de tesis. Adems se muestra la investigacin del estado del arte
realizado y la organizacin general del documento.
Captulo I Introduccin

1. Introduccin
Actualmente las interacciones con las aplicaciones mviles son limitadas por las
restricciones propias de los dispositivos, teniendo los desarrolladores el reto de disear
sistemas de mapas para dispositivos mviles, tomando en consideracin las restricciones
conocidas para desarrollar aplicaciones de utilidad y de gran impacto en los usuarios.
Las restricciones de los dispositivos incluyen las limitaciones del tamao de pantalla que
muestra el contenido de mapas descritos por un conjunto de datos, el bajo ancho de
banda para la transmisin de datos que son utilizados para renderizar1 los mapas y el
pobre poder computacional para procesar los datos, [Hampe, 2005].
Es por ello que las investigaciones con respecto a las cuestiones de diseo, interaccin y
elaboracin de modelos de los servicios de mapas mviles se han incrementado,
dominando los estilos de presentacin en los dispositivos mviles, as como las diversas
formas de adaptacin y comunicacin entre los mismos.
La comunicacin a travs de dispositivos mviles ha mostrado un crecimiento interesante
como resultado de la facilidad de manejo, la reduccin del costo y la disponibilidad de
servicios, abarcando un sector importante en la sociedad. Como resultado del crecimiento
en el uso de dispositivos mviles han surgido nuevas tecnologas y servicios basados en
la ubicacin del usuario, es decir, servicios basados en localizacin (LBS pos sus siglas
en ingls), [LBSWiki, 2009].
Cabe sealar que las aplicaciones implementadas son apoyadas por servicios web, as
como la mayora de las investigaciones realizadas a la fecha estn enfocadas a los
sistemas de navegacin utilizando dispositivos GPS (Global Positioning System)
[GPSWiki, 2009] para la transmisin de datos georeferenciales, desarrollando con ello
aplicaciones LBS.
Se propone una innovadora combinacin de tecnologas de informacin dependiente de la
ubicacin del usuario, para ofrecer un nuevo tipo de servicios multimedia mvil de valor
agregado. El estudio muestra que los nuevos servicios mviles se pueden desarrollar
utilizando informacin sobre la localizacin.
En la investigacin de los servicios que prestan los principales proveedores de tecnologa
mvil, se puede observar que este trabajo de investigacin abarc todos los servicios con
los que se cuenta actualmente en Mxico.
El resultado de las consultas realizadas por el usuario es un mapa de tipo croquis en
formato vector escalable grfico tiny [SVG, 2009], se utilizaron conexiones HTTP para
brindar el servicio de envo y recepcin, el resultado es un archivo en formato SVG-Tiny
que contiene un mapa tipo croquis que muestra los resultados de la bsqueda contextual,
la parte innovadora de este trabajo es la adopcin de mtodos para identificar el perfil del
dispositivo celular y en funcin de sus capacidades se genera un mapa a la medida.

1
El concepto de renderizar en campo de los grficos por computadora define el proceso de creacin de
imgenes sintticas.
Pgina 2
Captulo I Introduccin

1.1 Descripcin del problema


Hoy en da las comunicaciones por medio de conexiones HTTP y los servicios de
multimedia MMS son explotados en el envo de diversos tipos de informacin, tales como:
imgenes estticas dinmicas con texto plano, videos, entre otros.
Asimismo los servicios basados en localizacin (LBS) estn siendo explotados en el rea
de la telefona celular, especficamente en consultas contextuales la respuesta que
obtiene el usuario es enviado mediante mensajes SMS. En el rea de Sistemas
Distribuidos de CENIDET se desarroll una API para la gestin de mapas de navegacin
en dispositivos mviles, mediante el sistema GPS y mensajera SMS/MMS, haciendo falta
una aplicacin en el lado del servidor que proporcione los mapas a dicha API.
Para esta tesis se realiz una investigacin que permiti identificar las limitantes que
tienen los dispositivos mviles, tales como: tamao de la pantalla, capacidad de
procesamiento y almacenamiento. Aunado a esto, se identific que el uso de imgenes
comunes tales como: JPG, GIF, BMP tienden a distorsionarse cuando se realizan
acercamientos y alejamientos (zoom-in y zoom-out) adems de que el peso del archivo se
considera otra limitante.

En resumen, el problema que se plantea es resolver solicitudes de informacin de


consultas contextuales mediante el uso de formatos de imgenes compatibles con la
mayora de las plataformas de dispositivos celulares de ltima generacin, utilizando un
modelo de mapas tipo croquis que identifiquen puntos de inters, que sern
representados por una imagen en funcin del perfil del dispositivo, siendo la solucin
propuesta la siguiente:
Desarrollar un generador de mapas tipo croquis en formato SVG-Tiny, que d respuesta a
las solicitudes que sean enviadas por el dispositivo mvil haciendo uso de la API 2 ,
enviando el mapa mediante solicitudes basadas en conexiones HTTP, que se pueda
visualizar en dispositivos mviles con diferentes caractersticas funcionales.
Cabe destacar que al mapa tipo croquis elimina informacin no pertinente, con el fin de
mostrar al usuario slo la informacin necesaria para dar respuesta a la peticin realizada.

1.2 Objetivo
Generacin de mapas tipo croquis en formato SVG-Tiny considerando informacin del
perfil del dispositivo, aplicando tcnicas de destilado para eliminar informacin geogrfica
no pertinente para el usuario, utilizando el esquema de mensajes de tipo
solicitud/respuesta mediante mensajera de SMS as como conexiones basadas en
HTTP/GRPS.

2
API para la Gestin de Mapas de Navegacin en Dispositivos Mviles Mediante el Sistema GPS y
Mensajera SMS/MMS. Desarrollado en el Laboratorio de Sistemas Distribuidos de Cenidet.
Pgina 3
Captulo I Introduccin

1.3 Justificacin y beneficios


Hoy en da Mxico tiene un gran crecimiento en la telefona celular, teniendo ms nfasis
en las promociones del servicio a bajo costo, el surgimiento de nuevos servicios para los
usuarios en cuanto a promociones va mensajes SMS y la venta de descargas de archivos
multimedia. COFETEL [COFETEL, 2009] indica que 72 de cada 100 personas tiene al
menos un dispositivo mvil, tal como se muestra en la Figura 1-1, en la cual se puede ver
en una tabla a los usuarios existentes hasta el segundo trimestre del ao 2009, y se
puede observar el crecimiento de los usuarios comprendidos desde el ao 1990 a la
fecha.

AO MILES DE USUARIOS
1990 63.9
1991 160.9
1992 312.6
1993 386.1
1994 571.8
1995 688.5 72.3
1996 1,021.9 70.3
1997 1,740.8
1998 3,349.5 62.6
1999 7,731.6
2000 14,077.9 52.6
2001 21,757.6
2002 25,928.3 45.1
2003 30,097.7
2004 38,451.1
36.3
2005 47,141.0
2006 55,395.5 29.1
2007 66,559.5 25.4
2008 p/ 75,303.5 21.6
ago-09 78,257.3
14.2

8.0
3.5
0.1 0.2 0.4 0.4 0.6 0.8 1.1 1.8
jun-09
1991
1990

1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008 p/

Figura 1-1 Usuarios de dispositivos mviles por cada 100 habitantes


El uso del servicio de mensajera SMS y MMS ha ido en aumento por los diversos
servicios que se brindan a travs de ellos, los primeros brindan servicios de publicidad por
parte de las empresas privadas, mientras que los Mensajes Multimedia estn tomando un
alto impacto en los usuarios en la compra-venta de tonos, videos, imgenes, entre otros,
por otro lado los Servicios Basados en Localizacin (LBS) lo brindan empresas tales como
Google, Multimap, Mapquest, iLocator de Nextel, entre otros, las cuales se tiene acceso
por medio de conexiones va WiFi y GPRS. Uno de los limitantes en Mxico para brindar

Pgina 4
Captulo I Introduccin

servicios de multimedia es el costo, en la Tabla 1-1 se presenta el anlisis de costos


mensajera SMS/MMS y GPRS en Mxico.
Tabla 1-1 Costos de mensajera de las telefnicas en Mxico, 2009
Movistar Telcel Iusacell Nextel
SMS $ 0.98 $ 0.85 $1.00 $0.86
MMS $2.00 $ 2.00 $5.00 $3.45
GPRS $0.14 x Kb $0.04 x Kb $0.12 x Kb Incluido en
Renta mensual

Como resultado de la limitada capacidad de los mensajes de SMS para transportar


informacin, en la presente tesis se propone el desarrollo de un generador de mapas en
formato SVG-Tiny, que permita proporcionar un servicio ms eficiente al usuario,
presentando el resultado de su consulta en formato grfico, lo que permite enviar mayor
cantidad de informacin de manera ms amigable y comprensible por el usuario.
Los resultados sern dados de acuerdo a la ubicacin y los sitios de inters del usuario,
para ello se debe de ingresar el perfil del usuario, la ubicacin se adquiere del dispositivo
mvil, siendo estos datos necesarios para realizar la consulta, asimismo se considera el
perfil del dispositivo y el tipo de tecnologa de transmisin de datos por el cual se realiza
dicha comunicacin.
Los beneficios que se obtienen al trmino de este trabajo de tesis son los siguientes:
Generacin de mapas tipo croquis en formato SVG-Tiny para dispositivos mviles
en funcin de la ubicacin del usuario.
Ofrecer a los usuarios de telefona mvil Servicios Basados en Localizacin (LBS),
haciendo uso de mensajera SMS y WiFi mediante conexiones HTTP/GPRS.

1.4 Antecedentes
Se describen tres proyectos que se consideran antecedentes de este trabajo de tesis que
fueron desarrollados en CENIDET durante el perodo 2005-2008, los cuales se describen
a continuacin:
1. API SMS para el procesamiento de consultas georeferenciadas y no
georeferenciadas [Ruiz, 2007]. El proyecto consta de un conjunto de funciones para
desarrollar e implementar aplicaciones en dispositivos mviles para procesar
consultas dependientes/independientes de la ubicacin de un usuario de dispositivos
mviles, utilizando mensajera de SMS y el sistema de posicionamiento global.

Cuando se trata de una consulta georeferenciada, la API es capaz de obtener la


ubicacin del cliente mvil a travs de un dispositivo GPS. Para ello, la API cuenta
con un paquete llamado Conexin, el cual realiza las tareas de deteccin y conexin
con el dispositivo GPS as como la extraccin de los datos. Tambin cuenta con un
paquete llamado Mensaje, que contiene las clases encargadas de la formacin del
mensaje de SMS, su envo y recepcin.

Pgina 5
Captulo I Introduccin

La API se dise en el marco de los servicios basados en localizacin, los cuales


responden a las preguntas Qu hay cerca de..?, Cmo llego a..?, Qu pasa cerca
de..? y Qu clima hay en..? Con base en lo anterior, identifica cuatro tipos de
objetos:
1. Punto de inters (georeferenciado o no georeferenciado). Para el primer caso, la
localizacin del usuario se realiza a travs de informacin que obtiene de un
GPS Bluetooth 3 ; para el segundo caso, la localizacin se realiza a travs de
informacin que el usuario proporciona (calle, nmero, colonia, cdigo postal,
ciudad).
2. Camino. Sucesin de puntos que unen dos o ms lugares.
3. Evento (poltico, religioso, cultural, etc.).
4. Clima.
2. Gateway SMS Pull para Servicios Basados en Localizacin con una Arquitectura de
Servicio Web [Quionez, 2007]. En este proyecto se desarroll un gateway (pasarela)
para el procesamiento de mensajes de SMS/MMS identificando si es una consulta
dependiente o independiente de la ubicacin del cliente mvil. Una vez identificado el
tipo de consulta, se procesa de manera local o externa sobre una arquitectura que
soporte las tecnologas de los servicios Web.

Los tipos de bsqueda que soporta la arquitectura del gateway mencionado, se


definen mediante un conjunto de palabras clave, cada una representa un servicio
reconocido por el servidor de consultas, y en base a stas retorna la informacin
solicitada en el formato adecuado. A continuacin se listan las palabras clave
soportadas por el gateway:

Banco
CCamion
Cine
Farmacia
Hospital
Restaurante
SMercado
NPOI (retorna el punto de inters ms cercano a la posicin del dispositivo mvil,
basado en una bsqueda por radio predefinido).
POI (regresa las palabras claves de los puntos de inters cercanos a la posicin
del dispositivo mvil en un radio de 20 a 30 metros).
WIA (retorna la calle y colonia donde se encuentra el dispositivo mvil).
RCORTA (regresa la ruta para llegar al servicio definido por la palabra clave
enviada desde la posicin actual del dispositivo).

3
Es una especificacin para redes inalmbricas de rea personal (WPANs) que hace posible transmitir
voz y datos entre distintos dispositivos mediante un enlace por radiofrecuencia segura y globalmente
libre.
Pgina 6
Captulo I Introduccin

3. API para la gestin de mapas de navegacin de dispositivos mviles mediante el


sistema GPS y la mensajera SMS/MMS [Victoria, 2008]. Se desarroll una API bajo la
plataforma J2ME para procesar consultas georeferenciadas/no georeferenciadas a
travs de mensajes SMS/MMS para representar puntos de inters sobre un mapa
vectorial SVG en un dispositivo mvil, que permita al usuario orientarse de mejor
manera al visualizar e interactuar con la informacin de referencia solicitada.

Los servicios basados en localizacin (LBS) as como los mapas de navegacin, son
aplicaciones cada vez ms comunes en los dispositivos mviles. Es posible
coleccionar datos y atributos geoespaciales para resolver necesidades de ubicacin y
orientacin de los usuarios. Se desarroll una API para dispositivos mviles que
permite visualizar e interactuar con informacin georeferencial representada como
puntos de inters sobre un mapa vectorial SVG que se podr obtener va un mensaje
MMS o una conexin HTTP/GPRS. Busca aprovechar la tecnologa actual de los
dispositivos mviles como Smartphones y PocketPCs para proporcionar servicios de
localizacin a los usuarios en un momento determinado, ya sea de manera textual o
grfica.

1.5 Alcances y limitaciones


1.5.1 Alcances
La aplicacin del servidor realiza los puntos siguientes:
o Recibe e interpreta la trama de la peticin
o Realiza peticiones al servidor de mapas.
o Para generar el camino se implementa un algoritmo de ruta, en la
obtencin de los puntos de referencia es necesario realizar consultas a
la base de datos espacial.
o La imagen SVG obtenido del servidor de mapas es convertida al
formato SVG-Tiny, se aade el camino y los puntos de referencia.
Las peticiones y el envo del mapa en formato SVG-Tiny es enviado por medio
de conexiones HTTP.

1.5.2 Limitaciones
Slo se muestran los puntos de referencia que cumplan con la condicin de
bsqueda del camino generado.
El medio para enviar la respuesta es va HTTP.
La aplicacin cliente est limitado a los dispositivos mviles que soporten
como mnimo la configuracin Java CLDC 1.1 (JSR 179) y el perfil MIDP 2.0
(JSR 118).
Los dispositivos mviles deben soportar las siguientes APIs para J2ME:
o Location API(JSR 179),
o Wireless Messaing API 2.0 (JSR 205) y
o Scalable 2D Vector Graphics API (JSR 226).

Pgina 7
Captulo I Introduccin

1.6 Estado del arte


En el desarrollo de un proyecto es necesario tomar en cuenta el conocimiento disponible
en la actualidad en torno al tema de investigacin, con el fin de que el conocimiento que
se produzca tenga carcter novedoso. En esta investigacin se han tomado diversos
trabajos de diferentes centros de investigacin.
Se ha realizado un estudio en cada uno de ellos, tomando en cuenta aquellos que estn
ms relacionados con la temtica a tratar, seleccionando los puntos fundamentales, as
como la comparacin de dichos puntos mostrando las ventajas que se obtienen como
resultado en esta investigacin.

1.6.1 Desarrollo de servicios de rutas de mapas para celulares basados en G-XML


Este proyecto [ichiro, 2002] describe el desarrollo de servicios de rutas de mapas basados
en G-XML para dispositivos mviles, permitiendo al usuario describir diversos datos
espaciales en relacin con las mismas condiciones, siendo tecnologa clave para el
servicio de mapas mviles.

Figura 1-2 Representacin del servicio de rutas

G-XML tiene un impacto mayor para el intercambio de informacin espacial a travs de


Internet, porque es la especificacin para codificar la informacin espacial con XML. En
estas circunstancias hicieron uso de G-XML para desarrollar un servicio de rutas en
mapas para la telefona mvil como una variedad de la navegacin. La caracterstica

Pgina 8
Captulo I Introduccin

principal de este servicio es la presentacin de un mapa de datos basados en G-XML,


[JIPDC, 2006].

En la Figura 1-2 se muestran los 4 tipos de representaciones en el servicio, las cuales


son:
1. Ruta. Describe una ruta de origen a destino, la informacin que se muestra es la
adecuada para pantallas pequeas del dispositivo mvil.
2. Lista de etiquetas. Representacin mediante iconos para indicar instrucciones de
guiado, por ejemplo: seguir a la derecha, izquierda o derecho, para reconocer en
donde se encuentra o a donde se debe dirigir.
3. Mapa. Permite a los usuarios reconocer que direccin se debe tomar de manera
visual.
4. Descripcin general. Presenta el mapa con una ruta indicando el origen y hacia
donde se desea ir.

El procedimiento para generar la ruta de los mapas mostrado en la Figura 1-3 se


desarrolla en tres etapas:
Primera etapa. Buscar la ruta ptima desde el principio hasta el fin. Al mismo
tiempo se obtienen los nodos y los enlaces de la ruta.
Segunda etapa. Se especifican las posiciones de los nodos y los vnculos
(NodeRelativePoint y m) de la ruta como un elemento S-GXML y se representa
mediante una sentencia, lista de smbolos o un mapa.

Bsqueda de ruta

Datos de la ruta
Obtener nodo y enlazarlo con
una ruta
ID Nodo, ID Enlace
S-GXML
Datos espaciales Obtener nodo relativo con una
ruta

Renderizando (Sentencia, lista puntos de


inters, mapa simple)
Figura 1-3 Procedimiento para generar la ruta del mapa

1.6.2 Mapas adaptivos para aplicaciones mviles


En este proyecto Hampe se enfoca en las limitaciones de los dispositivos mviles tales
como: pantallas pequeas y capacidad limitada de memoria. Teniendo estas limitaciones
se asegura una carga de informacin mnima, utilizando tcnicas y experiencia de diseo
de interfaces de usuarios tiles, [Hampe, 2005].
Las caractersticas y restricciones de los dispositivos mviles, tienen un gran impacto
sobre el diseo de las interfaces de usuario. Para ello se disean presentaciones visuales
sujetas a un nmero de restricciones, siendo las ms relevantes los siguientes:
Resolucin limitada. Restriccin clave que debe ser dirigida mediante diseadores
de interfaces.

Pgina 9
Captulo I Introduccin

Tamao de pantalla. Restriccin para aplicaciones que son encaminados a


diversos usuarios en donde se consideran los posibles problemas de visin.
Nmero de colores disponibles. Es relevante para el diseo de la presentacin
visual, porque limita el uso de color para informacin y la aplicabilidad de tcnicas
basadas en transparencias, que pueden ser utilizadas en diversas capas de
informacin y
Poder de procesamiento. Restringe la interactividad de animaciones en tiempo real
y la generacin de grficos complejos en pantalla.

Adicionalmente las diferencias introducidas mediante un contexto mvil de uso est


relacionado a lo siguiente:
Ambiente auditivo. Puede ser limitado si el dispositivo es usado en un ambiente
pblico, ya que el ruido del ambiente puede enmascarar la salida del sonido o
cuando el sonido de la aplicacin es indeseable (museo, biblioteca, etc.),
Ambiente visual. Los dispositivos mviles pueden ser usados en varios contextos y
rangos desde el oscuro total hasta la luz solar en aplicaciones al aire libre.
Nivel de atencin. Las aplicaciones mviles se utilizan en cualquier lugar, por lo
que el nivel de atencin del usuario es mnima y podra ser limitado o la interaccin
del usuario podra ser interrumpida por atender eventos externos.

Un mapa adaptivo implica acomodarse a las especificaciones necesarias y requerimientos


del usuario y al dispositivo mvil. El sistema tiende a decidir acerca de la relevancia de
informacin para cada usuario y cada uso. Para determinar las preferencias del usuario,
se puede identificar la cantidad de informacin que se puede dar en la respuesta. Como
no existen muchos usuarios expertos el sistema puede decidir automticamente qu
informacin es relevante para cierto usuario en cierta situacin.
Reichenbacher [Reichenbacher, 2004] identifica cuatro dominios de adaptacin:
Dominio de informacin
Dominio de interfaz de usuario
Dominio de presentacin
Dominio de tecnologa

Basado en ello se determinaron los posibles objetos de adaptacin. Siendo los siguientes
subconjuntos los se ajustan al proceso:
Visualizacin
o Diseo del mapa
o Seccin del mapa
o Escala del mapa o Cantidad
o Generalizacin del mapa o Clasificacin
o Dimensin o Nivel de detalle
o Elementos grficos o rea geogrfica
Geo informacin Interfaz de usuario

Pgina 10
Captulo I Introduccin

1.6.3 Mejorando las direcciones de ruta en dispositivos mviles


Este proyecto se enfoca en el descubrimiento de rutas para dispositivos mviles y trata de
describir cmo se llega al objetivo destino desde un estado inicial en el mundo real. Las
rutas tienen un alto nivel de descripcin y proporciona un mtodo para llevar a cabo la
instruccin de mayor prioridad. Se enfoca en las propiedades salientes del entorno y la
vista de rutas en un alto nivel de abstraccin, siendo aspectos claves en el proceso de
gua en las rutas, dando como consecuencia el entendimiento de instrucciones
complejas, [Sabine, 2004].
La ruta se segmenta y se resume de manera significativa para ser representada mediante
un lenguaje de marcado. La estructura de la segmentacin se desarroll en un generador
jerrquico y las heursticas son usadas para la identificacin de segmentaciones
apropiadas.

Figura 1-4 Segmento de ruta presentado va Web

Desarrollaron un lenguaje de marcado llamado RPML (Route Plan Markup Language) que
les permite entregar combinaciones de diferentes modalidades (texto, grfico, y
eventualmente tambin voz). El mecanismo mencionado de segmentacin produce
estructuras RPML como estructura de salida, a su vez usan XLST para entregar una ruta
completa va Web (ver Figura 1-4), mientras que la Palm permite hacer exploracin
interactiva paso a paso de la descripcin cuando los usuarios realizan la tarea de
navegacin como se muestra en la Figura 1-5.

Figura 1-5 Descripcin de ruta

Pgina 11
Captulo I Introduccin

En resumen, no proporciona suficiente informacin para que el conductor pueda encontrar


la ruta correcta hacia el destino, excepto en el camino de regreso al punto de partida.

1.6.4 Sistema de soporte para contenido multimedia dinmico personalizado en


dispositivos mviles
Este proyecto tiene por objetivo representar mapas y rutas en tiempo real, para ello el
operador toma una imagen de tamao arbitrario de una ciudad como entrada que
representa el mapa de la ciudad, una lista de puntos que consta de un ID y un factor x el
cual representa una posicin global en el espacio para re-calcular las posiciones de los
puntos de inters en el mapa, [Scherp, 2004].
Para aprovechar al mximo la utilizacin de las pantallas de los dispositivos mviles,
utilizan los medios de comunicacin para la visualizacin en el dispositivo mvil y, por
consiguiente, la cantidad de datos que se transfiere por medio de la red inalmbrica se
reduce.

Figura 1-6 Navegacin de mapas en PDA (CityMap)

Los medios de comunicacin son pertinentes a las limitaciones tcnicas del dispositivo
mvil y de acuerdo al entorno del usuario, tal como ubicacin, hora del da, el clima, o el
ruido. En lo que respecta a la ubicacin, el usuario recibe slo la presentacin multimedia
de la vista. Adems, si el entorno durante una visita de la ciudad es demasiado ruidoso,
los medios de comunicacin audibles no son seleccionados para la presentacin, slo los
medios de comunicacin visual.
La aplicacin CityMap mostrada en la Figura 1-6 pregunta por los objetos multimedia que
coincidan con la preferencia de los intereses del usuario. Si el perfil de usuario cambia
durante la visita de la ciudad, la ruta es personalizada eliminando o aadiendo lugares de
inters turstico en el mapa.
Se desarrollaron generadores de SMIL, SVG, y HTML en el contexto de presentaciones
multimedia, considerando la limitacin de los dispositivos mviles por medio de la
determinacin de los perfiles que son especialmente diseados para uso en dispositivos
mviles.

Pgina 12
Captulo I Introduccin

El perfil SVG-Tiny est destinado a multimedia para dispositivos mviles y el SVG-Basic


tiene por objeto el perfil de las computadoras de bolsillo como PDAs y computadoras de
mano.
En la Figura 1-7 se muestra la arquitectura cliente-servidor de CityMap, la informacin
sobre el perfil del usuario, los medios de comunicacin y los metadatos se obtienen desde
Internet utilizando la red inalmbrica y en bases de datos.
Cliente mvil Servidor

PDA usando PoketSMIL


WinCE Aplicacin
multimedia
HHC usando SVGBasic Internet personaliza
Player da

Celular mvil con


SVGTiny
Figura 1-7 Arquitectura de MM4U

1.6.5 Visualizacin Adaptiva de informacin geogrfica en dispositivos mviles


En este trabajo se establece un punto de vista del marco conceptual para cartografa
mvil y la visualizacin de adaptacin de informacin geogrfica a dispositivos mviles. La
investigacin se extiende enriqueciendo la teora cartogrfica, as como los mtodos en el
mbito de la informacin geogrfica, comunicacin en entornos mviles y los mtodos de
adaptacin para la visualizacin cartogrfica en los dispositivos mviles.
Las soluciones cartogrficas en un entorno mvil se centran en el uso de informacin
geogrfica en ambientes urbanos, siendo como principal objetivo comunicar en forma de
aprendizaje (rutas, reas forestales, etc.) o para explorar informacin geogrfica mediante
los dispositivos mviles. Se hace hincapi en el apoyo de las actividades cotidianas de los
usuarios mviles, ofreciendo presentaciones de informacin no intrusiva tomando
decisiones rpidas. La siguiente lista describe los objetivos generales:
Proporciona un marco de trabajo para la cartografa mvil y geovisualizacin
adaptable.
Identifica los enlaces e interfaces para relacionar mtodos de geovisualizacin.

Los objetivos especficos incluyen:


Desarrollo de mtodos de adaptacin para geovisualizacin.
Demostrar el potencial del SVG para mviles y geovisualizacin adaptables.
Desarrollo de un prototipo que brinde servicios de geovisualizacin mvil.

La adaptacin se lleva a cabo en los componentes de las actividades relacionadas con los
objetivos. Los usuarios demandan los servicios mediante solicitudes al servidor web
consumiendo datos geoespaciales, dando como resultado un archivo en el lenguaje de
marcado geogrfico (GML), mismo que se transforma mediante el lenguaje de
transformacin de estilo extensible (XSLT) a un documento en formato vector grfico

Pgina 13
Captulo I Introduccin

escalable (SVG). Las adaptaciones del documento SVG pueden ser manipulados
mediante el modelo objeto-documento (DOM).
Aunque el progreso de la tecnologa en el campo de la computacin mvil es significante
y la investigacin est dirigida a los mviles con informacin geogrfica, son varios los
problemas aun sin resolver y muchos conocimientos que se van adquiriendo al
desarrollar soluciones mviles para el contexto que se describe a continuacin:
Geovisualizacin. La visualizacin en los dispositivos mviles est limitado por el
tamao y resolucin de la pantalla, la falta de poder de procesamiento, la
memoria, la duracin de la batera y el ancho de banda de la red mvil.
Usabilidad. El uso de las soluciones mviles se obstaculiza por el uso de mapas
escaneados o la produccin ilegible de mapas con resoluciones que no soportan
los dispositivos mviles.
Lectura ilegible. La limitacin de las pantallas pequeas implica que no hay lugar
para elementos auxiliares tales como un mapa leyenda, lo que hace que la lectura
de mapas sea un proceso difcil.
Movilidad. La movilidad del usuario tiene muchas consecuencias, el uso de la
informacin geogrfica se ve afectada por los cambios de ubicacin del usuario,
las diferentes actividades, asimismo se tienen diferentes distracciones en un
entorno pblico siendo rpidos los cambios de contexto haciendo ms difcil las
condiciones de uso.

1.6.6 gvSIG para dispositivos mviles


gvSIG Mobile es una herramienta para dispositivos mviles, siendo sus caractersticas
principales las siguientes: soporte de los formatos de imgenes ms utilizados para
almacenar datos geogrficos, el acceso a diversas bases de datos, los servicios de
mapas, manipulacin de datos vectoriales y rster. Tiene la funcionalidad de un
visor/editor de cartografa con un mdulo de GPS para la auto-localizacin de puntos de
inters mediante servicios remotos [Montesinos, 2008].
En la Figura 1-8 se muestra la interfaz de usuario del sistema en el que se incorpora el
concepto de grupo de barras de herramientas y un sistema de ayuda contextual.

Figura 1-8 Interfaz de usuario de gvSIG Mobile

Pgina 14
Captulo I Introduccin

Este proyecto es una extensin de gvSIG desktop que permite enviar datos a gvSIG
Mobile, configurar los aspectos de visualizacin de capas, definir formularios
personalizados y revisar las modificaciones realizadas por gvSIG Mobile, en la Figura 1-9
se muestra la sincronizacin de datos desde gvSIG desktop.

Figura 1-9 Sincronizacin de datos desde gvSIG desktop

1.6.7 Sistema de Informacin Geogrfica basado en SVG


El Sistema de Anlisis de Informacin Geogrfica (GIAS), es un sistema autnomo que
utiliza tcnicas de grfico renderizado para aplicaciones locales. Describe una estructura
interna en la que se incluye la base de datos, los mecanismos de extraccin de
informacin, el tratamiento de datos y su mantenimiento. Se expande mediante el
desarrollo de funciones para su uso en la Web a travs de la utilizacin de los SVG.
Demuestra que el SVG tiende a ser una herramienta de gran alcance, siendo un reto para
la interfaz de programacin de grficos en la web, [Cabral, 2005].
GIAS fue desarrollado en la plataforma Borland Delphi 6, la arquitectura que proponen se
muestra en la Figura 1-10, describiendo de manera general el sistema.
La base de datos contiene informacin acerca de la ubicacin real de toda la regin en
estudio, as como las imgenes geomtricas presentable de la regin.
El uso del formato SVG permite representar tres tipos de objetos grficos: formas de
vectores (definidos por lneas rectas y curvas), imagen y texto. Los vectores de objetos
tienen informacin sobre las curvas y lneas de una imagen, en lugar de informacin
acerca de los pixeles que componen la misma. Se utiliza la tcnica de la agrupacin en
capas, por lo que es posible tener en un dominio los elementos que tienen caractersticas
similares.

Pgina 15
Captulo I Introduccin

Figura 1-10 Arquitectura de GIAS

En la figura anterior el mdulo de Administracin y registro de datos es el responsable


de aplicar los intercambios y la manipulacin de datos a travs de la Web. El componente
Servidor de mapas es utilizado con el fin de extraer informacin de la base de datos y
generar datos en SVG (vase Figura 1-11) utilizando la informacin extrada, teniendo
como resultado un mapa en formato SVG.

Figura 1-11 Creacin de archivo SVG

1.6.8 Procesando datos interoperables por Aplicaciones Geoespaciales Mviles


En este proyecto se propone una arquitectura de servicio para integrar clientes mviles a
una infraestructura de datos espaciales (SDI 4 por siglas en ingls). Esta arquitectura
permite proveer mapas y objetos geoespaciales acorde a los requerimientos del
dispositivo mvil, apoya las fases locales (offline) y suministra documentos de contexto
que contienen informacin de los servicios relevantes, [Brinkhoffi, 2008].
Observan que existen diferencias en sus interfaces de usuario y en su rendimiento
tomando en cuenta las diversas categoras de dispositivos mviles, las plataformas y los
sistemas operativos, Por lo que no se asume que los servicios web geoespaciales

4
SDI: Spatial Data Infrastructure
Pgina 16
Captulo I Introduccin

puedan ser usadas como aplicaciones tradicionales. Es por ello que se adaptan los
resultados de los servicios a las necesidades de los dispositivos mviles. Estos
tratamientos se pueden hacer mediante:
1. Llamadas a los servicios SDI con un conjunto de parmetros para los
requerimientos del cliente mvil y/o
2. Modificando los resultados de los servicios SDI para simplificar o procesar
posteriormente mediante el mvil cliente.

La Figura 1-12 representa la arquitectura que provee mapas y datos. Las flechas indican
el flujo de datos. Para determinar los parmetros correctos para llamar a los servicios SDI
y para procesar sus resultados, una base de datos para administrar el perfil de cada tipo
de dispositivo.

Figura 1-12 Arquitectura para integrar aplicaciones mviles especificando dispositivos al SDI

El prototipo es desarrollado e implementado para la administracin de desastres, dirigido


a dispositivos mviles tales como PDAs o Tablet PCs. La aplicacin mvil consiste de los
siguientes mdulos: el componente de visualizacin que consta de datos almacenados,
sensores e interfaces de comunicacin, la Figura 1-13 representa los principales
componentes del prototipo.

Pgina 17
Captulo I Introduccin

Figura 1-13 Principales componentes del prototipo del cliente mvil

La estructura de datos del componente de visualizacin est basada en un documento


SVG, en la Figura 1-14 se representan las capas que son mapeadas, en donde cada capa
corresponde a un elemento imagen del documento SVG.
El administrador de capas es el responsable de visualizar las texturas de las capas
visibles en respuesta de eventos de los dispositivos de entrada como puede ser un
dispositivo sealador, un ratn o un lpiz ptico.

Figura 1-14 Representacin y visualizacin de datos

Pgina 18
Captulo I Introduccin

1.6.9 Tabla comparativa del estado del arte


A continuacin se muestra la Tabla 1-2, en donde se compara los trabajos relacionados con el proyecto de investigacin. Se puede
observar que todos los trabajos estn enfocados a lo siguiente: al desarrollo de sistemas LBS, generar las rutas de los mapas, el
medio de transmisin de datos mediante GPRS y HTTP. Una ventaja del proyecto es el envo de mensajera SMS obteniendo la
respuesta por medio de conexin HTTP, teniendo como resultado un archivo en formato SVG-Tiny, que tiene la caracterstica de
mostrar mapas estticos, en 3D, audio y video5, otro punto a destacar es J2ME como lenguaje de desarrollo, esto nos permiti
desarrollar el proyecto sin depender de algn software propietario, dando un enfoque heterogneo al resultado que sean enviados a
la mayora de los dispositivos mviles.
Tabla 1-2 Comparativa de los trabajos del estado del arte

SOPORTE DE
ORIENTADO LENGUAJE DE GENERA MENSAJERIA MEDIO DE
PROYECTO FORMATOS
A LBS DESARROLLO RUTA TRANSPORTE
SMS MMS

[ichiro,2002] S-GXML HTTP SVG-Tiny


[Hampe, 2005] No especifica HTTP SVG-Tiny
Windows Mobile /
[Sabine, 2004] RPML, XSLT GPRS | HTTP XSLT
Windows Mobile /
[Scherp, 2004] WFS, WMS, WMC HTTP SMIL, SVG-Tiny
J2ME / GPRS | UMTS,
[Reichembacher, 2004] GML HTTP
SVGB

ECW, JPEG,
J2ME/
[Montesinos, 2008] WMS, WFS HTTP-WMS PNG, GIF
/SHP
DELPHI 6 /
[Cabral, 2005] XML HTTP SVG
GPRS | HTTP-
[Brinkhoffi, 2008] VC++ NET WMS
SVG
GPRS | HTTP -
Proyecto de tesis J2ME WMS
SVG-Tiny

5
http://www.w3c.es/Prensa/2006/nota060810_SVGTiny
Captulo I Introduccin

1.7 Organizacin del documento


El documento de tesis se organiz en 6 captulos cada uno de los cuales presenta la
siguiente informacin:
Captulo II Marco Terico. Describe los conceptos principales del tema de investigacin
que facilitarn la comprensin del presente trabajo.
Captulo III Anlisis y Diseo. En este captulo se presenta el anlisis y diseo realizado
para desarrollar el sistema. Para ello se describe la arquitectura, los diagramas de casos
de uso, diagramas de actividad, diagramas de secuencia y los diagramas de clases.
Captulo IV Implementacin. En este captulo se describen las clases implementadas que
muestran la funcionalidad del sistema.
Captulo V. Presenta las pruebas y los resultados obtenidos que permitieron verificar el
funcionamiento de la aplicacin web SketchMapServer de acuerdo a un plan de pruebas
elaborado conforme al estndar IEEE 829-1998.
Captulo VI. Presenta las conclusiones, aportaciones y trabajos futuros de la investigacin
realizada en esta tesis, de acuerdo a los resultados obtenidos y experiencia adquirida.
Anexos. Contiene el Anlisis para representar puntos de inters, el estudio de plataformas
mviles (Sistemas operativos y Lenguajes de programacin), el Plan de Pruebas
elaborado y un estudio del formato SVG.

Pgina 20
CAPTULO II
MARCO TERICO
En este captulo se presentan los conceptos relevantes en el desarrollo del proyecto, lo
que se est desarrollando en la misma rea de investigacin.
Captulo II Marco terico

2. Marco terico
2.1 Mapa tipo croquis
Mapa tipo croquis se define como una representacin grfica de la ubicacin exacta de
una direccin o lugar que se est localizando por medio de coordenadas o puntos de
referencia, bsicamente se utiliza para localizar una direccin en particular. Los puntos de
inters que se muestran en el mapa sirven como referencia visual para orientar al usuario,
presentndose la ruta con la informacin pertinente representada mediante smbolos y
textos.

Figura 2-1 Representacin de un Mapa tipo croquis

En la Figura 2-1 se representa un mapa tipo croquis en donde el punto inicial A parte de
la calle Adolfo Lpez Mateos doblando por la rsulo Galvn para finalmente llegar a la
calle Gustavo Daz Ordaz donde se localiza el punto destino B, tambin se observa que
en el trazado de la ruta se presentan puntos de referencia para orientar a las personas.

2.2 LBS. Servicios basados en localizacin


Las NICTs (New Information and Communication Technologies, Tecnologas Nuevas de
Informacin y Telecomunicacin), describe a los LBS como una interseccin entre:
sistemas y dispositivos mviles, Internet y GIS (Geographic Information Systems,
Sistemas de informacin geogrfica) con base de datos espaciales, [Steiniger, 2006].

Figura 2-2 reas que conforman los LBS

Pgina 22
Captulo II Marco terico

En la Figura 2-2 se observa que existen algunas caractersticas en comn entre los LBS y
los GIS, tales como el manejo de datos con referencia posicional y funciones de anlisis
espacial, las cuales responden preguntas como: Dnde estoy? Qu est cerca
de? Cmo puedo llegar a?
Sin embargo los LBS y los GIS tienen diferentes orgenes y grupos de usuarios.
Los GIS han sido desarrollados durante varias dcadas en base a aplicaciones de datos
geogrficos profesionales, mientras que los LBS surgieron recientemente por la evolucin
de servicios mviles pblicos. En lo que se refiere a grupos de usuarios, los GIS pueden
ser vistos como un sistema profesional y tradicional, destinado a usuarios con amplia
experiencia en sistemas geogrficos, adems de que consumen extensos recursos de
cmputo.
En contraste los LBS se desarrollaron como servicios limitados para un gran nmero de
usuarios no profesionales. La aplicaciones LBS operan con las restricciones del ambiente
de cmputo mvil como baja potencia computacional, pantallas pequeas, o limitaciones
debidas al alto consumo de batera.

2.2.1 Componentes de los LBS


Los elementos necesarios para el funcionamiento de los LBS se muestran en la Figura
2-3, [Magon, 2006].

Figura 2-3 Componentes bsicos LBS

Posicionamiento o localizacin. Se refiere a la forma de determinar la posicin del


dispositivo mvil. Existen distintas tecnologas de posicionamiento entre las que destacan
las basadas en red y las basadas en dispositivos,
Datos geogrficos. Se refiere al GIS que funciona como una base de datos con
informacin geogrfica (datos alfanumricos) que se encuentra asociada por un
identificador comn a los objetos grficos de un mapa digital. De esta forma, sealando
un objeto se conocen sus atributos e, inversamente, preguntando por un registro de la
base de datos se puede saber su localizacin en la cartografa.

Pgina 23
Captulo II Marco terico

Red de comunicaciones. Se refiere al medio de transporte de datos. La informacin de


ubicacin puede enviarse por medio de SMS o de datos utilizando GPRS.
Centro de control. Es el administrador de los datos, recibe la informacin de ubicacin,
accede al GIS para poder satisfacer los requerimientos del usuario y enva la respuesta.

2.2.2 Funcionamiento
A continuacin se describe del funcionamiento de los sistemas basados en localizacin:
1. Se obtiene la posicin del dispositivo mvil y se enva la solicitud, la cual contiene
el objetivo de la bsqueda y la ubicacin del usuario, sta se enva a travs de la
red de comunicaciones a un determinado servidor de consultas contextuales.
2. El servidor tiene la tarea de intercambiar mensajes entre la red de comunicacin e
Internet. Encamina la solicitud a un servidor especfico. El servidor guarda
informacin acerca del dispositivo que ha solicitado la informacin.
3. El servidor de aplicaciones lee la solicitud y activa el servicio apropiado.
4. El servicio analiza nuevamente el mensaje y decide que informacin adicional
necesita, adems del criterio de bsqueda y posicin de usuario.
5. El servicio encontrar la informacin necesaria que satisfaga la solicitud.
6. Teniendo toda la informacin necesaria, el servicio har una consulta de ruteo,
para obtener la respuesta a la solicitud. Una vez obtenida la respuesta esta se
enva al usuario.

Los resultados se pueden presentar al usuario ya sea como una lista de texto, o un dibujo
en un mapa.
Servidor
Posicionamiento
Internet
GPS

BD

Envo de SMS
Red de
comunicaciones
Dispositivos mviles

Figura 2-4 Funcionamiento LBS

2.2.3 Clasificacin
Los LBS se pueden clasificar segn las necesidades que satisfacen. En la Tabla 2-1 se
resumen las necesidades que satisfacen los LBS, [Steiniger, 2006].

Pgina 24
Captulo II Marco terico

Tabla 2-1 Necesidades de los usuarios mviles

Accin Preguntas Operaciones


Orientacin y localizacin. Dnde estoy? Posicionamiento,
Dnde est? geocodificacin.

Navegacin a travs de Cmo puedo llegara? Posicionamiento,


espacio, trazado de ruta. geocodificacin, ruteo.

Bsqueda de personas y Qu hay cerca o de Posicionamiento,


objetos. interesante? geocodificacin, clculo de
distancia y rea, bsqueda
de relaciones.
Identificacin y Qu es? Directorio, seleccin,
reconocimiento de personas bsqueda temtica o
u objetos. espacial.

Verificacin de eventos, Qu ocurre aqu, all, Posicionamiento, clculo de


determinacin del estado de etc.? rea, geocodificacin,
objetos. bsqueda de relaciones.

En la Figura 2-5 se muestra la clasificacin de los LBS segn las necesidades que
satisfacen.

Figura 2-5 Clasificacin de los LBS

Pgina 25
Captulo II Marco terico

2.3 Sistema de informacin geogrfica


Los sistemas de informacin geogrfica por sus siglas en ingls Geographic Information
System(GIS), son una tecnologa para el manejo de informacin geogrfica. Son un
conjunto de herramientas que permiten manejar eficientemente datos espaciales junto con
sus caractersticas alfanumricas asociadas. Otra definicin es la siguiente: un software
GIS se asemeja a un programa de base de datos, ya que analiza y relaciona informacin
almacenada bajo la forma de registros, con una diferencia crucial: cada registro en una
base de datos GIS contiene informacin que permite dibujar formas (normalmente un
punto, una lnea, o un polgono) tambin denominada informacin espacial [Quionez,
2007].
El objetivo primordial de un GIS es abstraer la complejidad del mundo real a una
representacin simplificada entendible para el lenguaje de las computadoras actuales.
Este proceso tiene diversos niveles y comienza con la concepcin de la estructura de una
base de datos organizada generalmente en capas.
En los GIS existen relaciones espaciales entre los objetos geogrficos que el sistema no
puede obviar; es lo que se denomina topologa y se utiliza en la definicin de las
relaciones espaciales entre los objetos geogrficos. Los sistemas de informacin
geogrfica se clasifican en dos categoras vectoriales y rster que cuentan con
caractersticas diferentes para su procesamiento y utilizacin.
Los GIS representan toda una realidad en diversas capas, distinguidas principalmente en
tres tipos:

i. Puntos. Representan entidades nicas como: individuos, rboles, carros, ciudades


y/o cualquier entidad que pueda representarse mediante un punto.
ii. Lneas. Representan entidades como carreteras, calles, ros etc.
iii. Polgonos. Representan cualquier superficie que tenga un permetro, por ejemplo:
estados, municipios, pases, colonias, cuadras etc.

Las consultas espaciales se pueden realizar mediante operaciones geomtricas definidas


en [SFS, 2009], se obtiene informacin sobre objetos se encuentran cerca, la distancia
entre ellos, que objetos se encuentran dentro de una geometra y la relacin entre
geometras de distinta topologa, en la Figura 2-6 se muestran las operaciones de
geometras sobre las entidades GIS.

En las definiciones siguientes el trmino P se utiliza para referirse a dimensiones


geomtricas 0 (Points y MultiPoints), L se utiliza para referirse a una dimensin
geometras (LineStrings y MultiLineStrings) y A se utiliza para referirse a las geometras
en dos dimensiones (Polgonos y MultiPolygons).

Pgina 26
Captulo II Marco terico

Figura 2-6 Operaciones de geometra

Operacin toque. Son relaciones entre dos geometras a y b se aplica a los A/A, L/L, L/A,
P/A y P/L de los grupos de relaciones, pero no a la relacin P/P grupo.

Operacin cruce. La relacin se aplica a los cruces de P/L, P/A, L/L y situaciones L/A.

Operacin en. La relacin se aplica a las intersecciones de dos geometras a y b


resultando b contenido en a.

Operacin traslape. Se define entre dos geometras para situaciones en las que se
tengan A/A, L/L y P/P.

2.3.1 GIS Vectoriales


Son GIS que utilizan vectores definidos por pares de coordenadas relativas a algn
sistema cartogrfico para la descripcin de los objetos geogrficos. Con un par de
coordenadas y su altitud gestionan un punto, con dos puntos generan una lnea y con una
agrupacin de lneas forman polgonos. En la Figura 2-7 se muestra cmo se estructura la
informacin geogrfica dentro de tablas en algn manejador de base de datos que
permita el tratamiento de esta informacin [Ortiz, 2001].

Pgina 27
Captulo II Marco terico

Figura 2-7 Representacin de un mapa vectorial

En el modelo de datos vectorial los objetos se describen como puntos, lneas o reas
(polgonos). Estos elementos existen como elementos geomtricos no como objetos
fsicos. Este modelo es adecuado cuando trabajamos con objetos geogrficos con lmites
bien establecidos, como pueden ser fincas, carreteras, puntos de inters etc.

2.3.2 GIS Raster


Los Sistemas de Informacin Raster basan su funcionalidad en una relacin de vecindad
entre los objetos geogrficos. Su funcionamiento se basa en dividir la zona en una retcula
o malla de pequeas celdas (pixel) y atribuir un valor numrico a cada celda como
representacin de su valor temtico. Debido a que la malla es regular (el tamao del pixel
es constante) y se conoce la posicin en coordenadas del centro de cada una de las
celdas, se puede decir que todos los pixeles estn georeferenciados [Ortiz, 2001].

Cdigo de las celdas:


1 = Bosque
2 = Carretera
3 = Casa

Figura 2-8 Representacin de un mapa rster

El inconveniente de estos sistemas es que a mayor nmero de filas y columnas en la


malla (ms resolucin), existe mayor esfuerzo en el proceso de captura de la informacin

Pgina 28
Captulo II Marco terico

y mayor costo computacional a la hora de procesar la misma. La Figura 2-8 muestra la


representacin de ste tipo de GIS.
Los datos de un mapa rster se visualizan como una rejilla sobrepuesta sobre un terreno.
Cada celda almacena un cdigo que describe el terreno de una celda en particular. El
modelo de datos rster es til en la descripcin de objetos geogrficos con lmites difusos,
por ejemplo: la dispersin de una nube de contaminantes, o los niveles de contaminacin
de un acufero subterrneo, donde los contornos no son absolutamente ntidos; en esos
casos, el modelo rster es ms apropiado que el vectorial.

2.4 Imgenes Grficos Vectoriales Escalables (SVG)


Como se explica en [SVG, 2009], SVG es un lenguaje para describir grficos
bidimensionales en XML. Soporta tres tipos de objetos grficos: figuras vectoriales (por
ejemplo rutas formadas por lneas rectas y curvas), imgenes y texto. Estos objetos se
pueden agrupar, estilizar, transformar y componer en nuevos objetos previamente
representados.
SVG se utiliza en diversas reas incluyendo grficos Web, animaciones, interfaces de
usuario, aplicaciones mviles, entre otros. Sus principales caractersticas son las
siguientes [Devmobi, 2007]:
Forma compacta de representar grficos vectoriales.
Son grficos escalables, es decir, es posible aumentar o modificar su tamao
arbitrariamente sin prdida de calidad.
Es un estndar abierto, es una recomendacin de W3C (Wide Web Consortium).
Est basado en XML (Extensible Markup Language).
SVG se integra con otros estndares como DOM6 (Document Objetc Model) y XSL
(Extensible Stylesheet Language).
SVG surgi para cubrir las necesidades de diversos casos de uso para grficos
bidimensionales orientados a computadoras de escritorio; sin embargo, la industria mvil
se uni al grupo de trabajo de W3C para especificar un perfil dirigido a dispositivos
mviles. Estas demandas originaron inicialmente dos perfiles SVG: SVG Full y SVG
Mobile.
La especificacin SVG Mobile est dirigida a dispositivos de recursos limitados y es parte
de la plataforma 3GPP para la tercera generacin de telfonos mviles. Un nico perfil
mvil no es suficiente para una gran variedad de dispositivos debido a las distintas
caractersticas en trminos de velocidad de CPU, memoria y soporte de colores. Por esta
razn, se definieron dos perfiles dirigidos al amplio rango de familias de dispositivos:
SVG Basic. Es un subconjunto estricto de SVG Full, es decir, los grficos que se
realizan en SVG Basic son compatibles con SVG Full, est dirigido a PDAs y
dispositivos mviles de ltima generacin con capacidades avanzadas.

6
Es un modelo computacional a travs del cual los programas y scripts pueden acceder y modificar
dinmicamente y en tiempo real el contenido, estructura y estilo de los documentos HTML y XML.
Pgina 29
Captulo II Marco terico

SVG Tiny. Es un subconjunto estricto de SVG Basic, es decir, los grficos que se
realizan en SVG Tiny son compatibles con SVG Basic y Full, est dirigido a
dispositivos mviles de capacidades limitadas.

Perfil
MOBILE

Perfil
FULL

Figura 2-9 Perfiles SVG

Los perfiles SVG se pueden mostrar como una pirmide que represente las capacidades
computacionales de los dispositivos para los cuales est dirigido un perfil en especfico
as como las caractersticas SVG que soporta (ver Figura 2-9). En la parte alta y media de
la pirmide se encuentra el conjunto de caractersticas de los telfonos mviles y PDAs y
en la base, el conjunto de caractersticas correspondientes a una computadora de
escritorio.
La principal diferencia entre SVG Tiny y SVG Basic es que SVG Tiny no proporciona
soporte para scripts y definicin de estilos. Esto para evitar desbordamiento de memoria
al mantener el modelo de objeto del documento (DOM) en anexo D se describe de forma
extensa el formato SVG en especfico el perfil Mobile.

2.5 Mensajera SMS


De acuerdo con la definicin de [Roldn, 2005], el servicio de mensajes cortos SMS
(Short Message Service) permite enviar mensajes compuestos por un mximo de 140
bytes (el nmero de caracteres depende de la codificacin que se utilice).
Un mensaje SMS se compone por una cabecera en la que se indican datos relativos al
protocolo de transmisin del mensaje (direccin de origen, tipo de codificacin, etc.) y el
cuerpo del mensaje que contiene el texto que se transmite (ver Figura 2-10).

CABECERA DATOS

1120 bits
Codificacin de 7 bits: 160 caracteres (mensaje de texto latino).

Codificacin de 6 bits: 140 bytes (mensaje de datos).

Codificacin Unicode: 70 caracteres (mensaje de texto griego o rabe).

Figura 2-10 Estructura de un mensaje SMS.

Pgina 30
Captulo II Marco terico

El servicio SMS emplea los canales de sealizacin y control de la red GSM. La


comunicacin a travs de un mensaje SMS es una comunicacin en tiempo diferido, es
decir, que no existe ninguna conexin directa entre los dos extremos. De hecho, la red
almacena el mensaje antes de enviarlo durante un corto espacio de tiempo (generalmente
entre 0,5 y 2 s).
Las aplicaciones ms comunes de los SMS son las destinadas al pblico en general. Es
posible clasificarlas en cuatro grandes grupos:
Informacin. Envo de informacin al usuario sobre algn tema en concreto como:
horscopo, eventos deportivos, noticias, clima, entre otros (requiere suscripcin).
Personalizacin. Descarga de logos, melodas, fondos de pantalla, imgenes,
fotos, etc.
Chat. Consiste en el intercambio de mensajes SMS.

Entretenimiento. El usuario que enva un SMS participa en un juego, concurso,


sorteo, etc.

2.6 Mensajera MMS


MMS (Multimedia Messaging System) es una evolucin de SMS para enviar mensajes
multimedia. MMS ofrece mayor flexibilidad en el contenido del mensaje ya que, adems
de mensajes de texto, soporta otro tipo de formatos (sonidos, animaciones, imgenes,
etc.) e integra otros servicios de mensajera como el correo electrnico o los mensajes de
voz. El usuario puede escribir el mensaje MMS desde su telfono mvil, su computadora,
su PDA o cualquier otro dispositivo con un cliente MMS instalado [Roldn, 2005].
El servicio MMS permite adjuntar archivos y como valor aadido y diferenciador permite
utilizar presentaciones animadas. Esto es posible mediante la inclusin de un elemento de
presentacin llamado SMIL (Synchronized Multimedia Integration Language). El mensaje
se puede componer por varias pginas consecutivas, denominadas slides, cada una con
un tiempo de presentacin que se determina al formar el mensaje (ver Figura 2-11). Cada
slide contiene uno o varios de los siguientes campos: texto, imgenes (simples o
animadas), sonido e incluso vdeo.

Figura 2-11 Esquema de composicin de pginas en un mensaje MMS.

Pgina 31
Captulo II Marco terico

MMS es un estndar abierto, especificado por el Foro WAP (Wireless Application


Protocol) y 3GPP (Third Generation Partnership Project). La especificacin de 3GPP
define la arquitectura de la red y funciones generales. La especificacin del Foro WAP
define la encapsulacin de los mensajes y los protocolos de aplicacin. Sin embargo, el
estndar no especifica un tamao mximo para un MMS. Esto es para asegurar la
interoperabilidad futura y evitar limitaciones similares a las de los mensajes SMS. El
tamao del mensaje depende del operador, quien probablemente establezca un tamao
estandarizado para propsitos particulares de 100 300 Kb [NokiaMMS, 2007].

Pgina 32
CAPTULO III
ANLISIS Y DISEO
En este captulo se presenta el anlisis y diseo realizado para este proyecto de tesis.
Para ello se describe la arquitectura, los diagramas de casos de uso, diagramas de
actividad, diagramas de secuencia y los diagramas de clases.
Captulo III Anlisis y diseo

3. Anlisis y diseo
3.1 Anlisis
Se describe la arquitectura del generador de mapas croquis desarrollado. Se presentan
los diagramas de caso de uso, la definicin de escenarios y los diagramas de actividad
que corresponden a la fase de anlisis del proyecto.
3.1.1 Arquitectura del generador de mapas croquis
El generador de mapas croquis en formato SVG para dispositivos mviles permite
satisfacer las peticiones de informacin del cliente considerando el perfil del dispositivo,
es decir, se generarn los mapas de acuerdo a las caractersticas propias del dispositivo.
En la Figura 3-1 se muestra la arquitectura donde se presentan los mdulos
implementados para el desarrollo del proyecto. Los componentes y tecnologas sobre las
cuales se desarroll esta plataforma son las siguientes:
Negocio2sms. Est relacionado con el proveedor del servicio que registra sus
productos o servicios mediante una interfaz Web.
GW-SMS. Realiza la interaccin con el cliente que demanda los servicios.
Geoserver. Servidor de mapas que provee los mapas cartogrficos en diferentes
formatos, los cuales se explotarn a travs de servicios Web.
SketchMapServer. Realiza la generacin del mapa SVG-Tiny realizado por capas
que contienen informacin de los puntos de inters, ruta y los puntos de
referencia.
Base de datos espacial. Proporciona toda la informacin al mdulo que interacta
con el cliente y sirve para almacenar y registrar nuevos proveedores de servicios
desde el mdulo Negocio2sms.

Figura 3-1 Arquitectura del generador de mapas croquis en un contexto de cliente/servidor

El proceso para obtener un mapa tipo croquis en formato SVG-Tiny se describe a


continuacin en los siguientes pasos:

Pgina 34
Captulo III Anlisis y diseo

1. Se realiza una peticin a la aplicacin Web SketchMapServer va HTTP mediante


un dispositivo mvil para obtener un mapa tipo croquis.
2. La aplicacin Web SketchMapServer recibe e interpreta la peticin enviada por el
dispositivo mvil.
3. Se realizan consultas relacionales y espaciales a partir de los datos interpretados
por la aplicacin web. La consulta relacional se realiza para obtener el perfil del
dispositivo mvil, mientras que las consultas espaciales son realizadas para
obtener coordenadas georeferenciales del punto o los puntos de inters destino.
4. Se obtiene el rea de inters mediante los puntos georeferenciales origen y
destino, dicha rea de inters se utiliza para realizar una peticin WMS al servidor
de mapas para obtener como respuesta una imagen en formato SVG v1.0 que
contiene los polgonos que representan las manzanas delimitadas por las calles.
La imagen SVG (Basic) v1.0 obtenida del servidor de mapas es convertido al
formato SVG (Tiny) v1.1 el cual es compatible con los dispositivos mviles.
5. Se obtienen los nodos y las aristas mediante consultas espaciales, para ello se
utiliza el rea de inters obtenido en el punto anterior. A partir de los nodos y las
aristas se genera el grafo del cual se obtiene la ruta origen-destino compuesta por
la unin de nodos mediante las aristas.
6. Se realizan consultas de radio a la base de datos espacial para obtener los puntos
de referencia de cada nodo que contiene la ruta obtenida.
7. Se agregan los elementos ruta y sus puntos de referencia a la imagen SVG-Tiny.
8. Por ltimo se enva la imagen SVG-Tiny del mapa tipo croquis al dispositivo mvil
en respuesta de la peticin realizada va HTTP.

3.1.2 Base de datos espacial


Los Sistemas de Administracin de Bases de Datos Espaciales (SDBMS) tienen como
objetivo el proveer todos los servicios de los DBMS relacionales y una administracin
efectiva y eficiente de datos espaciales. Los requerimientos y tcnicas que se necesitan
para modelar objetos geogrficos que tienen extensin, ubicacin, operaciones
geomtricas (unin, interseccin, resta, entre otros) y relaciones especiales son
complejos, haciendo insuficientes los servicios que ofrecen los sistemas de bases de
datos tradicionales.
Los sistemas de base de datos espaciales cuentan con dos tipos de representaciones:
1. Objetos espaciales. Son entidades geogrficas distribuidas en un espacio de
representacin que se pueden distinguir, consultar y manipular, por ejemplo
ciudades, rutas, zonas de reforestacin, etc.
2. Espacio. Describe el espacio en s mismo, esto es que se quiere decir algo sobre
cada punto del espacio, es utilizado para describir mapas temticos como la
divisin poltica de un pas.

El modelo en el que nos basamos es el estndar SQL de OpenGIS que contiene dos tipos
de atributos: los atributos espaciales que son valores geomtricos de dos dimensiones
con interpolacin lineal entre sus vrtices y los atributos descriptivos.
Las consultas espaciales en este proyecto de tesis se realizan en el SDBMS PostGIS, el
cual es una extensin al DBMS PostgreSQL que permite el uso de objetos GIS
Pgina 35
Captulo III Anlisis y diseo

(Geographic Information Systems). La especificacin para SQL de caractersticas simples


de OpenGIS define tipos de objetos GIS estndar, los cuales son manipulados por
funciones y un conjunto de tablas de metadatos. Esta especificacin tiene dos tablas de
metadatos:

SPATIAL_REF_SYS GEOMETRY_COLUMNS

PK SRID SRID

AUTH_NAME F_TABLE_CATALOG
AUTH_SRID F_TABLE_SCHEMA
SRTEXT F_TABLE_NAME
PROJ4TEXT F_GEOMETRY_COLUMN
COORD_DIMENSION
TYPE

Figura 3-2 Tablas de metadatos de la especificacin OpenGIS

Se describen las columnas de las tablas de los metadatos de la especificacin OpenGIS


que se muestran en la Figura 3-2:
Tabla GEOMETRY_COLUMNS
F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME. Distingue
totalmente la tabla de caractersticas que contiene la columna geomtrica.
F_GEOMETRY_COLUMN. Nombre de la columna geomtrica en la tabla de
caractersticas.
COORD_DIMENSION. Dimensin espacial de la columna (2D o 3D).
SRID. Es una clave fornea que referencia SPATIAL_REF_SYS.
TYPE. Tipo de objeto espacial (POINT, LINESTRING, POLYGON, MULTYPOINT,
GEOMETRYCOLLECTION). Para un tipo heterogneo se usa el tipo GEOMETRY.

Tabla SPATIAL_REF_SYS
SRID: Valor entero que identifica el sistema de referencia espacial.
AUTH_NAME: Nombre del estndar para el sistema de referencia. Por ejemplo:
EPSG.
AUTH_SRID: Identificador segn el estndar AUTH_NAME. En el ejemplo anterior
es el id segn EPSG.
SRTEXT: Una Well-know text 7 representacin para el sistema de referencia
espacial. Ejemplo: WKT para SRS.
PROJ4TEXT: Proj4 es una librera que usa PostGIS para transformar
coordenadas. Esta columna contiene una cadena con definicin de las
coordenadas de Proj4 para un SRID dado.

7
WKT (Well-Know Text) es la codificacin o sintaxis diseada especficamente para describir objetos
espaciales expresados de forma vectorial.
Pgina 36
Captulo III Anlisis y diseo

PostGIS soporta los objetos GIS definidos por OpenGIS y el API de representacin de la
especificacin OpenGIS pero no tiene varios de los operadores de comparacin. A
continuacin se muestran unos ejemplos de la representacin en modo texto:
POINT(0 0 0)
LINESTRING(0 0,1 1,1 2)
POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))
MULTIPOINT(0 0 0, 1 2 1)
MULTILINESTRING((0 0 0, 1 1 0, 1 2 1),(2 3 1,3 2 1,5 4 1))
MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),(-1 -1 0 -1
-2 0,-2 -2 0,-2 -1 0,-1 -1 0))
GEOMETRYCOLLECTION(POINT(2 3 9),LINESTRING(2 3 4,3 4 5))

En los ejemplos se pueden ver caractersticas con coordenadas en 2D y 3D, las funciones
force_2d() y force_3d() son para convertir una caracterstica a 3D o 2D.
Las consultas espaciales en este proyecto de tesis localizan puntos de inters a partir de
una ubicacin geoespacial, se obtiene la distancia de dos puntos geogrficos y se obtiene
un nmero finito de informacin de los puntos de referencia localizados en un rea
especfica.
La siguiente sentencia representa la forma de obtener puntos de inters a una
determinada distancia de la ubicacin georeferencial del dispositivo mvil.
SELECT distance(s.the_geom, GeometryFromText(POINT(Longitud Latitud), -1))*100000 as distancia,
s.nomservicio, col.descripcion, s.calle, s.numero, col.cp
FROM servicios As s, categoria As c, colonia As col
WHERE distance(s.the_geom, GeometryFromText(POINT(Longitud Latitud), -1))*100000 <= Distancia
ORDER BY distancia

Para la bsqueda de informacin en un contexto geoespacial se necesita tener un rea de


inters llamado Bounding Box (BBOX) que contenga informacin referente a datos
geogrficos. En esta rea de inters existe informacin asociada a un mapa o un
repositorio geoespacial. En la Figura 3-3 se muestra la representacin de los puntos
mximos y mnimos de un BBOX.

xMin xMax

yMax

yMin

. Figura 3-3 Representacin de un BBOX

Pgina 37
Captulo III Anlisis y diseo

En el contexto de los servicios basados en localizacin se encuentra informacin de las


manzanas, calles, puntos de inters y puntos de referencia que representan instituciones
pblicas o privadas que prestan algn servicio a usuarios o instituciones.
La siguiente sentencia SQL genera un BBOX definido por un punto georeferencial y una
distancia radial.
SELECT CAST(ST_Expand(ST_GeomFromText(POINT(x y)), distance) AS BOX2D)

Sin embargo, al utilizar esta rea para realizar peticiones Web Map Service al servidor de
mapas se obtiene un mapa con reas innecesarias y un incremento en el tiempo para la
generacin de las rutas, ya que se obtiene informacin no pertinente para el usuario. Por
ello se realiza un proceso para obtener el BBOX de bsqueda a partir de los puntos de
inters. El procedimiento para generar el BBOX es el siguiente:

i. Obtener puntos de inters mediante consulta a la base de datos espacial.


ii. Comparar los valores georeferenciales de longitud de los puntos de referencia
que se obtuvieron y la ubicacin georeferencial del dispositivo mvil, con el fin
de obtener los valores georeferenciales de longitud mnimo y mximo.
iii. Comparar los valores georeferenciales de latitud de los puntos de referencia
que se obtuvieron y la ubicacin georeferencial del dispositivo mvil, con el fin
de obtener los valores georeferenciales de latitud mnimo y mximo.
iv. Generar el BBOX a partir de los datos obtenidos en los pasos ii y iii, el BBOX
se presenta de la siguiente forma: (minLongitud minLatitud, maxLongitud
maxLatitud).

En la siguiente sentencia SQL se utiliza el BBOX generado para obtener las aristas que
representan las calles.
SELECT DISTINCT street.gid, sum(length(street.the_geom))*100000 as largo, numpoints(the_geom),
astext(startpoint(street.the_geom)) as inicio, x(startpoint(street.the_geom)), y(startpoint(street.the_geom)),
astext(endpoint(street.the_geom))as fin, x(endpoint(street.the_geom)), y(endpoint(street.the_geom)),
sum(length(street.the_geom))*100000 as largo, astext(reverse(the_geom)) as geom_inverso
FROM street
WHERE street.the_geom && BOX3D(xMin yMin, xMax yMax)::box3d
GROUP BY street.the_geom,street.gid

La siguiente sentencia SQL se utiliza para obtener los nodos que representan las
intersecciones de las calles.
SELECT DISTINCT nodos.gid as id, AsText(nodos.the_geom) as nodos, X(the_geom),Y(the_geom)
FROM nodos
WHERE nodos.the_geom && BOX3D(xMin yMin, xMax yMax)::box3d
ORDER BY id

Los puntos de referencia se obtienen a partir de las consultas espaciales realizadas a los
nodos que integran la ruta mnima. La siguiente sentencia SQL obtiene los puntos de
referencia, en donde cada nodo es representado por una coordenada georeferencial

Pgina 38
Captulo III Anlisis y diseo

longitud-latitud, la distancia mxima que se puede ubicar un punto de referencia con


respecto al nodo de la ruta mnima es de 10 metros.
SELECT DISTINCT s.nomservicio, s.calle, s.numero, c.descripcion, distance(the_geom,
GeomFromText(POINT(longitudPOI latitudPOI), -1))*100000 as distancia, astext(the_geom) as point
FROM servicios as s, colonia as c
WHERE distance( s.the_geom, GeometryFromText(POINT(longitudPOI latitudPOI), -1))*100000 <= 10
ORDER BY distancia

3.1.3 Algoritmo de ruta


Las aplicaciones actuales para la bsqueda de rutas usualmente calculan la ruta desde un
origen hacia algn destino basado en el camino ms corto el camino ms rpido. Sin
embargo, las investigaciones en esta rea indican que la generacin de las instrucciones
de las rutas depende de diversos factores, tales como la distancia, la cantidad de puntos
de la red a analizar y la complejidad de factores externos (trfico, cierre de calles, etc.)
externos al momento de decidir cul es el camino idneo para obtener la ruta final.
Los enfoques recientes para representar una ruta se hace por medio de instrucciones de
la ruta previamente calculada, es decir, se calcula la ruta mnima o la ruta ms rpida
aadindoles informacin a cada nodo asociado a datos contenidos en repositorios.
Nuestro algoritmo busca la ruta entre un origen y un destino dado una red geogrfica. El
algoritmo est basado en el algoritmo de camino mnimo de Dijkstra que se muestra en la
Figura 3-4. Los libros especifican dos principios importantes que se emplean cuando se
proveen instrucciones a las rutas, los puntos de referencia como el primer principio y el
segundo consta de una combinacin de mltiples puntos de decisin consecutivos dentro
una instruccin simple los puntos de referencia.
Los puntos de referencia en esta tesis son importantes porque permiten mostrar servicios
pblicos y privados en el espacio geogrfico de la ruta, lo que permite una mejor
orientacin en la bsqueda del punto de inters.
1 N=nmero de nodos
2 //se crea un arreglo grafo[N][N]
3 mientras i < grafoTamao hacer
4 mientras j < grafo[i]Tamao hacer
5 grafo[i,j]=infinito
6 fin_mientras
7 fin_mientras
8 double[] Ruta (grafo)
9 //se crean dos arreglos del tamao del grafo, nodoProcesado y caminoMinino
10 mientras i < nodoProcesadoTamao hacer
11 nodoProcesado[i] = verdadero
12 fin_mientras
13 //se crean las distancias de los nodos, tomando como origen el nodo 0
14 mientras i < caminoMinimoTamao hacer
15 caminoMinimo[i]=grafo[0][i]
16 fin_mientras
17 //Se busca el nodo que no se haya calculado
18 mientras i < nodoProcesadoTamao -2 hacer
19 mientras nodoProcesado[k] hacer
20 k=k+1

Pgina 39
Captulo III Anlisis y diseo

21 fin_mientras
22 //Se comprueba que el vrtice elegido es el de menor distancia al origen
23 l=k
24 mientras k < nodoProcesadoTamao hacer
25 si nodoProcesado[k] y caminoMinimo[l] > caminoMinimo[k] entonces
26 l=k
27 fin_si
28 fin_mientras
29 nodoProcesado[l]=falso
30 k=1
31 //Se actualizan las distancias
32 mientras k < nodoProcesadoTamao hacer
33 si nodoProcesado[k] y caminoMinimo[k] > caminoMinimo[l]+grafo[l][k] entonces
34 caminoMinimo[k]=caminoMinimo[l]+grafo[l][k]
35 fin_si
36 fin_mientras
37 fin_mientras
Figura 3-4 Algoritmo de Dijkstra

El proceso para obtener la ruta mnima se describe en el diagrama de flujo de la Figura


3-9, para aplicar el algoritmo de Dijkstra se requiere un grafo conexo representado por
una matriz de adyacencia donde se almacenan los nodos totales, las aristas adyacentes
de cada nodo y la distancia de cada arista como su peso.
El procedimiento que se realiz se describe a continuacin:
i. El primer paso es obtener el rea de inters de la bsqueda, para ello se realizan
consultas a la base de datos espacial LBS en funcin de las coordenadas origen y
destino. En la Figura 3-5(a) se muestra una red geogrfica de calles, mientras que
en la Figura 3-5(b) se muestra un rea de inters que se obtiene de la consulta
realizada a la base de datos espacial.

a b

Figura 3-5 Representacin del rea de inters

ii. El rea de inters que se obtiene se utiliza para obtener las aristas que
representan las calles y los nodos que representan las intersecciones de calles,
para ello se realizan una consultas espaciales a las tablas street y nodos de la

Pgina 40
Captulo III Anlisis y diseo

BDE. En la Figura 3-6(a) se muestran las aristas, en (b) se muestran los nodos y
en (c) se observa la integracin de las aristas y los nodos.

a b c

Figura 3-6 Aristas y nodos del rea de inters


iii. Este paso consiste en verificar la correspondencia de las aristas con los nodos
obtenidos en el paso anterior, en la Figura 3-6(c) se observan algunas aristas que
no tienen nodos terminales, estos nodos se infieren a partir de las coordenadas
inicio-fin de la arista, la coordenada que no exista en el contenedor de nodos se
etiqueta y es agregado al contenedor temporal de nodos. La Figura 3-7 muestra el
grafo que se obtiene con los nodos inferidos.

Figura 3-7 Grafo con los nodos inferidos

iv. Se desarroll una clase en Java con mtodos y datos temporales que permiten el
almacenamiento de datos temporales. En una matriz bidimensional llamada grafo
se almacenan las longitudes de las calles. Los ndices de la matriz representan los
nodos terminales de cada arista, por lo que cada nodo tiene asociado una etiqueta
numrica nica.
v. Finalmente se aplica el algoritmo de Dijkstra, el mtodo obtenerRutaCorta recibe
los parmetros para ejecutar el algoritmo. Al final retorna una lista que representan
los nodos que representan la ruta. Los valores de la lista sirven para buscar en las
geometras en los vectores temporales que retornan la ruta ms corta del nodo
origen al destino como se muestra en la Figura 3-8.

Pgina 41
Captulo III Anlisis y diseo

Origen

Destino

Figura 3-8 Ruta obtenida del algoritmo de Dijkstra

Figura 3-9 Diagrama de flujo del proceso de obtencin de la ruta

3.1.4 Casos de uso de la aplicacin mvil SketchMap4U


El diseo de la aplicacin mvil se basa en los diagramas de casos de uso y los
diagramas de actividades, en la Figura 3-10 se muestra el diagrama general de casos de
uso de la aplicacin mvil.

3.1.4.1 Caso de uso general


Se consideran como actor al dispositivo mvil cliente, los casos de uso principales son:
configurar RMS, crear y enviar peticin HTTP.

Pgina 42
Captulo III Anlisis y diseo

uc SketchM...

Configurar RMS

Construir peticin
HTTP

Dispositiv o Mv il

Env iar peticin HTTP

Figura 3-10 Diagrama general de los casos de uso de la aplicacin SketchMap4U

3.1.4.2 Caso de uso: Configurar RMS


La Figura 3-11 representa el caso de uso que permite al usuario configurar la aplicacin
en su dispositivo mvil. MIDP8 define una sencilla base de datos orientada a registros que
permite almacenar a las aplicaciones datos de forma persistente. Esta base se denomina
Record Management System (RMS). Este caso de uso incluye tres casos: crear, leer y
actualizar RMS, as tambin se puede actualizar RMS.

Figura 3-11 Diagrama de caso de uso: CU1 Configurar RMS

8
Mobile Information Device Profile (MIDO) define el ambiente de ejecucin estndar para aplicaciones Java
que se ejecutan en telfonos celulares.
Pgina 43
Captulo III Anlisis y diseo

Tabla 3-1 Descripcin del caso de uso: CU1 Configurar RMS

ID: CU1 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-12.
Nombre: Configurar RMS
Actores: Dispositivo mvil.
Descripcin: Permite configurar una base de datos simple mediante RMS
Precondiciones: 1. Los datos de configuracin default deben ser ledos y guardados en
memoria voltil.
Poscondiciones: La aplicacin tendr la configuracin de acceso al servidor.
Escenario de xito 1 1. Se crea la base de datos RMS con los datos de configuracin default.
2. No se actualizan los datos del RMS.
3. Se termina el proceso.
Escenario de xito 2 1. Se crea la base de datos RMS con los datos de configuracin default.
2. Se leen los datos del RMS a visualizar.
3. Se actualizan los datos del RMS.
4. Se termina el proceso.
Escenario de fracaso 1: 1. Se crea la base de datos RMS con los datos de configuracin default.
2. No se crea el RMS.
3. Se lanza una excepcin.
4. Se termina el proceso.
Escenario de fracaso 2: 1. Se crea la base de datos RMS con los datos de configuracin default.
2. Se leen los datos del RMS a visualizar.
3. No se leen correctamente los datos.
4. Se lanza una excepcin.
5. Se termina el proceso.
Incluye: CU1.1 Crear RMS, CU1.2 Leer RMS, CU1.3 Actualizar RMS
Suposiciones: Se supone que la configuracin est disponible cada vez que se quiera
actualizar.

Figura 3-12 Diagrama de actividad del caso de uso: CU1 Configurar RMS

Pgina 44
Captulo III Anlisis y diseo

Tabla 3-2 Descripcin del caso de uso: CU1.1 Crear RMS

ID: CU1.1 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-13.
Nombre: Crear RMS
Actores: Dispositivo mvil.
Descripcin: Permite crear una base de datos simple mediante RMS en el dispositivo mvil.
Precondiciones: 1. Los datos de configuracin default deben ser ledos y guardados en
memoria voltil.
Poscondiciones: Se crea una base de datos en el dispositivo mvil para acceder al servidor.
Escenario de xito 1. Se crea el registro de almacenamiento.
2. Se instancia el detector de registros (RecordListener).
3. Se agregan los registros.
4. Se cierra el almacenamiento de registros.
5. Se termina el proceso.
Escenario de fracaso 1. Se crea el registro de almacenamiento.
2. No se crea correctamente el registro de almacenamiento.
3. Se lanza una excepcin.
4. Se termina el proceso.
Incluye:
Suposiciones: Se supone que se ha creado la base de datos RMS en memoria del dispositivo
mvil.

act CrearRMS

Inicio

Crear registro de almacenamiento


(RecordStore)

No
Excepcin RecordStore correct o

Si

Instanciar detector de registro


(RecordListener)

Agregar registro

Si
Aadir mas registros

No

Cerrar almacenamiento de registro


(closeRecordListener)

Fin

Figura 3-13 Diagrama de actividad del caso de uso: CU1.1 Crear RMS

Pgina 45
Captulo III Anlisis y diseo

Tabla 3-3 Descripcin del caso de uso: CU1.2 Leer RMS

ID: CU1.2 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-14.
Nombre: Leer RMS
Actores: Dispositivo mvil.
Descripcin: Permite leer los datos de la base de datos RMS contenido en el dispositivo
mvil.
Precondiciones: 1. Se han de haber guardado los datos en la base de datos RMS.
Poscondiciones: Se leen los datos de la base de datos en el dispositivo mvil para acceder al
servidor.
Escenario de xito 1. Se abre el RMS.
2. Se instancia el detector de registros (RecordListener).
3. Se leen correctamente los registros que contiene el RMS
4. Cerrar almacenamiento de registros.
5. Se termina el proceso.
Escenario de fracaso 1. Se abre el registro de almacenamiento.
2. Se instancia el detector de registros (RecordListener).
3. Se leen los registros que contiene el RMS.
4. No se leen correctamente los registros del RMS.
5. Se lanza una excepcin.
6. Se termina el proceso.
Incluye:
Suposiciones: Se supone que se obtienen los datos de configuracin que contiene el RMS.

act LeerRMS

Inicio

Abrir registro de alamacenamiento


(RecordStore)

Instanciar detector de registros


(RecordListener)

Leer registro por indices


getRecord(index)

Si

No Si
Excepcin Leido correctamente Leer otro registro

No

Cerrar el registro de
almacenamiento

Fin

Figura 3-14 Diagrama de actividad del caso de uso: CU1.2 Leer RMS

Pgina 46
Captulo III Anlisis y diseo

Tabla 3-4 Descripcin del caso de uso: CU1.3 Actualizar RMS

ID: CU1.3 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-15.
Nombre: Actualizar RMS
Actores: Dispositivo mvil.
Descripcin: Permite actualizar la base de datos RMS contenido en el dispositivo mvil.
Precondiciones: 1. Se leen los datos contenidos en la base de datos RMS.
Poscondiciones: Se actualizan los datos de la base de datos en el dispositivo mvil para acceder
al servidor.
Escenario de xito 1. Se abre el RMS.
2. Se instancia el detector de registros (RecordListener).
3. Se actualizan los registros que contiene el RMS mediante ndices.
4. Cerrar almacenamiento de registros.
5. Se termina el proceso.
Escenario de fracaso 1. Se abre el registro de almacenamiento.
2. Se instancia el detector de registros (RecordListener).
3. Se actualizan los registros que contiene el RMS mediante ndices.
4. No se agregan correctamente los registros del RMS.
5. Se lanza una excepcin.
6. Se termina el proceso.
Incluye:
Suposiciones: Se supone que se obtienen los datos de configuracin que contiene el RMS.

act ActualizarRMS

Inicio

Abrir Registro de almacenamiento


(openRecordStore)

Instanciar detector de registros


(RecordListener)

Actualizar registro por ndice


(setRecord(index, dato))

Agregado Si
Excepcin Actualizar ms registros
correctamente

No

Cerrar almacenamiento de registro


Si (closeRecordStore)

Fin

Figura 3-15 Diagrama de actividad del caso de uso: CU1.3 Actualizar RMS

Pgina 47
Captulo III Anlisis y diseo

3.1.4.3 Caso de uso: Construir peticin HTTP


El caso de uso de la Figura 3-16 representa la construccin de la trama en el dispositivo
mvil. Permite a la aplicacin mvil SketchMap4U crear la trama de peticin HTTP.

uc ConstruirPeticionHTTP

Construir peticin
HTTP

Dispositiv o Mv il

Figura 3-16 Diagrama de caso de uso: CU2 Construir peticin HTTP

act ConstruirPeticionHTTP

Inicio

Crear dato

No
Excepcin Dato compatible

Si
Si

Agregar dato Exist en otros dat os

No

Crear peticin

Fin

Figura 3-17 Diagrama de actividad del caso de uso: CU2 Construir peticin HTTP

Tabla 3-5 Descripcin del caso de uso: CU2 Construir peticin HTTP

ID: CU2 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-17.
Nombre: Construir trama
Actores: Dispositivo mvil.
Descripcin: Permite construir la trama de la peticin HTTP.
Precondiciones: 1. Tener la configuracin realizada correctamente.
Poscondiciones: Se construye la trama que servir para realizar la peticin HTTP.
Escenario de xito 1. Se crea un dato.
2. Se agregan los datos
3. Se crea la trama a partir de los datos agregados
4. Se termina el proceso.

Pgina 48
Captulo III Anlisis y diseo

Escenario de fracaso 1. Se crea dato.


2. Dato no vlido
3. Se lanza excepcin
4. Se termina el proceso.
Incluye:
Suposiciones: Se supone que se tiene la trama de la peticin HTTP creada.

3.1.4.4 Caso de uso: Enviar peticin HTTP


El caso de uso de la Figura 3-18 representa la construccin de la peticin HTTP en el
dispositivo mvil.

uc Env iarTrama

Env iarTrama

Dispositiv o mv il

Figura 3-18 Diagrama de caso de uso: CU3 Enviar trama

act Env iarTrama

Inicio

Establecer conexin con


el serv idor

No
Excepcin Conexin
establecida

Trama
Env iar trama enviada Terminar proceso

No

Fin

Figura 3-19 Diagrama de actividad del caso de uso: CU3 Enviar trama

Tabla 3-6 Descripcin del caso de uso: CU3 Enviar trama

ID: CU3 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-19.
Nombre: Enviar trama
Actores: Dispositivo mvil.
Descripcin: Enva una peticin HTTP al servidor.
Precondiciones: 1. Tener creado la trama de envo.

Pgina 49
Captulo III Anlisis y diseo

Poscondiciones: La trama es enviada al servidor.


Escenario de xito 1. Se establece conexin con el servidor
2. Se enva la trama por HTTP.
3. Terminar proceso.
Escenario de fracaso 1. Se establece conexin con el servidor.
2. No se establece la conexin.
3. Se lanza excepcin
4. Terminar proceso.
Escenario de fracaso 1. Se establece conexin con el servidor.
2. Se enva la trama.
3. Ocurre error en el envo de la trama.
4. Se lanza excepcin.
5. Terminar proceso
Incluye:
Suposiciones:

3.1.5 Casos de uso de la aplicacin web SketchMapServer


El diseo de la aplicacin servidora SketchMapServer se basa en los diagramas de casos
de uso y los diagramas de actividades. Se muestra en la Figura 3-20 el diagrama general
de casos de uso, mostrndose las funciones principales que ste ofrece.

3.1.5.1 Casos de uso general


Se considera como actor el servidor. Los casos de uso principales son: recibir peticin
HTTP, interpretar peticin, generar mapa SVGTiny y enviar mapa SVGTiny.

uc GeneralSketchMapSer...

Recibir peticin HTTP

Interpretar peticin
HTTP

Serv idor
Generar mapa SV GT

Env iar mapa SV GT

Figura 3-20 Diagrama general de casos de uso de la aplicacin SketchMapServer

Pgina 50
Captulo III Anlisis y diseo

3.1.5.2 Caso de uso: recibir peticin HTTP


La Figura 3-21 muestra el diagrama de caso de uso Recibir peticin HTTP. Se describe la
recepcin de la peticin HTTP que contiene datos pertinentes para realizar una consulta
al servidor SketchMapServer.

uc RecibirPeticionHTTP

Recibir peticin
HTTP

Serv idor

Figura 3-21 Diagrama de caso de uso: CU4 Recibir peticin HTTP

act RecibirPeticionHTTP

Inicio

Ej ecutar aplicacin Web


SketchMapServ er

No
Servidor Web
ejecutandose

Si

Esperar peticiones HTTP

Excepcin

Recibir peticin HTTP

No
Peticin correcta

Si

Fin

Figura 3-22 Diagrama de actividad del caso de uso: CU4 Recibir peticin HTTP
Tabla 3-7 Descripcin del caso de uso: CU4 Recibir peticin HTTP

ID: CU4 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-22.
Nombre: Recibir peticin HTTP
Actores: Servidor.
Descripcin: Recibe una peticin HTTP.
Precondiciones: 1. Servidor de aplicaciones ejecutndose.

Pgina 51
Captulo III Anlisis y diseo

Poscondiciones:
Escenario de xito 1. Se ejecuta la aplicacin web SketchMapServer.
2. Se esperan peticiones HTTP.
3. Se reciben las peticiones HTTP
4. Terminar proceso.
Escenario de fracaso 1. Se ejecuta la aplicacin web SketchMapServer.
2. Error al ejecutar la aplicacin.
3. Se lanza excepcin.
4. Terminar proceso.
Escenario de fracaso 1. Se ejecuta la aplicacin web SketchMapServer.
2. Se esperan peticiones HTTP
3. Se reciben las peticiones HTTP.
4. Error en la recepcin de la peticin.
5. Se lanza excepcin.
6. Terminar proceso
Incluye:
Suposiciones:

3.1.5.3 Caso de uso: Interpretar peticin HTTP


La Figura 3-23 muestra el diagrama de caso de uso Interpretar peticin HTTP. Se
describe la obtencin de los datos que contiene la peticin HTTP.

uc InterpretarPeticionHTTP

Interpretar peticin
HTTP

Serv idor

Figura 3-23 Diagrama de caso de uso: CU5 Interpretar peticin HTTP

Tabla 3-8 Descripcin del caso de uso: CU5 Interpretar peticin HTTP

ID: CU5 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-24.
Nombre: Interpretar peticin HTTP
Actores: Servidor.
Descripcin: Interpreta una peticin HTTP.
Precondiciones: 1. Peticin HTTP recibida
Poscondiciones:
Escenario de xito 1. Se obtiene la peticin HTTP
2. Se lee la peticin HTTP.
3. Se obtienen los datos.
4. Terminar proceso.
Escenario de fracaso 1. Se obtiene la peticin HTTP
2. Error al obtener la peticin.
3. Se lanza excepcin.
4. Terminar proceso.
Escenario de fracaso 1. Se obtiene la peticin HTTP
2. Se lee la peticin HTTP.
3. La peticin no es vlida.
4. Se lanza excepcin.

Pgina 52
Captulo III Anlisis y diseo

5. Terminar proceso.
Suposiciones:
act InterpretarPeticionHTTP

Inicio

Obtener peticin HTTP

No Peticin
Excepcin correct a

Si
No Trama
Leer peticin
vlida

Si

Obtener datos

Fin

Figura 3-24 Diagrama de actividad del caso de uso: CU5 Interpretar peticin HTTP

3.1.5.4 Caso de uso: Generar mapa SVG-Tiny


La Figura 3-25 muestra el diagrama de caso de uso CU6 Generar mapa SVGTiny. Se
describen las funciones bsicas para generar la imagen SVGTiny adecuado para el
dispositivo mvil.

Figura 3-25 Diagrama de caso de uso: CU6 Generar mapa SVGTiny

Tabla 3-9 Descripcin del caso de uso: CU6.1 Obtener perfil del dispositivo mvil

ID: CU6.1 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-26.
Nombre: Obtener perfil del dispositivo mvil.

Pgina 53
Captulo III Anlisis y diseo

Actores: Servidor.
Descripcin: Obtener perfil del dispositivo mvil.
Precondiciones: 1. Peticin HTTP interpretada
Poscondiciones:
Escenario de xito 1. Se abre conexin a postgres.
2. Se consulta compatibilidad del dispositivo mvil.
3. Se obtiene el perfil del dispositivo mvil.
4. Se cierra la conexin a postgres.
5. Terminar proceso.
Escenario de fracaso 1. Se abre conexin a postgres.
2. Error: conexin a postgres cerrada.
3. Se lanza excepcin.
4. Terminar proceso.
Escenario de fracaso 1. Se abre conexin a postgres.
2. Se consulta compatibilidad del dispositivo mvil.
3. No existe compatibilidad con la aplicacin.
4. Se lanza excepcin.
5. Terminar proceso.
Incluye:
Suposiciones:

act ObtenerPerfilDispositi...

Inicio

Abrir conexin postgres

No
Conexin
abierta

Si

Consultar dispositiv o
Excepcin mv il

No Si
Obtener perfil del
Encontrado
dispositiv o mv il

Cerrar conexin postgres

Fin

Figura 3-26 Diagrama de actividad del caso de uso: CU6.1 Obtener perfil del dispositivo

La Figura 3-27 muestra el caso de uso CU6.2 Crear imagen SVGTiny. Describen las
funciones bsicas para generar la imagen SVGTiny.

Pgina 54
Captulo III Anlisis y diseo

Figura 3-27 Diagrama de caso de uso: CU6.2 Crear imagen SVGTiny

Tabla 3-10 Descripcin del caso de uso: CU6.2.1 Obtener mapa SVG

ID: CU6.2.1 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-28.
Nombre: Obtener mapa SVG.
Actores: Servidor.
Descripcin: Obtener el mapa imagen SVG del servidor de mapas.
Precondiciones: 1. Tener el tamao del mapa de acuerdo al perfil del dispositivo mvil.
Poscondiciones:
Escenario de xito 1. Se abre conexin a postgis.
2. Se obtiene el BBOX mediante consultas a Postgis mediante las
coordenadas georeferenciales origen.
3. Se realiza una peticin WMS al servidor de mapas con los parmetros del
dispositivo mvil y el BBOX.
4. Se obtiene el mapa SVG del servidor de mapas.
5. Terminar proceso.
Escenario de fracaso 1. Se abre conexin a Postgis.
2. Error: conexin a Postgis cerrada.
3. Se lanza excepcin.
5. Terminar proceso.
Escenario de fracaso 1. Se abre conexin a Postgis.
2. Se obtiene el BBOX mediante consultas a Postgis mediante las
coordenadas georeferenciales origen.
3. Se realiza una peticin WMS al servidor de mapas con los parmetros del
dispositivo mvil y el BBOX.
4. El servidor de mapas no est ejecutndose.
5. Se lanza excepcin

Pgina 55
Captulo III Anlisis y diseo

6. Terminar proceso.
Incluye:
Suposiciones:
act ObtenerMapaSVG

Inicio

Abrir conexin postgis

No Si Obtener BBOX consultado a la


Conexin
correct a BDE mediante las coordenadas
georeferenciales

Excepcin
Realizar peticin WMS al serv idor
de mapas con los parmetros del
dispositiv o mv il y el BBOX

No No
Servidor de Mapas
Obtener Mapa SVG
activo

Fin

Figura 3-28 Diagrama de actividad del caso de uso: CU6.2.1 Obtener mapa SVG

Tabla 3-11 Descripcin del caso de uso: CU 6.2.2 Convertir SVG a SVGTiny

ID: CU6.2.2 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-29.
Nombre: Convertir SVG a SVGTiny.
Actores: Servidor.
Descripcin: Se realiza la conversin de la imagen SVG a SVGTiny.
Precondiciones: 1. Tener el archivo imagen SVG.
Poscondiciones:
Escenario de xito 1. Se obtiene la imagen SVG.
2. Se crea un objeto SAX para lectura.
3. Se obtiene el elemento root y la lista de sus propiedades.
4. Se crea el elemento root del SVGTiny y el namespace
5. Se leen los atributos del elemento SVG y se agregan al elemento root del
SVGTiny.
6. Se leen los elementos hijos del SVG y se agregan a al elemento hijo del
SVGTiny.
7. Se agrega el elemento hijo SVGTiny al root SVGTiny
8. Se crea documento y su docType.
9. Se agregan al documento el elemento root SVGTiny y el docType.
10. Terminar proceso.
Incluye:
Suposiciones:

Pgina 56
Captulo III Anlisis y diseo

act Conv ertirSVGaSVGT

Inicio

Obtener imagen SVG Crear obj eto SAX de Obtener el elemento root y
lectura Crear elemento root del
la lista de sus propiedades
SVGT y su Namespace

El Namespace es http://www.w3.org/2000/svg.
Namespace de referencias es http://www.w3.org/1999/xlink Leer atributo del elemento
root SVG
El docType del archivo SVG es
-//W3C//DTD SVG 1.1 Tiny//EN","http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd
Agregar atributo ledo del
Los atributos que identifican al archivo SVG Tiny son los siguientes: SVG al elemento root SVGT
Version = 1.1
baseProfile=Tiny
viewBox= 0 0 x y

Agregar atributos v ersion, No Si


baseProfile y v iew Box a la Existe otro atributo
imagen SVGT

Obtener los elemetos


hij os del elemento root
del SVG
Si

Leer elemento hij o del Existen elementos


SVG y agregarlo al hijos SVG
elemento hij o del SVGT

No

Agregar elemento hij o


Crear documento y su SVGT al elemento root
DocType SVGT

Agregar docType y el
elemento rootSVGT al
documento
Fin

Figura 3-29 Diagrama de actividad del caso de uso: CU6.2.2 Convertir SVG a SVGTiny

Tabla 3-12 Descripcin del caso de uso: CU6.2.3 Generar ruta

ID: CU6.2.3 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-30.
Nombre: Generar ruta.
Actores: Servidor.
Descripcin: Generar ruta a partir de una red de calles contenida en la base de datos
espacial.
Precondiciones: 1. Tener los puntos georeferenciales origen y destino.
Poscondiciones:
Escenario de xito 1. Ingresar grafo G, nodo origen y el nodo destino.
2. Construir arreglo de tamao del total de nodos contenidos en G.
3. Iniciar valores del arreglo, D[nodo_inicial] =0, el resto -1.
4. Posicionarse en el primer vrtice asumiendo a Di como ruta mnima.
5. Existe al menos un nodo adyacente
6. Di > (Da + distancia (a, vi)).
7. Di = Da + distancia (a, vi).
8. Repetir desde el punto 5 hasta encontrar la ruta hacia el nodo final.
9. Guardar ruta generada.
10. Terminar proceso.

Pgina 57
Captulo III Anlisis y diseo

Escenario de fracaso 1. Ingresar grafo G, nodo origen y el nodo destino.


2. Construir arreglo de tamao del total de nodos contenidos en G.
3. Iniciar valores del arreglo, D[nodo_inicial] =0, el resto -1.
4. Posicionarse en el primer vrtice asumiendo a Di como ruta mnima.
5. Existe al menos un nodo adyacente
6. No existe nodo adyacente.
7. Lanzar excepcin
8. Terminar proceso.
Incluye:
Suposiciones:
act GenerarRuta

Inicio

Ingresar grafo G, nodo Construir arreglo del


origen y destino nmero total de Se asume Di al v ertice 1
elementos del grafo como ruta mnima

No Exist e nodo
Excepcin adyacente Vi

Si

Si
Di >(Da+distancia(a, vi)) Di = Da + distancia(a, v i)

No

Da es nodo final No

Si

Obtener ruta generada

Fin

Figura 3-30 Diagrama de actividad del caso de uso: CU6.2.3 Generar ruta

Tabla 3-13 Descripcin del caso de uso: CU6.2.4 Obtener puntos de referencia

ID: CU6.2.4 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-31.
Nombre: Obtener puntos de referencia.
Actores: Servidor.
Descripcin: Generar los puntos de referencia de cada nodo que se obtiene de la ruta
generada.
Precondiciones: 1. Tener una ruta generada.
Poscondiciones:
Escenario de xito 1. Abrir conexin Postgis.
2. Consultar a la BDE areas radiales en base a las coordenadas
georeferenciales de cada nodo de la ruta generada
3. Obtener datos del punto de referencia.
4. Obtener puntos de referencia.

Pgina 58
Captulo III Anlisis y diseo

5. Terminar proceso
Escenario de fracaso 1. Abrir conexin Postgis.
2. La conexin no se establece correctamente.
3. Lanzar excepcin.
4. Terminar proceso.
Escenario de fracaso 1. Abrir conexin Postgis.
2. Consultar a la BDE areas radiales en base a las coordenadas
georeferenciales de cada nodo de la ruta generada
3. No existe Punto de inters.
4. Lanzar excepcin.
5. Terminar proceso.
Incluye:
Suposiciones:
act ObtenerPuntosReferencia

Inicio

Abrir conexin postgis

No Si Consultar a la BDE areas radiales en


Conexin correcta base a las coordenadas
Excepcin georeferenciales de cada nodo de la
ruta generada

Si
Exist en Puntos de Obtener datos del punto
inters de referencia

No
Existe otro punt o Si
de referencia

No

Obtener los puntos de


referencia

Fin

Figura 3-31 Diagrama de actividad del caso de uso 6.2.4 Obtener puntos de referencia

Tabla 3-14 Descripcin del caso de uso: CU6.2.5 Agregar datos al SVGTiny

ID: CU6.2.5 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-32.
Nombre: Agregar datos al SVGTiny
Actores: Servidor.
Descripcin: Agregar datos a las capas del archivo SVGTiny
Precondiciones: 1. Conversin del SVG a SVGTiny.
2. Ruta generada.
3. Puntos de referencia obtenidos.
Poscondiciones: Mapa croquis generado
Escenario de xito 1. Obtener la imagen SVGTiny, ruta, puntos de referencia y nmero de capa.
2. Obtener el documento y el root del SVGTiny.
3. Crear elemento g y agregarle atributos.
4. Leer ruta.

Pgina 59
Captulo III Anlisis y diseo

5. Validar ruta.
6. Leer puntos de la ruta.
7. Agregar los elementos lnea al SVGTiny.
8. Leer punto de referencia
9. Validar punto de referencia
10. Obtener puntos de referencia.
11. Agregar elemento punto y texto al SVGTiny
12. Crear archivo SVGTiny.
13. Terminar proceso.
Incluye:
Suposiciones:

Figura 3-32 Diagrama de actividad del caso de uso: CU6.2.5 Agregar datos al SVGTiny

Pgina 60
Captulo III Anlisis y diseo

3.1.5.5 Caso de uso: Enviar mapa SVGTiny


La Figura 3-33 muestra el diagrama de caso de uso CU7 Enviar mapa SVGTiny.
uc Env iarSVGT

Env iar mapa SV GT

Serv idor

Figura 3-33 Diagrama de caso de uso: CU7 Enviar mapa SVGTiny

act Env iarMapaSVGT

Inicio

Crear fluj o de salida de


datos

No
Excepcin Flujo de salida Env iar mapa SVGT
abierto

No
SVGT enviado

Fin

Figura 3-34 Diagrama de actividad del caso de uso: CU7 Enviar mapa SVGTiny

Tabla 3-15 Descripcin del caso de uso: CU7 Enviar mapa SVGTiny

ID: CU7 El diagrama de actividades que incluye el escenario de xito y los


escenarios de fracaso se muestra en la Figura 3-34.
Nombre: Enviar mapa SVGTiny.
Actores: Servidor.
Descripcin: Enva el mapa SVGTiny en respuesta a la peticin HTTP realizada.
Precondiciones: 1. Mapa SVGTiny generado
Poscondiciones:
Escenario de xito 1. Crear flujo de salida de datos.
2. Enviar mapa SVGTiny.
3. Terminar proceso
Escenario de fracaso 1. Crear flujo de salida de datos.
2. Error al crear el flujo de salida de datos.
3. Se lanza excepcin.
4. Terminar proceso
Escenario de fracaso 1. Crear flujo de salida de datos.
2. Enviar mapa SVGTiny.
3. SVGTiny no enviado.
4. Se lanza excepcin.

Pgina 61
Captulo III Anlisis y diseo

5. Terminar proceso
Incluye:
Suposiciones:

3.2 Diseo
El proyecto del generador de mapas croquis en formato SVGTiny consta de 4 paquetes,
mismos que se describen en la Tabla 3-16, la Figura 3-35 muestra el diagrama general
de los paquetes desarrollados. El nombre de los paquetes se asign siguiendo las
recomendaciones descritas en el artculo Estructura de paquetes [SG, 2005]
Tabla 3-16 Descripcin de los paquetes de la aplicacin SketchMapServer.
PAQUETE DESCRIPCIN
mx.edu.cenidet.gateway.database Contiene las clases que implementan las conexiones a la
base de datos postgres y la extensin a Postgis.
mx.edu.cenidet.gateway.maps Contiene las clases que generan los datos para crear las
capas de la imagen SVG-Tiny (mapa, ruta y puntos
referencia).
mx.edu.cenidet.gateway.maps.coordinates Contiene las clases que convierten coordenadas
Georeferenciales a UTM y viceversa, asimismo se obtiene la
distancia entre dos puntos y su punto medio.
mx.edu.cenidet.gateway.servlet Este paquete consta de las clases que reciben y responden
las peticiones HTTP.
mx.edu.cenidet.gateway.utils Contiene clases necesarias para la obtencin de los
directorios, conversin de coordenadas georeferenciales a
pixeles.
mx.edu.cenidet.gateway.mobiledevice Este paquete tiene las clases que contiene el perfil del
dispositivo mvil.
mx.edu.cenidet.gateway.routing Contiene las clases del algoritmo de ruta.
mx.edu.cenidet.gateway.SVGTiny Es el paquete donde estn las clases que convierten la
imagen SVG a SVG-Tiny y los mtodos para aadirle
nuevas capas.

Figura 3-35 Diagrama general de paquetes del generador de mapas croquis SVGTiny

Pgina 62
Captulo III Anlisis y diseo

3.2.1 Paquetes diseados


A continuacin se describen las clases que contienen los paquetes diseados, as como
las relaciones que existen entre stos.

3.2.1.1 Paquete mx.edu.cenidet.gateway.database


Este paquete contiene las clases que representan la conexin a la base de datos
espacial, as como la configuracin de dichas conexiones y el registro de usuarios (ver
Figura 3-36).

Figura 3-36 Diagrama de clases del paquete mx.edu.cenidet.gateway.database

Las clases que conforman el paquete son las siguientes:


configuracion. Los mtodos de esta clase permiten obtener los datos de
configuracin localizados en el archivo confPostgres.properties.

Pgina 63
Captulo III Anlisis y diseo

postgres. Los mtodos que proporciona esta clase permiten abrir y cerrar una
conexin al servidor de datos Postgres.
Postgis. Los mtodos que proporciona esta clase permiten abrir y cerrar una
conexin especficamente a la extensin a la base de datos espacial Postgis.
Usuario. Esta clase contiene los datos del usuario.
RegistroUsuarioDAO. Los mtodos de esta clase consultan a la base de datos la
existencia del usuario, en caso contrario se agrega.

La aplicacin Web obtiene del archivo de configuracin los datos necesarios para formar
la URL de conexin. Se abre la conexin y se realizan las consultas a la base de datos
relacional o espacial, si la consulta se realiza con xito se obtienen los datos y se cierra la
conexin. El diagrama de secuencia de este proceso se muestra en la Figura 3-37.

Figura 3-37 Diagrama de secuencia para una conexin a postgres

3.2.1.2 Paquete mx.edu.cenidet.gateway.maps


Este paquete contiene las clases que representan los elementos para crear el archivo
SVG-Tiny, tales como la obtencin del mapa SVG, generacin de la ruta y obtencin de
los puntos de referencia (ver Figura 3-38).

Pgina 64
Captulo III Anlisis y diseo

pkg maps

DataPointOfInteres t MapPOR DataWebMapServ ice

+ DataPointOfInterest() + calculateDistance(ArrayList<String>) : void + DataWebMapService()


+ getCode() : ArrayList<String> + createPORLayer(DataMapRoute, PoiGeoreferenciado, DataPointOfInterest) : boolean + getQueryString() : String
+ getCode(int) : String + getDistance() : double + getRequest() : String
+ getDescription() : ArrayList<String> + getPOR() : String + setArchivo() : void
+ getDescription(int) : String + MapPOR() + setBBox(String) : void
+ getDistance() : ArrayList<String> -mpDAO + setBGColor(String) : void
+ getDistance(int) : String + setFormat(String) : void
+ getEstado() : String MapPORDAO + setHeight(String) : void
+ getIdestado() : int + setLayers(String) : void
+ getIdmunicipio() : int + setRequest(String) : void
+ getMunicipio() : String + iniVarPOIs(int) : void + setStyles(String) : void
+ getNameService() : ArrayList<String> + MapPORDAO() + setTransparent(String) : void
+ getNameService(int) : String + numeroPOIs(Connection, String) : int + setUrl(String) : void
+ getNumber() : ArrayList<String> + obtenerPOIs(PoiGeoreferenciado, DataPointOfInterest, ArrayList<String>) : void + setVersion(String) : void
+ getNumber(int) : String + setWidth(String) : void
+ getNumReg() : int property get
+ getStreet() : ArrayList<String> PointOfInterestDAO
+ getBBOX() : String
+ getStreet(int) : String + getBGCOLOR() : String
+ getXPoint() : ArrayList<String> + getFORMAT() : String
+ getXPoint(int) : double + getDataPointOfInterest() : DataPointOfInterest
-dpoi + getHEIGHT() : int
+ getYPoint() : ArrayList<String> + PointOfInterestDAO()
+ printData() : void + getLAYERS() : String
+ getYPoint(int) : double -dwms + getREQUEST() : String
+ resetVar() : void + SearchPointOfInterest(String, String, PoiGeoreferenciado) : void
+ getSRS() : String
+ setCode(int, String) : void
+ getSTYLES() : String
+ setCode(String) : void + getTRANSPARENT() : boolean
+ setDescription(int, String) : void MapRouteDAO
+ getURL() : String
+ setDescription(String) : void + getVERSION() : String
+ setDistance(int, String) : void + getWIDTH() : int
+ setDistance(String) : void + addNode(int, double, double) : void
+ setEstado(String) : void + datosGrafo(int, String) : void property set
+ setIdestado(int) : void + extraerPuntos(String) : String + setSRS(String) : void
+ setIdmunicipio(int) : void + findStreetNear(double, double) : int
+ setMunicipio(String) : void + generatingGraph() : void
+ setNameService(int, String) : void + getDistanceE2Points(String, String, String) : double[] MapImage
+ getGeomEdge(int) : String
+ setNameService(String) : void
+ setNumber(int, String) : void + getGeomInverseEdge(int) : String
+ getGrafo() : double[] + generateMap(DataMobileDevice, String) : void
+ setNumber(String) : void
+ setNumReg(int) : void + getNaristas() : int + getDirImgSVG() : String
+ setStreet(int, String) : void + getNodo(int) : Point + getExtensionFile(String) : String
+ setStreet(String) : void + getNumberNodes() : int + getFileInputStreamMap() : InputStream
+ setXPoint(int, String) : void + getPDestino() : int + getImageName() : String
+ setXPoint(String) : void + getPfX(int) : double + getWMS() : DataWebMapService
+ setYPoint(int, String) : void + getPfY(int) : double + imageName() : String
+ setYPoint(String) : void + getPiX(int) : double + MapImage()
+ getPiY(int) : double
property get + getPointInitial_Final(String) : String[]
+ getPoint() : ArrayList<String> DataMapRoute
+ getPOrigen() : int
+ getPoint(int) : String + getPuntoF(int) : double
property set + getPuntoI(int) : double + convertGeoRefToPixel(DataMobileDevice, String) : String
+ setPoint(int, String) : void + identifyingFinalNodes() : void + DataMapRoute()
+ setPoint(String) : void + initializeEdgeVar(int) : void + getPointsRoute() : ArrayList<String>
+ initializeNodesVar(int) : void + getRouteGeoespatial() : String
+ MapRouteDAO() + getRoutePoints() : String
DataMapImage + obtainDBNodes(PoiGeoreferenciado, double, double, String) : void + getX(double) : int
+ obtainDBStreet(PoiGeoreferenciado, double, double, String) : void + getY(double) : int
- onStreet(String, double[]) : void + PORGeoespatial(DataMobileDevice, String) : String
+ DataMapImage() + positionOnStreet(int) : double[] + setGeoArea(String) : void
+ getBBOX() : String + redimNode(int, int, double, double) : void + setPORGeoespatial(String) : void
+ getBBOXUTM() : String
+ searchNode(double, double) : int + setRouteGeoespatial(String) : void
+ getBBOXUTM1() : String
+ setTamPixel(int, int) : void
+ getBOX3D() : String
+ getBOX3DUTM() : String -dmr
+ printBBOX() : void MapRoute
+ setGeoDevice(double, double) : void
+ setGeoPOI(String) : String
+ createRouteLayer(PoiGeoreferenciado, DataMobileDevice, double, double, String) : void
+ setGeoPOI(DataPointOfInterest) : void
+ getDataMapRoute() : DataMapRoute
+ setGeoPOIUTM(DataPointOfInterest) : void
+ getRouteGeospatial() : String
+ MapRoute()

Figura 3-38 Diagrama de clases del paquete mx.edu.cenidet.gateway.maps

Las clases que conforman el paquete son las siguientes:


DataPointOfInterest. Representa los datos que contiene el punto de inters
PointOfInterestDAO. Los mtodos que proporciona esta clase permiten realizar
consultas a la BDE de los puntos de inters y se agregan al tipo de dato
DataPointOfInterest.
DataWebMapService. Permite formar una URL con los parmetros necesarios
para solicitar un mapa a un servidor de mapas.

Pgina 65
Captulo III Anlisis y diseo

MapImage. Los mtodos que proporciona esta clase permiten realizar peticiones al
servidor de mapas obteniendo la URL de la clase DataWebMapService, genera
una imagen SVG temporal.
DataMapImage. La funcin de esta clase es construir el rea de peticin al
servidor de mapas (BBOX) de acuerdo al punto georeferencial origen.
DataMapRoute. Esta clase representa la ruta a generar y hace referencia a la
conversin de las coordenadas georeferenciales a pixeles.
MapRoute. Permite generar la ruta y se agrega al tipo de dato DataMapRoute.
MapRouteDAO. Los mtodos que contiene esta clase realizan consultas a la BDE
para obtener el grafo del cual se generar la ruta.
MapPOR. Representa los puntos de referencia de la ruta.
MapPORDAO. Esta clase realiza consultas a la BDE de los puntos de referencia
de cada nodo georeferencial de la ruta y se agregan al tipo de dato MapPOR.

La aplicacin realiza una bsqueda de los puntos de inters a la BDE, mismos que
tomar como etiqueta de destino para generar la ruta, los resultados obtenidos se
agregan a DataPointOfInterest.
Para obtener el mapa SVG se realiza una consulta a la BDE para generar el rea de
bsqueda (BBOX) que servir para crear la URL del WMS, a continuacin se realiza la
peticin al servidor de mapas mediante WMS y se obtiene el mapa.
El diagrama de secuencia del proceso mencionado se muestra en la Figura 3-39.

Figura 3-39 Diagrama de secuencia para la obtencin del mapa SVG

En la Figura 3-40 se muestra el diagrama de secuencia que realiza la generacin de la


ruta. Esto se realiza n veces en base al nmero de puntos de inters obtenidos, se hacen

Pgina 66
Captulo III Anlisis y diseo

consultas a la BDE para obtener los nodos y aristas agregndolos al dato de tipo
DataMapRoute.
Posteriormente se genera el grafo del cual se obtiene la ruta, los puntos georeferenciales
de la ruta son convertidos a pixeles y se retorna la ruta a la aplicacin. Se procede a
obtener los puntos de referencia de cada nodo que integra la ruta mediante consultas a la
base de datos espacial, la informacin obtenida se agrega al tipo de dato MapPOR y se
retorna a la aplicacin SketchMapServer.

Figura 3-40 Diagrama de secuencia para la obtencin de los datos del SVGTiny

3.2.1.3 Paquete mx.edu.cenidet.gateway.maps.coordinates


Este paquete contiene las clases que realizan conversiones georeferenciales a UTM y
viceversa (ver Figura 3-41).

Pgina 67
Captulo III Anlisis y diseo

pkg Coordinates

CoordenadasUTM Conv ertCoordinates CoordenadasGeoreferenciale s

+ CoordenadasUTM() - DistanciaElipsoidal(double) : double + CoordenadasGeoreferenciales()


+ getCoordenadaX() : double + getCoordenadasGeoreferenciales() : CoordenadasGeoreferenciales + getLatitud() : double
+ getCoordenadaY() : double + getCoordenadasUTM() : CoordenadasUTM + getLongitud() : double
+ getZona() : double + GradosARadianes(double) : double -cg + getZona() : double
-cUTM
+ setCoordenadaX(double) : void + Lat2UTM(CoordenadasGeoreferenciales) : boolean + setLatitud(double) : void
+ setCoordenadaY(double) : void - Latitud(double) : double + setLongitud(double) : void
+ setZona(double) : void + LatLonToUTMXY(double, double, double, double[]) : double + setZona(double) : void
property get - MapeaGeoRefToXY(double, double, double, double[]) : void property get
+ getHemisferio() : int - MapeaXYAGeoRef(double, double, double, double[]) : void + getHemisferio() : int
- MeridianoCentralUTM(double) : double
property set property set
+ RadianesAGrados(double) : double
+ setHemisferio(int) : void + setHemisferio(int) : void
+ UTM2Lat(CoordenadasUTM) : boolean
+ UTMToGeoRef(double, double, double, boolean, double[]) : void

Figura 3-41 Diagrama de clases del paquete mx.edu.cenidet.gateway.maps.coordinates

Las clases que conforman el paquete son las siguientes:


CoordenadasUTM. Representa coordenadas UTM(x, y).
CoordenadasGeoreferenciales. Representa coordenadas georeferenciales
(longitud, latitud).
ConvertirCoordinates. Los mtodos de esta clase permiten realizar conversiones
de coordenadas UTM a georeferenciales y viceversa.

En la Figura 3-42 se muestra el diagrama de actividad de las conversiones de


coordenadas georeferenciales-UTM y UTM-georeferenciales. El proceso para convertir
coordenadas UTM a coordenadas georeferenciales es el siguiente: se agregan las
coordenadas (x, y) a un objeto de tipo coordenadasUTM, misma que se enva a la clase
ConvertCoordinates realizando la conversin, obtenindose coordenadas
georeferenciales (longitud, latitud).
El proceso para convertir coordenadas georeferenciales a coordenadas UTM es el
siguiente: se agregan las coordenadas georeferenciales (longitud, latitud) a un objeto de
tipo coordenadasGeorefernenciales, misma que es enviada a la clase ConvertCoordinates
realizando la conversin, y obtenindose como resultado las coordenadas UTM (x,y).

Pgina 68
Captulo III Anlisis y diseo

Figura 3-42 Diagrama de secuencia para convertir coordenadas UTM y georeferenciales

3.2.1.4 Paquete mx.edu.cenidet.gateway.servlet


Este paquete contiene las clases principales que representan la generacin del mapa
croquis en formato SVGTiny (ver Figura 3-43), el servlet y la clase principal.

Figura 3-43 Diagrama de clases del paquete mx.edu.cenidet.gateway.servlets

Las clases que conforman el paquete son las siguientes:


servletSketchMap. Esta clase permite instanciar y ejecutar un nuevo objeto Main
para la obtencin del mapa SVGTiny.
Main. Esta clase contiene mtodos que permiten realizar las funciones para
convertir el SVG a SVGTiny, agregar datos al SVGTiny y obtener la imagen para
ser dado al servlet.

El proceso se visualiza en el diagrama de secuencia mostrado en la Figura 3-44. El


dispositivo mvil realiza una peticin HTTP que recibe el servletSketchMap, el cual
instancia un objeto Main que genera el mapa y retorna el mapa SVGTiny al
servletSketchMap que lo enva mediante HTTP al dispositivo mvil.

Pgina 69
Captulo III Anlisis y diseo

Figura 3-44 Diagrama de secuencia para dar al servlet el mapa SVGTiny

3.2.1.5 Paquete mx.edu.cenidet.gateway.mobiledevice


En la Figura 3-45 se muestra el paquete que contiene las clases que representan el perfil
del dispositivo mvil.
pkg mobiledev i...

DataMobileDev ice

+ getIdDevice() : String
+ isExist() : boolean
property get MobileDev iceDAO
+ getBrand() : String
+ getCLDC_1_1() : String
+ getHeight() : int + getDataMobileDevice() : DataMobileDevice
+ getHeightDisplay() : String + main(String[]) : void
+ getHeightResolution() : String -dmd + MobileDeviceDAO()
+ getMIDP_2_0() : String + MobileDevices() : ArrayList<DataMobileDevice>
+ getModel() : String + printData() : void
+ getReceiveMMS() : String + printDataMobileDevice(ArrayList<DataMobileDevice>, int) : void
+ getRelease() : String + SearchMobileDevice(String, String) : boolean
+ getSendMMS() : String
+ getSizeMaxMMS() : String
+ getSystem() : String
+ getTypeBrowser() : String
+ getVersionTypeBrowser() : String
+ getWidth() : int
+ getWidthDisplay() : String
+ getWidthResolution() : String

Figura 3-45 Diagrama de clases del paquete mx.edu.cenidet.edu.gateway.mobiledevice

Las clases que conforman el paquete son las siguientes:


DataMobileDevice. Representa el perfil del dispositivo mvil.
MobileDeviceDAO. Esta clase realiza consultas a la BDE para obtener el perfil del
dispositivo mvil y agregrselo a DataMobileDevice.

En la Figura 3-46 se muestra el proceso de obtencin del perfil del dispositivo mvil. Para
obtener el perfil del dispositivo mvil la clase MobileDeviceDAO realiza consultas a la
BDR y agrega el perfil a DataMobileDevice si el dispositivo mvil cumple con las limitantes
de la aplicacin cliente.

Pgina 70
Captulo III Anlisis y diseo

Figura 3-46 Diagrama de secuencia para la obtencin del dispositivo mvil

3.2.1.6 Paquete mx.edu.cenidet.gateway.routing


En la Figura 3-47 se muestra el paquete que contiene las clases que representan el
algoritmo para generar la ruta mnima.

Figura 3-47 Diagrama de clases del paquete mx.edu.cenidet.gateway.routing

Las clases que contiene el paquete son las siguientes:


Nodo. Representa un nodo del grafo.
Arista. Representa una arista del grafo.
AlgoritmoRuta. Esta clase contiene mtodos para obtener la ruta mnima en
funcin del grafo generado por los nodos y aristas.

En la figura Figura 3-48 se muestra el proceso que genera la ruta mnima, en donde se le
manda un mensaje a la clase AlgoritmoRuta para generar la ruta mnima, para ello es

Pgina 71
Captulo III Anlisis y diseo

necesario obtener los nodos y aristas contenidas en la BDE, siendo a partir de estos datos
la creacin del grafo que se le aplicar el AlgoritmoRuta, se retorna la ruta mnima una
vez terminado el proceso.

Figura 3-48 Diagrama de secuencia para generar la ruta mnima

3.2.1.7 Paquete mx.edu.cenidet.gateway.SVGTiny


En la figura Figura 3-49 se muestran las clases del paquete que permiten crear el mapa
SVGTiny, las clases que contienen son las siguientes:
SVGToSVGT. Clase que permite la conversin del mapa SVG obtenido del
servidor de mapas a un mapa SVGTiny.
ElementSVGT. Esta clase contiene mtodos que agregan datos al mapa SVGTiny,
tales como las capas que contienen lneas, puntos y textos.
ArrowDirection. La funcin de esta clase es identificar la orientacin de la ruta.

Pgina 72
Captulo III Anlisis y diseo

pkg s...

SV GToSV GT ElementSV GT

+ convertSVGtoSVGT() : void + agregarCapa(Document, String, String, int, double) : void


+ createFileSVGT(Document, String) : void + agregarDataToMap(Document, int, int, String) : void
+ getDocumentResult() : Document + agregarPointToMap(Document, int, int, String, String, int) : void
+ printScreen(Document) : void + createFileSVGT(Document, String) : void
+ setFile(FileInputStream) : void + dibujarLinea(Document, Element, float, float, float, float) : void
+ setFile(InputStream) : void + dibujarPunto(Document, Element, float, float, String, String, String) : void
+ SVGToSVGT() + getDoc() : Document
+ interpretaTrama(String) : void
- obtenerPuntos(String) : Vect or
+ printScreen(Document) : void

Arrow Direction

+ ArrowDirection()
+ calculaAngulo() : double
+ calculaDistancia(float, float, float, float) : double
+ calculaPuntoMedio() : double[]
+ setLinea(float, float, float, float) : void

Figura 3-49 Diagrama de clases del paquete mx.edu.cenidet.gateway.SVGTiny

El diagrama de actividad mostrado en la Figura 3-50 representa la conversin del mapa


SVG a SVGTiny, asimismo las capas que se agregan conteniendo el mapa, ruta y los
puntos de referencia. Finalmente se obtiene el mapa SVGTiny al agregar las capas de
acuerdo al nmero de puntos de inters.

Figura 3-50 Diagrama de actividad para crear el mapa SVGTiny

Pgina 73
Captulo III Anlisis y diseo

3.3 Base de datos MobileDevice


En este trabajo de tesis como parte esencial se considera el perfil del dispositivo mvil, es
decir las caractersticas especficas con las que cuenta el dispositivo mvil, tales como: el
envo y recepcin de mensajes SMS/MMS, el soporte de los perfiles y configuracin de
java (CLDC y MIDP), el tamao de la pantalla, los tipos de archivos y servicios que
soporte, as como las caractersticas generales de marca, modelo, etc.
Es por ello que se analizan tres repositorios que contienen las caractersticas esenciales
de los dispositivos mviles, de los cuales uno cuenta con licencia abierta y los otros dos
repositorios cuentan con licencia de empresas privadas teniendo un costo accesible.
Los repositorios que se analizan son los siguientes:
1. DeviceMine v3.0
2. DeviceAtlas
3. Wurfl

A continuacin se describen las principales caractersticas de cada repositorio que


contiene informacin de diversos dispositivos mviles.

3.3.1 DeviceMine v3.0


Es un repositorio global privado en donde estn contenidos los perfiles de dispositivos que
detallan los atributos y capacidades de los dispositivos mviles. La informacin contenida
en este repositorio permite optimizar el contenido de diferentes tipos de dispositivos
mviles, elimina la incertidumbre y la complejidad de optimizacin de los servicios que se
le brinda al usuario final, [Wdsglobal, 2008].
Las caractersticas de los dispositivos mviles que estn contenidas en el repositorio
DeviceMine 3.0 son las siguientes:
Especificaciones Fsicas Java
Plataforma de Software Conectividad
Caractersticas de la pantalla Detalles del navegador
Medios de Apoyo Red de Informacin
Soporte de audio Portadores de datos
Imgenes WAP

3.3.2 DeviceAtlas
Es una completa base de datos de dispositivos mviles, construida a partir de diversas
fuentes en las que se incluyen los fabricantes y los operadores de de la red, haciendo de
esta base de datos la ms completa. Las actualizaciones de las caractersticas de los
dispositivos mviles recientes ayudan a los desarrolladores en tecnologa mvil adaptar y
optimizar el contenido para diversos dispositivos mviles.
La informacin contenida en DeviceAtlas est compuesta las siguientes caractersticas:
Nombre del dispositivo. Contiene la marca y el modelo del dispositivo mvil.
Hardware.
Explorador web. Indica el tipo del explorador y su versin.
Pgina 74
Captulo III Anlisis y diseo

Reproductor de audio y video. Precisa el soporte de formatos, mp3, mp4, mpg,


entre otros.
Protocolos de red. Indica los tipos de conexiones que se puedan realizar en red,
tales como LAN,WAP, entre otros

Para adquirir una copia de la base de datos DeviceAtlas es necesario adquirir la licencia
con un determinado costo, sin embargo se puede acceder a la versin Web la cual es
gratuita, [Deviceatlas, 2008].

3.3.3 WURFL (Wireless Universal Resource File)


Es un archivo de configuracin XML que contiene informacin de las capacidades y
caractersticas de diversos dispositivos mviles. El principal alcance del archivo es
coleccionar informacin de los dispositivos mviles que acceden a pginas WAP, la
informacin es utilizada para construir buenos servicios y aplicaciones para los usuarios.
La creacin del archivo XML se realiza en colaboracin de usuarios y desarrolladores de
los diferentes dispositivos mviles recientes, las caractersticas de los dispositivos mviles
con las que el archivo tienen como base a dispositivos mviles genricos, las
caractersticas adicionales que diferencian los mviles de la misma marca dependen del
modelo del dispositivo mvil. El archivo WURFL puede ser utilizado en cualquier
aplicacin libre o comercial, [Wurfl, 2008].
Tabla 3-17 Comparacin de los repositorios de dispositivos mviles
Repositorios Caractersticas del dispositivo mvil Licencia
DeviceMine v3.0 S S
DeviceAtlas S S
Wurl S No

En la Tabla 3-17 se puede notar que los tres repositorios contienen informacin de los
dispositivos mviles, los repositorios completos de DeviceMine y DeviceAtlas tienen un
determinado costo para adquirir la licencia, caso contrario del repositorio xml de WURLF
que es de fcil acceso al ser un proyecto libre y consta de una gran diversidad de
caractersticas de los dispositivos mviles.
Uno de los objetivos de esta tesis es desarrollar una aplicacin que sea compatible con
los dispositivos mviles, teniendo en consideracin el perfil MIDP 2.1 y la configuracin
CLDC 1.1 de java, ya que se utilizarn caractersticas especficas de cada dispositivo
mvil, con el fin de desarrollar mapas ad-hoc dependiendo del tamao de la pantalla del
dispositivo mvil.
Dado lo anterior es necesario contar con una base de datos, el cual debe contener las
caractersticas de los dispositivos mviles. Los datos que contiene la base de datos
MobileDevice son obtenidos del archivo wurfl.xml, en la Figura 3-51 se muestra el
diagrama relacional de la base de datos MobileDevice. En la tabla 3.18 se describen en
forma breve el objetivo de las relaciones.

Pgina 75
Captulo III Anlisis y diseo

Tabla 3-18 Descripcin de las de la base de datos MobileDevice

Relacin Descripcin
mobile_device Contiene informacin bsica del dispositivo mvil: nmero del
dispositivo, marca, modelo y el id relacionado con las otras tablas.
product_info Esta tabla tiene informacin del dispositivo mvil (marca, modelo,
sistema operativo,).
display Esta tabla contiene informacin del tamao de la pantalla e imagen
soportado por los dispositivos mviles.
image_format Contiene informacin de los diferentes formatos de imagen que pueden
ser soportados por el dispositivo mvil.
product_info
j2meid Esta tabla indica las caractersticas soportadas por los dispositivos
is_transcoder
character varying(50)
boolean
FK_MOBILE_D_REFERENCE_PRODUCT_

mviles que incluyen java.


mobile_browser
has_pointing_device
character varying(200)
boolean
device_os character varying(200)
sms Contiene informacin necesaria de las caractersticas del mensaje SMS
nokia_series
has_qwerty_keyboard
double precision
boolean
FK_MOBILE_D_REFERENCE_J2ME
id
j2me
character varying(50)

que soporta el dispositivo mvil.


pointing_method
mobile_browser_version
character varying(150)
character varying(150)
doja_1_5
j2me_datefield_broken
boolean
boolean
j2me_clear_key_code double precision
mms uaprof Contiene informacin necesaria de las caractersticas del mensaje MMS
nokia_edition double precision
character varying(200) j2me_right_softkey_code
j2me_heap_size
double precision
double precision
can_skip_aligned_link_row boolean mobile_device
que soporta el dispositivo mvil.
device_claims_web_support boolean
ununiqueness_handler character varying(150)
id SERIAL <pk>
j2me_canvas_width
j2me_loctapi
double precision
boolean
phone_number character varying(10) j2me_motorola_lwt boolean
model_name character varying(200)
product_info brand
FK_MOBILE_D_REFERENCE_PRODUCT_ character varying(150)
device_os_version character varying(150) doja_3_5 boolean
id character varying(50) model character varying(150) j2me_wbmp boolean
uaprof2 character varying(200)
is_transcoder boolean id_device character varying(50) j2me_rmf boolean
is_wireless_device boolean
mobile_browser
uaprof3 character varying(200)
character varying(200) j2me_wma boolean
has_pointing_device boolean FK_MOBILE_D_REFERENCE_SMS
brand_name character varying(150) j2me_left_softkey_code double precision
device_os
model_extra_info character
character varying(200)
varying(150) j2me_jtwi j2me boolean
FK_MOBILE_D_REFERENCE_J2ME
nokia_series
marketing_name double precision
character varying(150) j2me_jpg boolean
has_qwerty_keyboard boolean FK_MOBILE_D_REFERENCE_IMAGE_FO id
j2me_return_key_code character varying(50)
double precision
release_date character varying(150)
pointing_method
unique character
boolean varying(150) doja_1_5
j2me_real8 boolean
boolean
mobile_browser_version character varying(150) j2me_datefield_broken
j2me_max_record_store_size boolean
double precision
nokia_edition double precision j2me_clear_key_code
j2me_realmedia double
booleanprecision
display j2me_right_softkey_code double
uaprof character varying(200) j2me_midp_1_0 booleanprecision
id can_skip_aligned_link_row
character varying(50)
boolean mobile_device j2me_heap_size
j2me_bmp3 double
booleanprecision
columns double boolean
device_claims_web_support precision FK_MOBILE_D_REFERENCE_DISPLAY j2me_canvas_width
j2me_midi double
booleanprecision
rows
id SERIAL <pk> j2me_loctapi boolean
ununiqueness_handlerdouble character
precision varying(150) j2me_btapi
max_image_width double precision phone_number character varying(10) j2me_siemens_extension
j2me_motorola_lwt boolean
model_name character varying(200)
resolution_height double character
precision varying(150) brand character varying(150) j2me_h263
device_os_version doja_3_5 boolean
resolution_width double character
precision varying(200) model image_format
character varying(150) j2me_audio_capture_enabled
uaprof2 j2me_wbmp boolean
max_image_height
is_wireless_device double boolean
precision id id_device character varying(50)
character varying(50) j2me_midp_2_0
j2me_rmf boolean
boolean
physical_screen_height double character
precision varying(200) greyscale boolean j2me_datefield_no_accepts_null_date
j2me_wma boolean
boolean
uaprof3 FK_MOBILE_D_REFERENCE_SMS
physical_screen_width double precision jpg boolean j2me_aac
j2me_left_softkey_code booleanprecision
double
brand_name character varying(150)
gif boolean j2me_capture_image_formats
j2me_jtwi character varying(50)
boolean
model_extra_info character varying(150)
transparent_png_index boolean j2me_select_key_code double precision
marketing_name character varying(150) j2me_jpg boolean
mms epoc_bmp boolean
FK_MOBILE_D_REFERENCE_IMAGE_FO j2me_xmf boolean
release_date character varying(150) j2me_return_key_code double precision
id unique character bmp boolean j2me_photo_capture_enabled boolean
boolean varying(50) j2me_real8
j2me_realaudio
boolean
boolean
mms_3gpp boolean wbmp boolean j2me_max_record_store_size double precision
mms_wbxml boolean gif_animated boolean j2me_realvideo boolean
j2me_realmedia boolean
mms_symbian_installdisplay boolean colors integer j2me_mp3 boolean
j2me_midp_1_0
j2me_png
boolean
boolean
mms_png boolean svgt_1_1_plus boolean
id character varying(50) j2me_bmp3
j2me_au boolean
boolean
mms_max_size double precision svgt_1_1
FK_MOBILE_D_REFERENCE_DISPLAY boolean
columns double precision j2me_midi
j2me_screen_width boolean
double precision
mms_rmf boolean transparent_png_alpha boolean
rows double precision j2me_btapi
j2me_mp4 boolean
boolean
mms_nokia_operatorlogo boolean png boolean
max_image_width double precision tiff boolean
j2me_siemens_extension
j2me_mmapi_1_0 boolean
boolean
mms_max_width double precision
resolution_height double precision j2me_h263
j2me_http boolean
boolean
mms_max_frame_rate double precision image_format
resolution_width double precision FK_MOBILE_D_REFERENCE_MMS j2me_audio_capture_enabled
j2me_imelody boolean
boolean
mms_wml boolean
max_image_height double precision id character varying(50) j2me_midp_2_0
j2me_socket boolean
mms_evrc boolean
physical_screen_height doubleboolean
precision greyscale boolean j2me_datefield_no_accepts_null_date
j2me_3dapi boolean
boolean
mms_spmidi
physical_screen_width doubleboolean
precision jpg boolean j2me_aac
j2me_bits_per_pixel boolean
double precision
mms_gif_static
mms_max_height double precision gif boolean j2me_capture_image_formats
j2me_mmapi_1_1 character
boolean varying(50)
sms
transparent_png_index boolean j2me_select_key_code
j2me_udp double
booleanprecision
sender boolean
mms_video
mms boolean epoc_bmp
id boolean
character varying(50) j2me_xmf
j2me_wav boolean
mms_vcard boolean bmp
ems boolean
boolean j2me_middle_softkey_code
j2me_photo_capture_enabled double precision
boolean
id character varying(50)
mms_nokia_3dscreensaver boolean wbmp
text_imelody boolean
boolean j2me_svgt
j2me_realaudio boolean
mms_3gpp boolean
mms_qcelp boolean nokiaring
gif_animated boolean
boolean j2me_gif
j2me_realvideo boolean
mms_wbxml boolean
mms_midi_polyphonic boolean siemens_logo_height
colors double precision
integer j2me_siemens_color_game
j2me_mp3 boolean
boolean
mms_symbian_install boolean
mms_wav boolean ems_variablesizedpictures
svgt_1_1_plus boolean
boolean j2me_max_jar_size
j2me_png double precision
boolean
mms_png boolean
mms_jpeg_progressive booleanprecision sckl_groupgraphic boolean j2me_wmapi_1_0
j2me_au boolean
boolean
mms_max_size double svgt_1_1 boolean
mms_jad boolean siemens_ota boolean j2me_nokia_ui
j2me_screen_width booleanprecision
double
mms_rmf boolean transparent_png_alpha boolean
mms_nokia_ringingtone boolean sagem_v1 boolean j2me_screen_height
j2me_mp4 double precision
boolean
mms_nokia_operatorlogo boolean png boolean
built_in_recorder booleanprecision largeoperatorlogo boolean j2me_wmapi_1_1
j2me_mmapi_1_0 boolean
boolean
mms_max_width double tiff boolean
mms_midi_monophonic boolean sagem_v2 boolean j2me_wmapi_2_0 boolean
mms_max_frame_rate double precision j2me_http boolean
mms_3gpp2 boolean ems_version double precision doja_1_0 boolean
mms_wml boolean FK_MOBILE_D_REFERENCE_MMS j2me_imelody boolean
mms_wmlc boolean ems_odi boolean j2me_serial boolean
mms_evrc boolean j2me_socket boolean
mms_nokia_wallpaper boolean nokiavcal boolean doja_2_0 boolean
mms_spmidi boolean j2me_3dapi boolean
mms_bmp boolean operatorlogo boolean j2me_bmp boolean
mms_gif_static boolean j2me_bits_per_pixel double precision
mms_vcalendar boolean siemens_logo_width double precision j2me_amr boolean
mms_max_height double precision j2me_mmapi_1_1 boolean
ems_imelody j2me_gif89a boolean
mms_jar boolean sms boolean j2me_udp boolean
sender
mms_ota_bitmap boolean
boolean sckl_vcard boolean j2me_cldc_1_0 boolean
mms_video boolean id character varying(50) j2me_wav
doja_2_1 boolean
boolean
mms_mp3 boolean siemens_screensaver_width double precision
mms_vcard boolean ems boolean j2me_middle_softkey_code
doja_3_0 double
booleanprecision
mms_mmf boolean sckl_operatorlogo boolean
mms_nokia_3dscreensaver boolean text_imelody boolean j2me_svgt
j2me_cldc_1_1 boolean
boolean
mms_amr boolean panasonic boolean
mms_qcelp boolean nokiaring boolean j2me_gif
doja_2_2 boolean
boolean
mms_wbmp boolean ems_upi boolean
siemens_logo_height double j2me_siemens_color_game
doja_4_0 boolean
boolean
mms_midi_polyphonic
built_in_camera boolean
boolean nokiavcard booleanprecision
mms_wav boolean ems_variablesizedpictures
callericon boolean j2me_max_jar_size
j2me_3gpp double
booleanprecision
receiver
mms_jpeg_progressive boolean sckl_groupgraphic
gprtf boolean j2me_wmapi_1_0
j2me_video_capture_enabled boolean
mms_mp4
mms_jad
mms_xmf boolean siemens_ota
siemens_screensaver_height boolean
double precision j2me_nokia_ui
j2me_canvas_height boolean
double precision
mms_nokia_ringingtone
mms_jpeg_baseline boolean sagem_v1
sckl_ringtone boolean j2me_screen_height
j2me_https double
booleanprecision
mms_midi_polyphonic_voices boolean
built_in_recorder double precision picturemessage
largeoperatorlogo boolean j2me_mpeg4
j2me_wmapi_1_1 boolean
mms_gif_animated
mms_midi_monophonic boolean sckl_vcalendar
sagem_v2 boolean j2me_storage_size
j2me_wmapi_2_0 double precision
boolean
mms_3gpp2 boolean ems_version double precision doja_1_0 boolean
j2me_serial boolean
mms_wmlc
mms_nokia_wallpaper
Figura 3-51 Diagrama relacional de la base de datos MobileDevice
boolean
boolean
ems_odi
nokiavcal
boolean
boolean doja_2_0 boolean
mms_bmp boolean operatorlogo boolean j2me_bmp boolean
mms_vcalendar boolean siemens_logo_width double precision j2me_amr boolean
mms_jar boolean ems_imelody boolean j2me_gif89a boolean
mms_ota_bitmap boolean sckl_vcard boolean j2me_cldc_1_0 boolean
mms_mp3 boolean siemens_screensaver_width double precision doja_2_1 boolean
doja_3_0 boolean
mms_mmf
mms_amr
boolean
boolean
sckl_operatorlogo
panasonic
boolean
boolean j2me_cldc_1_1
doja_2_2
Pgina 76 boolean
boolean
mms_wbmp boolean ems_upi boolean
built_in_camera boolean nokiavcard boolean doja_4_0 boolean
receiver boolean callericon boolean j2me_3gpp boolean
mms_mp4 boolean gprtf boolean j2me_video_capture_enabled boolean
mms_xmf boolean siemens_screensaver_height double precision j2me_canvas_height double precision
mms_jpeg_baseline boolean sckl_ringtone boolean j2me_https boolean
mms_midi_polyphonic_voices double precision picturemessage boolean j2me_mpeg4 boolean
mms_gif_animated boolean sckl_vcalendar boolean j2me_storage_size double precision
CAPTULO IV
IMPLEMENTACIN
En este captulo se describen las clases implementadas que muestran la funcionalidad del
sistema.
Captulo IV Implementacin

4. Implementacin
En este apartado se muestran segmentos de cdigo que describen la funcionalidad de la
aplicacin Web SketchMapServer. El desarrollo de la aplicacin se desarroll bajo las
siguientes descripciones tcnicas de la plataforma de desarrollo:
IDE Netbeans 6.8 Beta
Java 2 Enterprise Edition versin 1.5
Java Micro Edition SDK 3.0
Manejador de base de datos PostgreSQL 8.3
Extensin PostGIS para PostgreSQL versin 1.3
Servidor web Apache Tomcat versin 6.0
Servidor de mapas Geoserver versin1.7
Sistema Operativo Windows Vista Home Edition

4.1 Recibir peticin HTTP


En la Figura 4-1 se muestra la recepcin de la peticin HTTP enviada por el cliente, las
clases involucradas estn contenidas en el paquete mx.edu.cenidet.gateway.servlets. En
las lneas 37 a la 40 se presenta el mtodo doGet haciendo referencia al mtodo que
procesar la peticin recibida llamado processRequest. Los datos de la peticin recibida
se obtienen mediante la propiedad getParameter de la peticin HttpServletRequest,
mismas que se visualizan en las lneas del 17 a la 19.

1 package mx.edu.cenidet.gateway.servlets;
2
3 public class servletSketchMap extends HttpServlet {
4 String categoria, mapa,distancia, longitud, latitud,trama;
5 String user, password;
6 RegistroUsuarioDAO regUser;
7 PrintWriter out;
8 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
9 throws ServletException, IOException {
10
11 response.setContentType(text/html;charset=UTF-8);
12 out = response.getWriter();
13 Document doc = new Document();
14
15 Main croquis = new Main();
16 try {
17 trama = request.getParameter(trama);
18 user = request.getParameter(user);
19 password = request.getParameter(password);
20
21 regUser = new RegistroUsuarioDAO();
22 if(regUser.BuscarUsuario(user, password)){
23 croquis.generateSketchMap(trama);
24 if(croquis.getDataPointOfInterest().getNumReg()>0){
25 doc = croquis.getMap();
26 }else{
27 //Error
28 }
29 }
30 }catch(Exception e){
31 e.printStackTrace();
32 }finally {

Pgina 78
Captulo IV Implementacin

33 error(croquis);
34 out.close();
35 }
36 }
37 protected void doGet(HttpServletRequest request, HttpServletResponse response)
38 throws ServletException, IOException {
39 processRequest(request, response);
40 }
41 }
Figura 4-1 Recepcin de la peticin HTTP.

4.2 Interpretar la peticin HTTP


En esta seccin se describe la interpretacin de la peticin HTTP, las clases involucradas
son servletSketchMap y Main contenidas en el paquete mx.edu.cenidet.gateway.{servlet,
mmsserver}. En la lnea 23 de la Figura 4-2 se muestra el envo de la trama como
parmetro al mtodo principal generateSketchMap(String) de la clase Main para generar
el mapa, en la Figura 4-2 se muestran las lneas donde recibe la trama, se interpreta en
las lneas 9 y 10 por mtodos de la API SMSMMS, finalmente se imprimen los datos
obtenidos indicado en la lnea 11.

1 public class Main {


2 public Main(){}
3
4 public void generateSketchMap(String trama){
5 message = new Mensaje();
6 try {
7 //Recibir e interpretar Mensaje
8 message.RecibeTrama(trama);
9 poi = new PoiGeoreferenciado();
10 poi = message.LeeGeoSiguiente();
11 printMessage(trama);
12
13 md = new MobileDeviceDAO();
14 if (md.SearchMobileDevice(Nokia, N96)==true){
15 //Empieza el proceso de generacin del mapa SVGTiny
16 }
17
18 } catch (MensajeExcepcion ex) {
19 System.out.println(La trama no es la correcta!);
20 }
21 }
Figura 4-2 Interpretacin de la peticin HTTP

4.3 Conexin a las bases de datos


En esta seccin se describe la conexin a la base de datos Postgres, las clases estn
contenidas en el paquete mx.edu.cenidet.gateway.database, en la Figura 4-3 se muestra
el conector que realiza la configuracin de postgres en las lneas 7 a la 11 que cuenta con
una url, el usuario que tiene acceso a la base de datos y password, en donde la url est
compuesta por los parmetros del servidor y el puerto que indican la direccin en la que
se encuentra instalada la base de datos.

1 public class postgres

Pgina 79
Captulo IV Implementacin

2 {
3 public Connection getConexionPostgres()
4 {
5 if(conPostgres != null)
6 return conPostgres;
7 url = jdbc:postgresql:// + servidor + : + puerto + / + bdMobile;
8 try{
9 Class.forName(org.postgresql.Driver);
10 conPostgres = DriverManager.getConnection(url, usuario, password);
11 return conPostgres;
12 }
13 catch(Exception exception){
14 System.out.println(Error al conectarse: + exception.toString());
15 }
16 return null;
17 }
18 }
Figura 4-3 Conexin a la base de datos Postgres

En la siguiente figura se especifica en las lneas 15 y 16 que la conexin permite acceder


a datos geomtricos de Postgis.

1 import java.io.PrintStream;
2 import java.sql.*;
3
4 public class Postgis
5 {
6 public Connection getConexionPostGIS()
7 {
8 if(conPostGIS != null)
9 return conPostGIS;
10
11 url = jdbc:postgresql:// + servidor + : + puerto + / + baseDatos;
12 try{
13 Class.forName(org.postgresql.Driver);
14 conPostGIS = DriverManager.getConnection (url, usuario, password);
((org.postgresql.PGConnection)conPostGIS).addDataType(geometry,
15 org.postgis.PGgeometry);
16 ((org.postgresql.PGConnection)conPostGIS).addDataType(box3d,org.postgis.PGbox3d);
17
18 return conPostGIS;
19 } catch(Exception exception){
20 System.out.println(Error al conectarse: + exception.toString()); }
21 return null;
22 }
23 }
Figura 4-4 Conexin a la extensin PostGIS de la base de datos Postgres

La Figura 4-5 muestra un ejemplo de conexin a la base de datos espacial descrita por los
siguientes pasos:
1. Se instancia un objeto de la clase Postgis.
2. Se inicializan las variables, se obtienen los datos de la configuracin del archivo de
configuracin.
3. Se crea un objeto de tipo Connection al cual se le asigna la conexin Postgis
mediante el mtodo instanciado pg.getConexionPostGIS, mostrado en la lnea 11.
4. Se llevan a cabo las consultas.
Pgina 80
Captulo IV Implementacin

1 import java.io.InputStream;
2 import java.sql.Connection;
3
4 public class generarMapaCroquis {
5
6 public datosPuntoFinal buscandoDestinos()
7 {
8 //Se realiza la conexion a Postgis
9 Postgis pg = new Postgis();
10 pg.Inicializar();
11 Connection cn = pg.getConexionPostGIS();
12
13 //Se crea el objeto para realizar consultas a la base de datos
14 cbd = new consultaBaseDatos();
15 //Se crea el objeto que contendr los puntos destinos
16 dpf = new datosPuntoFinal();
17
18 //Se identifica la ciudad y el estado a ubicar el punto destino
19 if (cbd.buscarIdCiudad(cn, estado, municipio)){
20 dpf = cbd.buscarPuntoFinal(cn, dpf, dm);
21 }
22 return dpf;
23 }
24
25 }
Figura 4-5 Ejemplo de conexin a la base de datos

4.3.1 Obtener el perfil del dispositivo mvil


En esta seccin se describe la obtencin del perfil del dispositivo, las clases estn
contenidas en el paquete mx.edu.cenidet.gateway.mobiledevice, en la Figura 4-6 se
muestra en las lneas 12 a la 22 la creacin de la sentencia SQL que permite obtener las
caractersticas del dispositivo mvil contenidas en la base de datos relacional
mobiledevice. El perfil del dispositivo es agregado al objeto dmd que es una instancia de
la clase DataMobileDevice, que permite tener de manera temporal las caractersticas
principales del dispositivo mvil.

1 public class MobileDeviceDAO {


2 public boolean SearchMobileDevice(String brand, String model){
3
4 dmd = new DataMobileDevice();
5
6 postgres conexion = new postgres();
7 .
8 if(cn != null){
9 try{
10 Statement s = cn.createStatement();
11
12 SELECT = select d.id, pi.brand_name,pi.model_name,d.max_image_width,
d.max_image_height, d.resolution_height, d.resolution_width,
d.physical_screen_height, d.physical_screen_width, pi.mobile_browser,
pi.mobile_browser_version, pi.device_os,pi.release_date,
m.receiver,m.sender,m.mms_max_size, j.j2me_midp_2_0, j.j2me_cldc_1_1
13 FROM = FROM display as d, product_info as pi, j2me as j, mms as m;
14 WHERE = WHERE pi.model_name= + model + +
15 AND pi.brand_name= + brand + +
16 AND pi.id=d.id +

Pgina 81
Captulo IV Implementacin

17 AND m.id=pi.id +
18 AND j.id=pi.id +
19 AND m.receiver=t +
20 AND j.j2me_midp_2_0=t +
21 AND j.j2me_cldc_1_1=t;
22 strSQL = SELECT + + FROM + + WHERE;
23
24 ResultSet rs = s.executeQuery(strSQL);
25 rs.next();
26
27 dmd.setIdDevice(rs.getString(1));
28 dmd.setBrand(rs.getString(2));
29 dmd.setModel(rs.getString(3));
30 dmd.setWidth(rs.getInt(4));
31 dmd.setHeight(rs.getInt(5));
32 dmd.setHeightResolution(rs.getString(6));
33 dmd.setWidthResolution(rs.getString(7));
34 dmd.setWidthDisplay(rs.getString(8));
35 dmd.setHeightDisplay(rs.getString(9));
36 dmd.setTypeBrowser(rs.getString(10));
37 dmd.setVersionTypeBrowser(rs.getString(11));
38 dmd.setSystem(rs.getString(12));
39 dmd.setRelease(rs.getString(13));
40 dmd.setReceiveMMS(rs.getString(14));
41 dmd.setSendMMS(rs.getString(15));
42 dmd.setSizeMaxMMS(rs.getString(16));
43 dmd.setMIDP_2_0(rs.getString(17));
44 dmd.setCLDC_1_1(rs.getString(18));
45
46 if (dmd.getIdDevice().length()>0){
47 found=true;
48 }else
49 found = false;
50 }
51 catch (SQLException sqlexception){
52 found=false;
53 }
54 }
55 return found;
56 }
Figura 4-6 Obtencin del perfil del dispositivo mvil

4.3.2 Obtener puntos de inters


La obtencin de los puntos de inters se realizan mediante consultas a la base de datos
espacial, las clases DataPointOfInterest y PointOfInterestDAO se encuentran en el
paquete mx.edu.cenidet.gateway.maps. La clase DataPointOfInterest contiene una lista
de los puntos de inters que localiza la clase PointOfInterestDAO que accede a la base de
datos mediante consultas espaciales, en las lneas 7 a la 10 de la Figura 4-7 se construye
la sentencia SQL para realizar la consulta que extrae los puntos de inters de la base de
datos, los puntos se agregan al objeto que es instanciado de la clase DataPointOfInterest.

1 public void SearchPointOfInterest(String state, String city, PoiGeoreferenciado poi){


2 //Se realiza la conexion a Postgis
3 postgis pg = new postgis();
4
5 if(foundCity==true){

Pgina 82
Captulo IV Implementacin

6 try{
7 SELECT = SELECT AsText(the_geom), X(the_geom), Y(the_geom), distance(s.the_geom,
GeometryFromText(POINT( + poi.LeeLongitudG() + + poi.LeeLatitudG() + ), -
1))*100000 as distancia, s.nomservicio, col.descripcion, s.calle, s.numero, col.cp;
8 FROM = FROM servicios As s, categoria As c, colonia As col;
9 WHERE = WHERE distance(s.the_geom, GeometryFromText(POINT( + poi.LeeLongitudG()
+ + poi.LeeLatitudG() + ), -1))*100000 <= + poi.LeeDistancia() + AND
s.idcategoria = c.idcategoria And col.idestado = + idEstado + AND col.idmunicipio
= + idMunicipio + AND col.idcolonia = s.colonia and s.idcategoria = ( +
AUXstrSQL +) + ORDER BY distancia;
10 strSQL = SELECT + + FROM + + WHERE;
11 ResultSet rs1 = s.executeQuery(strSQL);
12
13 for (int i=0; i<dpoi.getNumReg();i++){
14 rs1.next();
15
16 dpoi.setPoint(rs1.getString(1));
17 dpoi.setXPoint(rs1.getString(2));
18 dpoi.setYPoint(rs1.getString(3));
19 dpoi.setDistance(rs1.getString(4));
20 dpoi.setNameService(rs1.getString(5));
21 dpoi.setDescription(rs1.getString(6));
22 dpoi.setStreet(rs1.getString(7));
23 dpoi.setNumber(rs1.getString(8));
24 dpoi.setCode(rs1.getString(9));
25 }
26 dpoi.setEstado(state);
27 dpoi.setMunicipio(city);
28
29 }
30 }catch(SQLException sqlexception){}
31 }
32 }
Figura 4-7 Obtencin de los puntos de inters

4.3.3 Obtener puntos de referencia


Los puntos de referencia se extraen de la base de datos espacial mediante consultas
espaciales, las clases MapPOR y MapPORDAO se encuentran en el paquete
mx.edu.cenidet.gateway.maps. La clase MapPOR contiene una lista de los puntos de
referencia que localiza la clase MapPORDAO que accede a la base de datos mediante
consultas espaciales. En las lneas 9 a la 11 de la Figura 4-8 se extraen las coordenadas
geoespaciales de los nodos de la ruta, con el fin de obtener los puntos de referencia de
cada interseccin de calles, en las lneas 16 a la 19 se construye la sentencia SQL para
realizar la consulta que extrae los puntos de referencia de la base de datos, las lneas 23
al 33 depuran los puntos de referencia al realizar una bsqueda en la lista points, los
puntos de referencia se agregan al objeto instanciado de la clase MapPOR.

1 public void obtenerPOIs(PoiGeoreferenciado poi, DataPointOfInterest dpoi,ArrayList<String> pois){


2
3 try {
4 Postgis pg = new Postgis();
5 Connection c = pg.getConexionPostGIS();
6
7
8 for(int i=0;i<cont;i++){

Pgina 83
Captulo IV Implementacin

9 String p[] = pois.get(i).split( );


10
11 double longitudPOI = Double.parseDouble(p[0]);
12 double latitudPOI = Double.parseDouble(p[1]);
13
14 //Obteniendo los puntos de referencia
15 Statement stRPG = c.createStatement();
16 SELECT = SELECT distinct s.nomservicio,s.calle,s.numero,c.descripcion,distance(the_geom,
GeomFromText(POINT(+ longitudPOI + + latitudPOI +), -1))*100000 as distancia,
astext(the_geom) as point, s.idcategoria ;
17 FROM =FROM servicios as s, colonia as c ;
18 WHERE = WHERE distance( s.the_geom, GeometryFromText(POINT(+ longitudPOI + +
latitudPOI + ), -1))*100000 <= + 20 + AND c.idestado=+ dpoi.getIdestado() + AND
c.idmunicipio= + dpoi.getIdmunicipio() + AND c.idcolonia=s.colonia ORDER BY distancia;
19 strSQL = SELECT + + FROM + + WHERE;
20 ResultSet rsRPG = stRPG.executeQuery(strSQL);
21
22 boolean ban=false;
23 while(rsRPG.next()){
24 if(numPReferencia>0){
25 String aux=;
26 aux=rsRPG.getString(6);
27 //Eliminando puntos de referencias existentes
28 for(int m=0;m<numPReferencia;m++){
29 if(aux.equals(points[m] )){
30 ban=true;
31 }
32 }
33 }
34 if(ban==false){
35 servicio[numPReferencia] = rsRPG.getString(1);
36 calle[numPReferencia] = rsRPG.getString(2);
37 numero[numPReferencia] = rsRPG.getString(3);
38 descripcion[numPReferencia] = rsRPG.getString(4);
39 distancia[numPReferencia] = rsRPG.getString(5);
40 points[numPReferencia] = rsRPG.getString(6);
41 idcategoria[numPReferencia] = rsRPG.getString(7);
42 numPReferencia++;
43 }
44 }
45 }
46 } catch (SQLException ex) {}
47
48 }
Figura 4-8 Obtencin de los puntos de referencia

4.4 Generar mapa SVGTiny


Las clases del paquete mx.edu.cenidet.gateway.maps son las que permiten la generacin
de los datos que se agregaran al mapa croquis SVGTiny, por otro lado, las clases de
paquete mx.edu.cenidet.gateway.svgt son las que realizan la conversin de la imagen
SVG a SVGTiny y contiene funciones que permiten agregar elementos al mapa, tales
como lnea, crculo y texto.
A continuacin se mostrarn los mtodos principales que permiten la generacin del
mapa:
1. Obtencin del mapa imagen
Pgina 84
Captulo IV Implementacin

2. Conversin del archivo SVG a SVGTiny


3. Obtencin de la ruta
4. Obtencin de los puntos de referencia
5. Convertir las coordenadas georeferenciales a pixeles
6. Anadir los datos convertidos al SVGTiny

En la Figura 4-9 se muestra la clase Main, esta clase permite instanciar clases para
obtener los mtodos que realizan la funcionalidad de los puntos mencionados
anteriormente.

1 package mx.edu.cenidet.gateway.mmsserver;
2 public class Main {
3 public Main(){}
4
5 public void generateSketchMap(String trama){
6 message = new Mensaje();
7 try {
8 .
9 if(dpoi.getNumReg()>0){
10 // Generar el rea de bsqueda BBOX
11 .
12 dmi.setGeoPOI(poi.LeeDistancia());
13 dmi.printBBOX();
14
15 // 1. Obtener el mapa imagen svg
16 mi = new MapImage();
17 mi.generateMap(md.getDataMobileDevice(),dmi.getBBOX());
18 dwms = mi.getWMS();
19
20 // 2. Conversion de svg a svgt
21 svgt = convertSVGT(mi.getFileInputStreamMap());
22 for(int i=0; i< dpoi.getNumReg();i++){
23 // 3. Obtener ruta de los puntos de interes
24 mr = new MapRoute();
25 DataPointOfInterest DatoPOI = poiDAO.getDataPointOfInterest();
26
27 mr.createRouteLayer(poi,md.getDataMobileDevice(), DatoPOI.getXPoint(i),
28 DatoPOI.getYPoint(i), dmi.getBOX3D());
29
30 dmr = mr.getDataMapRoute();
31 route = mr.getRouteGeospatial();
32
33 // 4. Obtener Puntos de Referencia
34 mPOR = new MapPOR();
35 //Existen punntos de referenca?
36
37 if(mPOR.createPORLayer(mr.getDataMapRoute(),poi,poiDAO.getDataPointOfInterest())){
38 numLayer = numLayer+1;
39 POR = mPOR.getPOR();
40 dmr.setPORGeoespatial(POR);
41 dmr.PORGeoespatial(dmd, dmi.getBOX3D());
42
43 // 5. Convertir las coordenadas georefenciales a pixeles
44 dmr.setRouteGeoespatial(getRouteGeospatial());
45 String ruta = dmr.convertGeoRefToPixel(dmd, dmi.getBOX3D());
46
47 dmr.setPORGeoespatial(getPOR());

Pgina 85
Captulo IV Implementacin

48 String por = dmr.PORGeoespatial(dmd, dmi.getBOX3D());


49
50 // 6. Anadir los datos al svgt
51 if(numLayer==1){
52 addOrigenToMap(svgt,Double.parseDouble(poi.LeeLongitudG()),
53 Double.parseDouble(poi.LeeLatitudG()),
54 Origen);
55 }
56
57 addDestinityToMap(svgt, DatoPOI.getXPoint(i), DatoPOI.getYPoint(i),
58 DatoPOI.getNameService(i),numLayer);
59 addLayer(svgt,ruta, por,numLayer, mPOR.getDistance());
60 }else{
61 //No existen puntos de referencia para esta capa
62 }
63 ..
64 } catch (MensajeExcepcion ex) { System.out.println(La trama no es la correcta!); }
65 }
Figura 4-9 Obtencin del mapa SVGTiny

El BBOX9 forma parte esencial en este proyecto, ya que es el rea de inters donde se
realiza todo el procesamiento para la obtencin del mapa. Esta rea delimita lo siguiente:
a. rea a mostrar de la ciudad, es decir el croquis sin informacin que se
obtiene del servidor de mapas.
b. Delimita la red de calles para obtener el grafo del cual se obtendr la ruta.
c. Los puntos obtenidos de la ruta sern esenciales para la obtencin de los
puntos de referencia en el rea descrito por el BBOX.

Este mtodo tiene la funcionalidad de localizar las coordenadas longitud-latitud menor y


mayor a partir de los puntos de inters obtenidos de la peticin, esto para generar el par
de coordenadas mnimos y mximos del BBOX que representa el rea pertinente de
bsqueda, dicho proceso se muestran en las lneas 12 a la 36 de la Figura 4-10. Para
acceder al BBOX generado se llama al mtodo getBBOX localizado en la lnea 43.

1 public class DataMapImage {


2 public DataMapImage(){}
3 public void setGeoPOI(DataPointOfInterest dpoi){
4 ArrayList<Double> x = new ArrayList<Double>();
5 ArrayList<Double> y = new ArrayList<Double>();
6 ..
7 for(int i=0; i < dpoi.getNumReg(); i++){
8 x.add(dpoi.getXPoint(i));
9 y.add(dpoi.getYPoint(i));
10
11 }
12 for(int i=0; i < x.size()-1; i++){
13 if(x.get(i) < x.get(i+1) && x.get(i)<xMin){
14 xMin = x.get(i);
15 }else if(x.get(i+1)<xMin){
16 xMin = x.get(i+1);

9
BBOX(Bounding Box): Es un rectngulo orientado por lneas x-y, contiene un conjunto de datos geogrficos
especificado por dos coordenadas: xmin, ymin and xmax, ymax.
Pgina 86
Captulo IV Implementacin

17 }
18
19 if(x.get(i) > x.get(i+1) && x.get(i)>xMax){
20 xMax = x.get(i);
21 }else if(x.get(i+1)>xMax){
22 xMax = x.get(i+1);
23 }
24
25 if(y.get(i) < y.get(i+1) && y.get(i)<yMin){
26 yMin = y.get(i);
27 }else if(y.get(i+1)<yMin){
28 yMin = y.get(i+1);
29 }
30
31 if(y.get(i) > y.get(i+1) && y.get(i)>yMax){
32 yMax = y.get(i);
33 }else if(y.get(i+1)>yMax){
34 yMax = y.get(i+1);
35 }
36 }
37
38 xMin=xMin 0.0010;
39 xMax=xMax + 0.0010;
40 yMin=yMin 0.0010;
41 yMax=yMax + 0.0010;
42 }
43 public String getBBOX(){
44 return xMin+,+yMin+,+xMax+,+yMax;
45 }
46 }
Figura 4-10 Generacin y obtencin del rea de inters (BBOX)

En la Figura 4-11 se muestra el mtodo que obtiene el mapa SVG del servidor de mapas
es necesario contar con una URL que realice la peticin mediante WMS. Por ello se crea
la URL con los parmetros mostrados en las lneas del 6 a la 17 (URL del servidor,
peticin getMap, formato del mapa, tamao del mapa, transparencia, SRS y el BBOX) que
requiere el servidor de mapa para dar una respuesta. Posteriormente en las lneas de la
17 a la 34 se muestra cmo se procesa el mapa que el servidor da como respuesta de la
peticin WMS realizada.

1 public class MapImage {


2 public MapImage(){}
3
4 public void generateMap(DataMobileDevice dmd, String BBOX){
5 try {
6 URL wmsURL = new URL(dwms.getURL());
7 wms = new WebMapServer(wmsURL);
8 GetMapRequest gmrq = wms.createGetMapRequest();
9 gmrq.setFormat(dwms.getFORMAT());
10 gmrq.setDimensions(dwms.getWIDTH(),dwms.getHEIGHT());
11 gmrq.setTransparent(dwms.getTRANSPARENT());
12 gmrq.setSRS(dwms.getSRS());
13 gmrq.setBBox(dwms.getBBOX());
14
15 gmrq.addLayer(dwms.getLAYERS(), dwms.getSTYLES());
16

Pgina 87
Captulo IV Implementacin

17 GetMapResponse gmrp = (GetMapResponse) wms.issueRequest(gmrq);


18
19 Path path = new Path();
20 String Dir =path.getImagePATH() + NameImage + .svg;
21
22 if (dwms.getFORMAT().equals(svg) || dwms.getFORMAT().equals(svg+xml)
23 || dwms.getFORMAT().equals(image/svg+xml)) {
24 InputStream iss = gmrp.getInputStream();
25 is=iss;
26 File ff = new File(Dir);
27
28 FileOutputStream fo = new FileOutputStream(ff);
29 int c = -1;
30 while ((c = iss.read()) != -1) {
31 fo.write;
32 }
33 fo.close();
34 }
35 } catch (IOException ex) { System.out.println(Error: Cant proccess the image.);
36 } catch (ServiceException ex) { System.out.println(Error: Web Server is down.); }
37 }
Figura 4-11 Obtencin del mapa SVG

JDOM se utiliza para la conversin del mapa SVG que se obtiene del servidor de mapas a
SVG-Tiny, para ello se crearon dos objetos uno para lectura y el otro para escritura. El
primero se encarga de leer las lneas de la imagen SVG y se aaden a un nuevo
elemento root. La caracterstica principal de los SVGTiny es que cuentan con dos
atributos: versin 1.1 y baseProfile tiny, dichos atributos son agregados a la etiqueta svg
del SVGTiny y se muestran en las lneas del 17 a la 19. En la lnea 49 se aaden al
elemento childLayerMap los hijos del elemento root contenidos en el SVG, que
posteriormente son ingresados al rootSVGT (lneas 57,58), finalmente en la lnea 61 se
aade al documento SVGTiny los elementos rootSVGT y su docType.

1 public class SVGToSVGT {


2 public SVGToSVGT(){}
4
5 public void convertSVGtoSVGT(){
6 //get element root of SVG file and attributes
7 Element root = documentRead.getRootElement();
8 List rootAtributes = root.getAttributes();
9
10 //Create root SVGT and set the attributes
11 Namespace name = Namespace.getNamespace(http://www.w3.org/2000/svg);
12
13 Element rootSVGT = new Element(svg);
14 rootSVGT.setNamespace(name);
15 String width=, height=;
16 ..
17 rootSVGT.setAttribute(version, 1.1);
18 rootSVGT.setAttribute(baseProfile, tiny);
19 rootSVGT.setAttribute(viewBox, 0 0 + width + +height);
20
21 Namespace namespace = Namespace.getNamespace(xlink,http://www.w3.org/1999/xlink);
22 rootSVGT.addNamespaceDeclaration(namespace);
23
24 //List Children of the root

Pgina 88
Captulo IV Implementacin

25 List rootChildren = root.getChildren();


26
27 //Creating children of SVG
28 Element layerMapSVGT = new Element(g,name);
29 Element defs = new Element(defs,name);
30 .
31 for(int i=0; i< rootChildren.size();i++){
32 Element elementChild = (Element) rootChildren.get(i);
33 String rootNameElementChildren = elementChild.getName();
34
35 if(rootNameElementChildren.equals(g)){
36 layerMapSVGT.setAttribute(id, capa0);
37 layerMapSVGT.setAttribute(display, inline);
38 layerMapSVGT.setAttribute(stroke, black);
39
40 List rootElementChildren2 = elementChild.getChildren();
41
42 for(int j=0;j<rootElementChildren2.size();j++){
43 .
44 List rootElementChildren3 = elementChild2.getChildren();
45
46 for(int l =0;l<rootElementChildren3.size();l++){
47 for(int m=0; m < childAttributes.size();m++){
48 Attribute attr = (Attribute) childAttributes.get(m);
49 childLayerMap.setAttribute(attr.getName(), attr.getValue());
50 }
51 childrenLayerMap.addContent(childLayerMap);
52 }
53 layerMapSVGT.addContent(childrenLayerMap);
54 }
55 }
56 }
57 rootSVGT.addContent(defs);
58 rootSVGT.addContent(layerMapSVGT);
59
60 DocType doctype= new DocType(svg,-//W3C//DTD SVG 1.1 Tiny//EN,
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd);
61 doc=new Document(rootSVGT,doctype);
62 }

Figura 4-12 Conversin SVG a SVGTiny

En la siguiente imagen se muestra la generacin de la capa ruta, para ello se realizan


consultas a la base de datos espacial obtenindose los nodos (interseccin de calles y
calles finales) y aristas (calles conectadas mediante 2 nodos) para la generacin del grafo
mostrados en las lneas 5 a la 14, mismo que se ingresa como parmetros al algoritmo de
ruta as como los nodos origen y destino escrito en la lnea 25. La obtencin de la ruta se
presenta en la lnea 34.

1 public class MapRoute {


2 public MapRoute(){}
3
4 public void createRouteLayer(PoiGeoreferenciado poi,DataMobileDevice dmd, double Longitud,
double Latitud, String BOX3D){
5 MapRouteDAO mrDAO = new MapRouteDAO();
6 //Se obtienes las aristas
7 mrDAO.obtainDBStreet(poi, Longitud, Latitud, BOX3D);

Pgina 89
Captulo IV Implementacin

8
9 //Se obtienen los nodos
10 mrDAO.obtainDBNodes(poi, Longitud, Latitud, BOX3D);
11
12 //Detectando nodos finales y generando grafo
13 mrDAO.identifyingFinalNodes();
14 mrDAO.generatingGraph();
15
16 //Ejecutando algoritmo de ruta con el grafo generado
17 AlgoritmoRuta ar = new AlgoritmoRuta();
18 int n = mrDAO.getNumberNodes();
19 for(int i = 0; i <= n; i++)
20 {
21 ar.addNodo(new Nodo( + i));
22 }
23
24 double [][] grafo = mrDAO.getGrafo();
25 for(int i=0;i<=n;i++)
26 for(int j=0;j<=n;j++){
27 if(grafo[i][j]!=9999999){
28 ar.addArista(new Arista(ar.getNodo(i),ar.getNodo(j),grafo[i][j]));
29 }
30 }
31
32 ArrayList al=ar.obtenerRutaCorta(ar.getNodo(getPOrigen()),ar.getNodo(getPDestino()));
33
34 layerRuta=MULTILINESTRING((;
35 layerRuta=layerRuta+mrDAO.getPuntoI(0)+ +mrDAO.getPuntoI(1);
36
37 layerRuta=layerRuta+));
38 }
Figura 4-13 Obtencin de la ruta

Las coordenadas georeferenciales pueden ser positivas y negativas por lo que no pueden
ser representados en los dispositivos mviles, dichas coordenadas son convertidas a
pixeles mapeando el BBOX y la resolucin del dispositivo mvil, la clase que realiza la
conversin se muestra en la Figura 4-14, los mtodos getX y getY retornan las
coordenadas en pixeles.

1 public class Convert {


2 public void setCoordGeo(double nuevaXMin, double nuevaYMin, double nuevaXMax, double
nuevaYMax){
3 // Se rechazan valores iguales de mximo y mnimo.
4 if (nuevaXMin == nuevaXMax) return;
5 if (nuevaYMin == nuevaYMax) return;
6
7 // Si los valores de x minimo y mximo estn al revs, se guardan dndoles la vuelta.
8 if (nuevaXMin > nuevaXMax){
9 xMin = nuevaXMax;
10 xMax = nuevaXMin;
11 }else{
12 xMin = nuevaXMin;
13 xMax = nuevaXMax;
14 }
15 // Si los valores de y minimo y mximo estn al revs, se guardan dndoles la vuelta.
16 if (nuevaYMin > nuevaYMax){

Pgina 90
Captulo IV Implementacin

17 yMin = nuevaYMax;
18 yMax = nuevaYMin;
19 }else{
20 yMin = nuevaYMin;
21 yMax = nuevaYMax;
22 }
23 }
24
25 public void setMapa(int nuevoAncho, int nuevoAlto){
26 // Se rechazan valores de 0 o negativos
27 if (nuevoAncho < 1) return;
28 if (nuevoAlto < 1) return;
29
30 ancho = nuevoAncho;
31 alto = nuevoAlto;
32 }
33
34 public int getX (double x){
35 int xPixel;
36 xPixel = (int)((x - xMin)/(xMax - xMin)*ancho);
37 return xPixel;
38 }
39
40 public int getY (double y){
41 int yPixel;
42 yPixel = (int)(alto - (y - yMin)/(yMax - yMin)*alto);
43 return yPixel;
44 }
45 }
Figura 4-14 Conversin de coordenadas georeferenciales a pixeles

En la Figura 4-15 se muestra un ejemplo de conversin de coordenadas georeferenciales


a pixeles, en donde se deben especificar el rea de conversin en coordenadas
georeferenciales, ingresando los parmetros como se muestran en la siguiente sentencia:
setCoordGeo(coordenadaXMin, coordenadaYMin, coordenadaXMax, coordenadaYMax)

Cabe sealar que las coordenadas se analizan si son efectivamente los mnimos y
mximos, en su defecto se ordenan cambiando las posiciones de los valores. Lo siguiente
es ingresar los pixeles que soporta el dispositivo mvil, para ello se ingresan los
parmetros como se muestra en la siguiente sentencia:
setMapa(Ancho, Alto)

Los pixeles que soporta el dispositivo mvil se extraen de la clase DataMobileDevice que
contiene el perfil del dispositivo mvil. Una vez realizado lo anterior, se ingresan las
coordenadas que se desean convertir llamando al mtodo getX getY respectivamente.

1 public static void main(String args[]){


2 Convert c = new Convert();
3 c.setCoordGeo(-99.22550000000001,18.9042,-99.22269,18.9077);
4 c.setMapa(280, 232);
5

Pgina 91
Captulo IV Implementacin

6 System.out.println(c.getX(-99.2237));
7 System.out.println(c.getY(18.90667));
8 }
Figura 4-15 Ejemplo para convertir coordenadas georeferenciales a pixeles

La clase ElementSVGT contiene mtodos que son utilizados para representar las rutas y
los puntos de inters y referencia. Tales elementos son:
Line. Representa las lneas de la ruta.
Circle. Representa la ubicacin de un punto de inters y un punto de referencia.
Text. Representa el nombre del punto de inters y un punto de referencia.

Estos elementos son consumidos por los mtodos que contiene la clase mostrada en la
Figura 4-16, las cuales son:
dibujarLinea. Se presenta en las lneas 3 a la 37, en donde se agregan al
documento SVGTiny mediante mtodos de la librera JDOM, se puede observar en
las lneas 19 a la 30 que se agrega la direccin de dicha lnea siempre y cuando
sea mayor a 10mts.
dibujarPunto. Se presenta en las lneas 39 a la 75, en donde son agregados el
punto y texto que representan ya sea un punto de inters o un punto de referencia.

1 public class ElementSVGT {


2 ..
3 public void dibujarLinea(Document doc,Element element, float x1, float y1, float x2, float y2) {
4 this.doc = doc;
5 Document documento = doc.getDocument();
6 Element root = (Element) documento.getDocument().getRootElement();
7 String namespace = root.getNamespaceURI();
8 try {
9 Element elemento = new Element(line,namespace);
10 elemento.setAttribute(x1, x1+);
11 elemento.setAttribute(y1, y1+);
12 elemento.setAttribute(x2, x2+);
13 elemento.setAttribute(y2, y2+);
14 elemento.setAttribute(stroke-width, 2.5f+);
15 elemento.setAttribute(fill-opacity, 0.5f+);
16 elemento.setAttribute(stroke, #0174DF);
17 element.addContent(elemento);
18
19 ArrowDirection ad = new ArrowDirection();
20 ad.setLinea(x1, y1, x2, y2);
21 double distance = ad.calculaDistancia(x1, y1, x2, y2);
22 if(distance>10){
23 double[] pm = ad.calculaPuntoMedio();
24 double angulo = ad.calculaAngulo();
25
26 Namespace nsXlink = Namespace.getNamespace(xlink, http://www.w3.org/1999/xlink);
27 Element arrow = new Element(use,namespace);
28 arrow.setAttribute(href, #Triangle,nsXlink);
29 arrow.setAttribute(transform,translate(+pm[0]+ +pm[1]+) rotate(+angulo+));
30 element.addContent(arrow);
31 }
32 }

Pgina 92
Captulo IV Implementacin

33 catch(Exception e){
34 e.printStackTrace();
35 System.out.println(Error en dibujarLinea(): + e.getMessage());
36 }
37 }
38 .
39 public void dibujarPunto(Document doc, Element element, float x, float y, String idPunto, String
etiqueta, String idTexto){
40 this.doc = doc;
41 Element elemento1 = null, elemento2 = null;
42 Document documento = doc.getDocument();
43 Element root = (Element) documento.getDocument().getRootElement();
44 String namespace = root.getNamespaceURI();
45
46 try {
47 elemento1 = new Element(circle, namespace);
48 if(etiqueta != null && !etiqueta.equals())
49 elemento2 = new Element(text,namespace);
50 }
51 catch(Exception e){
52 e.printStackTrace();
52 System.out.println(Error en dibujarPunto(): + e.getMessage());
54 }
55
56 elemento1.setAttribute(cx, x+);
57 elemento1.setAttribute(cy, y+);
58 elemento1.setAttribute(r, 2.0f+);
59 elemento1.setAttribute(fill-opacity, 0.5f+);
60 elemento1.setAttribute(stroke-width, 0.5f+);
61 elemento1.setAttribute(fill, red);
62 elemento1.setAttribute(stroke, black);
63 element.addContent(elemento1);
64
65 if(etiqueta != null && !etiqueta.equals()) {
66 elemento2.addContent(etiqueta);
67 elemento2.setAttribute(x, x+5+);
68 elemento2.setAttribute(y, (y-2)+);
69 elemento2.setAttribute(font-size, 5+);
70 elemento2.setAttribute(font-family, Verdana);
71 elemento2.setAttribute(fill,#0A2A0A);
72 elemento2.setAttribute(stroke-width,0.4);
73 element.addContent(elemento2);
74 }
75 }
76 ..
77 }
Figura 4-16 Mtodos de elementos que se agregan al mapa SVGTiny

A su vez que los mtodos dibujarPunto y dibujarLinea son llamados por el mtodo
AgregarCapa. Dichos mtodo se muestra en la Figura 4-17, en donde los elementos que
se agregan se localizan en las lneas 21 y 36.

1 public void agregarCapa(Document doc, String route, String pois, int numLayer, double distance){
2 this.doc = doc;
3 Document documento = doc.getDocument();
4 Element root = (Element) documento.getDocument().getRootElement();
5 String namespace = root.getNamespaceURI();
6 cont = cont + 1;

Pgina 93
Captulo IV Implementacin

7
8 Element element = new Element(g,namespace);
9 element.setAttribute(id, capa+numLayer);
10 .
11 puntosxy = obtenerPuntos(route);
12 .
13 try {
14 if(puntosxy.size()%2 == 0) {
15 for(i=0; i<points-1; i++) {
16
17 x1 = Float.parseFloat(strX1);
18 y1 = Float.parseFloat(strY1);
19 x2 = Float.parseFloat(strX2);
20 y2 = Float.parseFloat(strY2);
21 dibujarLinea(doc, element, x1, y1, x2, y2);
22 }
23 }
24
25 puntitos.removeAllElements();
26 interpretaTrama(pois);
27 int size = puntitos.size()/3;
28
29 String strEtiq, idPunto, idTexto;
30
31 indice1 = -1;
32 for(int j =0; j<size; j++) {
33
34 idPunto = Punto + contador;
35 idTexto = Texto + contador;
36 dibujarPunto(doc,element, x1, y1, idPunto, strEtiq, idTexto);
37 contador++;
38 }
39 root.addContent(element);
40 }
41 catch(Exception e){
42 System.out.println(Error en agregarCapa(): + e.getMessage());
43 }
44 }
Figura 4-17 Mtodos para agregar datos al mapa SVGT

4.5 Enviar mapa SVGTiny


El bloque que realiza esta funcin se muestra en la Figura 4-18, en donde el archivo SVG-
Tiny se encuentra en el objeto doc, utilizando el flujo de datos XMLOutputter de JDOM
para enviar el objeto doc al dispositivo mvil en respuesta de la peticin va HTTP
mediante el objeto out de PrintWriter.

1 try{
2 PrintWriter out;
3 Document doc = new Document();
4 XMLOutputter outXML=new XMLOutputter(Format.getPrettyFormat());
5 outXML.output(doc,out);
6 System.out.println(Enviado con xito!!!);
7 }catch(Exception e){
8 e.printStackTrace();
9 }
Figura 4-18 Enviar el mapa SVGT al dispositivo mvil

Pgina 94
CAPTULO V
PRUEBAS Y RESULTADOS
En este captulo se presentan los resultados de las pruebas realizadas al Generador de
mapas croquis en formato SVG-Tiny para dispositivos mviles.
Captulo V Pruebas y resultados

5. Pruebas y resultados
El documento de plan de pruebas se denomin SBLAGWMMS y se encuentra en el anexo
A. El plan de pruebas se organiz en orden secuencial segn las recomendaciones del
estndar IEEE 829-1998 [IEEE829, 2009].
El objetivo es desarrollar un generador de mapas tipo croquis en formato SVG-Tiny
identificando el perfil del dispositivo mvil, utilizando la pasarela Gateway SMS para
identificar el tipo de consulta que ser procesado para dar respuesta mediante una
imagen en formato SVG-Tiny.
La descripcin del identificador es:
SBL AGW MMS XX XX
Identificador de caso de prueba
Identificador del grupo de pruebas
Mensaje Multimedia
Gateway
Servicios basados en localizacin

Las caractersticas que se probaron de la aplicacin son:


Configuraciones y conexiones a las bases de datos: se prob la correcta
configuracin y el acceso a las relaciones existentes, tanto en la base de datos
relacional como la base de datos espacial.
Recepcin e interpretacin de la informacin: se verific que la trama recibida por
medio de peticiones HTTP fuera interpretada correctamente.
Generacin del mapa: se prob la obtencin del mapa SVG mediante peticiones
WMS al servidor de mapas, la ruta mediante el algoritmo de camino mnimos y los
puntos de referencia; siendo stos dos ltimos puntos agregados al mapa
SVGTiny.
Envo de la informacin: se prob el envo del mapa SVGTiny al dispositivo mvil,
dicho envo se realiz por medio de HTTP.

Las pruebas se realizaron teniendo como cliente la aplicacin SketchMapv4U en el


emulador J2ME de Netbeans versin 6.8 y fsicamente instalado en el dispositivo mvil
Nokia N97, la aplicacin web SketchMapServer se instal en el servidor de aplicaciones
Tomcat 6.0.

5.1 Realizacin de las pruebas


A continuacin se muestran los resultados obtenidos en cada caso de prueba efectuado al
sistema.
Caso de prueba: SBLAGWMMS-01-01 Configuracin y conexin con la base de
datos relacional
Resultado: OK

Pgina 96
Captulo V Pruebas y resultados

Figura 5-1 Parmetros de conexin para el MBDR PostgreSQL

Observaciones: La conexin se realiz de manera exitosa a la base de datos relacional,


en la Figura 5-1 se muestran los datos de configuracin para la conexin a la base de
datos PostgreSQL.
Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

Caso de prueba: SBLAGWMMS-01-02 Configuracin y conexin con la base de


datos espacial
Resultado: OK

Figura 5-2 Parmetros de conexin de la extensin PostGIS SBLAGWMMS


Observaciones: La conexin se realiz de manera exitosa a la base de datos espacial,
en la Figura 5-2 se muestran los datos de configuracin para la conexin a la extensin
PostGIS de la base de datos PostgreSQL.
Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

Caso de prueba: SBLAGWMMS-02-01 Recepcin e interpretacin de mensajes


Resultado: OK

Figura 5-3 Interpretacin del mensaje recibido


Observaciones: El mensaje es recibido por medio de la aplicacin SketchMapServer va
HTTP, el software SBLAGWMMS espera una peticin de mapa, para ello se interpreta el

Pgina 97
Captulo V Pruebas y resultados

mensaje recibo. En la Figura 5-3 se muestra el mensaje interpretado.


Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

Caso de prueba: SBLAGWMMS-03-01 Obtencin del perfil del dispositivo


Resultado: OK

Figura 5-4 Perfil del dispositivo mvil


Observaciones: Se comprob que el dispositivo mvil que realiza la peticin cumple con
las caractersticas necesarias para realizar peticiones y recibir las respuestas, se muestra
el resultado en la Figura 5-4. El dispositivo mvil debe soportar el envo y recepcin de
mensajes SMS/MMS, soporte de MIDP 2.0 y CLDC 1.1.
Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

Caso de prueba: SBLAGWMMS-03-02 Obtencin del mapa imagen


Resultado: OK
URL http://192.168.0.10:8080/geoserver/wms?
SERVICE WMS
LAYERS 170070001m
FORMAT image/svg+xml
HEIGHT 320
TRANSPARENT FALSE
REQUEST GetMap
BBOX -99.2247,18.9046,-99.21929999999999,18.912000000000003
WIDTH 240
STYLES Polygon
SRS EPSG:4326
VERSION 1.1.1

Pgina 98
Captulo V Pruebas y resultados

Figura 5-5 Proceso de obtencin del mapa imagen en consola

Figura 5-6 Mapa obtenido


Observaciones: La obtencin del mapa fue exitoso, es necesario generar la URL
mediante los parmetros descritos en la Figura 5-5 para realizar la peticin mediante
WMS(Web Map Service) al servidor de mapas, en la Figura 5-6 se muestra el mapa
obtenido.
Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

Caso de prueba: SBLAGWMMS-03-03 Generacin y obtencin de la ruta destino


Resultado: OK

Figura 5-7 Representacin de la ruta en nodos

Pgina 99
Captulo V Pruebas y resultados

Figura 5-8 Visualizacin de la ruta mediante Netbeans


Observaciones: Se comprob la obtencin de la ruta, tomando como punto origen las
coordenadas (18.9067,-99.2237) al destino de central de taxis, la obtencin del punto de
inters se presenta en el caso de prueba SBLAGWNNS03-04, en la Figura 5-7 se muestra
el proceso de obtencin de la ruta mostrada en la Figura 5-8.
Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

Caso de prueba: SBLAGWMMS-03-04 Obtencin de los POR (Point of Reference)


Resultado: OK

Figura 5-9 Obtencin de los POR(Point of Reference - puntos de referencia)


Observaciones: Los nodos se obtienen correctamente de la ruta generada, obteniendo
de la base de datos los puntos de referencia que cumplen con los criterios establecidos
de una consulta espacial de tipo radial de no ms de 10 metros. Estableciendo criterios
de eliminacin de informacin de duplicidad, obtenindose con xito los POR (Point of
reference Puntos de referencia) mostrados en la Figura 5-9.
Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

Pgina 100
Captulo V Pruebas y resultados

Caso de prueba: SBLAGWMMS-04-01 Crear y enviar el archivo SVGTiny que


contiene el mapa croquis SVGTiny mediante HTTP
Resultado: OK

a b c

d e f

Figura 5-10Visualizacin del proceso de una peticin del servicio de taxis.

Observaciones: El archivo SVGTiny es creado mediante los datos obtenidos (el mapa,

Pgina 101
Captulo V Pruebas y resultados

la ruta y los puntos de referencia). La creacin y el envo del archivo SVGTiny al


dispositivo mvil se realizan correctamente.

El proceso para la visualizacin del mapa en el dispositivo mvil se muestra en las


Figuras 5-10(a-g), en donde las Figuras 5-10(a-c) se muestra la configuracin del
servicio, se observa en la Figura 5-10(d) las opciones de bsqueda del servicio, se
muestra la pantalla de espera del resultado en la Figura 5-10(e), mostrndose finalmente
el resultado en las Figuras 5-10(f, g). En el anexo C se muestran los resultados de las
diferentes categoras.
Responsable de la prueba: Omar Ros Gonzlez Cargo: Autor

5.2 Evaluacin de los resultados


El software SBLAGWMMS cumple con los objetivos, el medio de comunicacin es
mediante conexin HTTP, la funcionalidad se obtiene por la correccin de los siguientes
puntos:
[1]. El dispositivo mvil cliente realiza una peticin de bsqueda a la aplicacin web
SketchMapServer de algn punto de inters en un rango no mayor de 300mts y
delimitados por una lista de categoras.
[2]. La aplicacin web SketchMapServer recibe e interpreta la trama enviada por el
dispositivo mvil y se realiza una peticin al servidor de mapas en base a los datos
interpretados.
[3]. Se obtiene el mapa en formato SVG-Basic versin 1.0, mismo que es convertido a
SVG-Tiny versin 1.1 soportada para dispositivos mviles.
[4]. Se aaden los siguientes datos en capas al archivo SVG-Tiny:
a. Puntos de inters. Cada punto de inters indica una capa.
b. Ruta y sentido de direccin a seguir.
c. Puntos de referencia.

Tabla 5-1 Evaluacin de resultados


Grupo Descripcin Resultado Conclusin
SBLAGWMMS-01 Pruebas de Exitoso La conexin a la base de
configuracin y datos relacional y espacial se
conexin realiz de manera correcta.
SBLAGWMMS-02 Pruebas de recepcin Exitoso La recepcin e interpretacin
e interpretacin de la de la informacin del mensaje
informacin son resueltas de manera
correcta.
SBLAGWMMS-03 Pruebas de Exitoso Las diferentes capas para
generacin del mapa generar el mapa se
obtuvieron correctamente.
SBLAGWMMS-04 Pruebas de envo de Exitoso El envo y recepcin del
la informacin archivo SVG-Tiny se realiza
correctamente mediante
conexiones HTTP.

Pgina 102
CAPTULO VI
CONCLUSIONES
En este captulo se exponen las conclusiones a las que se llegaron al desarrollar el
presente proyecto de tesis. Se mencionan tambin las aportaciones y trabajos futuros.
Captulo VI Conclusiones

6.1 Conclusiones
Las tecnologas de sistemas de informacin geogrfica almacenan y despliegan
informacin que puede ser relacionada con lugares, es decir, informacin que tiene una
ubicacin geogrfica en conjunto con el GPS y Servicios Web son utilizados para la
localizacin de puntos de inters del usuario y los puntos de referencia que sirven de
gua para llegar al destino desde un origen especfico, en este caso de las coordenadas
del dispositivo mvil.
Las bases de datos, los servidores de aplicacin y los servidores de mapas son
esenciales en los sistemas de informacin geogrfica. Los GIS en los dispositivos mviles
tienen restricciones, dichas restricciones limitan el tamao de la pantalla que muestra el
contenido de mapas descritos por un conjunto de datos, el ancho de banda bajo para la
transmisin de datos que son utilizados para renderizar los mapas y el pobre poder
computacional para procesar los datos.
Es por ello que se considera una base de datos relacional que contiene las caractersticas
de la mayora de los dispositivos mviles, teniendo mayor posibilidad para realizar
software ad-hoc al dispositivo mvil de acuerdo a su perfil.
El formato SVG-Tiny para la representacin de imgenes en los dispositivos mviles ha
tomado un gran auge, por tal motivo es considerado en este proyecto, sin duda est
desplazando los formatos JPG, GIF y PNG entre los ms utilizados. La utilizacin del
SVG-Tiny en los dispositivos mviles se lleva a cabo por la versatilidad de adaptarse a
diferentes tipos de representaciones visuales y el peso del archivo es mnimo, adems de
ser capaz de soportar animaciones grficas y de texto. Los servidores de mapas generan
archivos SVG en versiones 1.0, siendo una limitante la incompatibilidad de algunas
propiedades al ser manipuladas por el dispositivo mvil, por ello se realiza la conversin
desde la aplicacin servidor, de igual forma las rutas se aaden al archivo mediante
capas, siendo la habilitacin de las capas el nico proceso que se realiza en el dispositivo
mvil con el archivo SVG-Tiny.
Los Sistemas Basados en Localizacin pueden ser representados en pantallas pequeas
de los dispositivos mviles que soporten la configuracin de Java CLDC 1.1 y el perfil
MIDP 2.0 mediante imgenes en formato SVG-Tiny por su versatilidad de uso,
compatibilidad con gran nmero de dispositivos mviles y la independencia de la
resolucin con respecto a los grficos sin degradarse al aumentar o disminuir el tamao
de la imagen.
Los algoritmos de generacin de ruta corta, ptima y con flujos bidireccionales son muy
utilizados por sistemas LBS, en esta tesis se consider en esencia el algoritmo de Dijkstra
para obtener la ruta mnima que est en funcin del nmero total de nodos y el nmero de
respuestas requeridas, de igual forma los puntos de referencia son obtenidos en un radio
no mayor de 10 metros.
Por ltimo, se pudo constatar que se pueden representar mapas con contenidos
geoespaciales para dispositivos mviles, gracias a las especificaciones de la OGC y W3C

Pgina 104
Captulo VI Conclusiones

enfocados en las aplicaciones geoespaciales, permitiendo mediante estndares el acceso


a la informacin contenida en servidores o repositos locales y remotos, mismos que se
procesan en aplicaciones LBS, dicha informacin se integra textualmente representando
grficos geoespaciales simples y complejos en una imagen SVG-Tiny, por ello este
proyecto puede ser enfocado en diferentes reas, tales como la ubicacin de algn
establecimiento, eventos en un reas urbanas, ubicacin de objetos o personas en un
plano arquitectnico de dos dimensiones.

6.2 Aportaciones
Se cre la aplicacin web SketchMapServer que permite:
o Generar una ruta de un punto origen a un destino.
o Obtener los puntos de referencia localizados en la ruta generada.
o Convertir una imagen SVG-Basic(versin 1.0) recibido mediante WMS del
servidor de mapas a una imagen SVG-Tiny (versin 1.1)
o Aadir capas al mapa SVG-Tiny, las capas constan de la ruta y los puntos
de referencia. Para representar la ruta se aaden elementos de tipo lnea y
los puntos de referencia se representan con elementos de tipo crculo y
texto.
Se desarroll la aplicacin SketchMapv4 para el dispositivo mvil con el perfil
MIDP 2.0 y configuracin CLDC 1.1. Dicha aplicacin realiza peticiones HTTP a la
aplicacin web SketchMapServer para obtener un mapa de tipo croquis en formato
SVG-Tiny.
Esta aplicacin fue probada en el dispositivo Nokia N97 y en el emulador default
Java Micro Edition SDK 3.0 de Netbeans 6.8.

6.3 Problemas encontrados


Durante esta investigacin se presentaron problemas relacionados con el envo de
mensajes multimedia MMS desde el servidor de aplicaciones hacia el dispositivo
mvil, se probaron los siguientes mtodos:
o En el dispositivo mvil se instal una aplicacin que permite recibir y gestionar
la informacin enviada por la computadora, la comunicacin se realiz
mediante Sockets. Este mtodo result insatisfactorio por la seguridad del
dispositivo mvil Nokia N97, teniendo que interactuar el desarrollador al
aceptar los avisos del dispositivo para que se realice la comunicacin en un
lapso de tiempo que en algunas ocasiones se perda la conexin.
o Se utiliz la librera MMS Java Library de Nokia para la creacin de los
mensajes multimedia va WAP en una aplicacin de escritorio. El dispositivo
mvil se configur para realizar comunicacin va WAP, sin embargo al intentar
enviar el mensaje multimedia los servidores de las telefnicas no dieron acceso
para realizar la comunicacin al dispositivo mvil, se probaron en las
telefnicas Movistar y Telcel con los dispositivos mviles Nokia N97 y
Samsung D836.

Pgina 105
Captulo VI Conclusiones

Se analizaron de comandos AT refirindose nicamente para envo de mensajes


SMS y no para mensajes MMS, por lo que se desisti enviar el resultado mediante
el envo de mensajes MMS optando por realizarse va HTTP.

Otro de los problemas encontrados fue el no tener la red de calles de las ciudades
de Mxico, ya que en un inicio no se podan realizar pruebas del algoritmo de ruta,
para solventar este problema se crearon manualmente dos archivos Shapefile
llamados street.shp y nodos.shp con la herramienta GIS TatukGIS. Una vez
teniendo la red de calles se realizaron pruebas de ruta, se obtuvieron diversos
grafos incompletos puesto que slo se tenan los nodos de las intersecciones del
rea de bsqueda, aunado a ello se obtuvieron resultados errneos al no tener los
nodos finales de todas las calles, se resolvi infiriendo dichos nodos mediante un
proceso de anlisis automtico de las geometras del rea de bsqueda.
Con respecto a la compatibilidad del formato SVG que se obtiene del servidor de
mapas el cual es SVG-Basic se llev a cabo una conversin de dicho formato al
SVG-Tiny, ya que existen algunas propiedades que no soporta el SVG-Tiny.
En un principio el proceso para enviar el resultado al dispositivo mvil va HTTP
era muy tardado, se realizaron los siguientes procesos:
o Los datos se enviaban por bloques, es decir, se enviaba el mapa SVG-
Tiny, el punto de inters y los puntos de referencia por separado, teniendo
el dispositivo mvil un alto costo de procesamiento al momento de aadir
los datos recibidos a la imagen.
o La informacin de las rutas (puntos de inters, ruta y los puntos de
referencia) se aade en un archivo XML, primero se enva el mapa SVG,
despus el archivo XML y al final se aaden las rutas a la imagen SVG en
el dispositivo mvil, teniendo un retraso al momento de presentar en
pantalla las localizaciones encontradas.
o Finalmente se realiza todo el procesamiento en el servidor de aplicaciones,
es decir, las rutas (lneas de calles y puntos de referencia) encontradas por
el algoritmo se agregan al mapa SVG-Tiny mediante capas, por lo que el
procesamiento de la informacin en el dispositivo mvil disminuye
considerablemente.

6.4 Trabajos futuros


La gran diferencia de procesamiento entre los dispositivos mviles y las computadoras de
ltima generacin ha hecho que la investigacin en el rea de cmputo mvil aumente
considerablemente. Hoy en da la programacin para los dispositivos mviles est
enfocada en consumir los servicios que brinda algn servidor de aplicaciones,
apoyndose de tecnologas tales como WiFi, GPRS, etc.
Durante el desarrollo de este trabajo de investigacin se observaron varios aspectos para
complementar una mejor funcionalidad del lado servidor. Para ello se sugiere implementar
los siguientes mdulos que apoyen al generador de mapas tipo croquis en formato SVG-
Tiny:

Pgina 106
Captulo VI Conclusiones

1. Generacin de la red de calles de una ciudad a partir del archivo de polgonos


representando las manzanas de dicha ciudad, el formato debe ser shape. Es decir,
crear una aplicacin que tome de entrada un archivo shapefile de polgonos y
genere como resultado dos archivos shapefile, el primero que contenga elementos
de tipo punto y el otro de elementos poli lneas. Cabe destacar que se deben
utilizar metodologas para generar mapas axiales10.
2. En la estilizacin del mapa se considera crear una API que pueda manipular la
mayor parte de elementos que son descritos en las especificaciones del SVG en
versiones 1.1 y 1.2, esto por la falta o nula existencia de APIs libres para
manipular archivos SVG Tiny en los dispositivos mviles.
3. Relacionado con el punto anterior, se pueden aadir elementos grficos que
representen los puntos de inters y referencia, declarando los grficos como capas
mediante un grupo de elementos g que estn contenidos en las definiciones del
mapa defs, haciendo referencia a los id declarados. Un ejemplo se muestra en el
Anexo D.
4. Implementar un aplicativo que enve mensajes MMS mediante un Mdem
conectado al gateway SMS, mismo que servir para responder peticiones de
mapas realizadas por medio de mensajes SMS. Se utilizara la API MMS Library
de Nokia.
5. Se pueden crear Servicios Web que sean consumidos por diversos tipos de
aplicaciones, ya sea de aplicacin de escritorio, Web e incluso mediante
comandos. Dichos servicios web pueden ser:
Obtener el mapa tipo croquis en formato SVG 1.1.
Obtener la ruta de un punto origen a uno destino, dicha ruta debe contener
sus puntos de referencia.
Ambos, es decir el mapa tipo croquis en formato SVG 1.1 y representado
mediante capas la ruta y los puntos de referencia.
6. En la actualidad existen varios modelos de dispositivos mviles que tienen la
caracterstica de tener touchScreen, para ello se debe realizar un aplicativo cliente
en Java ME SDK 3.0 que pueda realizar las funciones para manipular dichas
pantallas, asimismo agregar las clases a la API SMSMMS.
7. Relacionado con el punto anterior, analizar a fondo las diferentes plataformas de
programacin de dispositivos mviles y su compatibilidad con java, con la finalidad
de agregar a la API SMSMMS soporte para diversas plataformas permitiendo
heterogeneidad en las aplicaciones que se desarrollen, en su defecto generar
aplicaciones que puedan consumir servicios web o realicen peticiones HTTP.

10
Un mapa axial es aquel que contiene un conjunto de lneas que pasan cada espacio convexo para hacer los
enlaces lineales. El termino de lnea axial es definido como la lnea ms larga que puede ser dibujado en un
punto arbitrario en el espacio, [Turner, 2003].
Pgina 107
Captulo VI Conclusiones

6.5 Publicaciones
Se logr la publicacin de un artculo en el VII Congreso Internacional sobre Innovacin y
Desarrollo Tecnolgico, celebrado en Cuernavaca, Morelos del 7 al 9 de octubre del 2009.
El artculo se denomina:
Metodologa para la obtencin de Mapas tipo Croquis en formato SVG-Tiny identificando
perfiles de celulares.

Pgina 108
ANEXOS
ANEXO A
Anlisis para representar puntos
de inters
Se presenta un anlisis de las posibles combinaciones que se puedan realizar para
representar puntos de inters, dependiendo del dispositivo mvil y lo que desea el
usuario.
Anexo A. Anlisis para representar puntos de inters

Representaciones de puntos de inters


Una de las caractersticas esenciales de un croquis son los puntos de referencia, es por
ello que se analizan las diferentes formas de representarlos en este trabajo, los cuales se
distinguen por la facilidad de entendimiento, haciendo uso de elementos bsicos para los
usuarios como lo son: texto, smbolos e imagen
Texto
La representacin de los puntos de inters mediante texto puede ser un tanto simple, el
cual no hay que menospreciar puesto que es parte fundamental en la muestra de
informacin en cualquier mbito. En este caso, representa los puntos de inters que son
bsicamente negocios que dan servicio al pblico, dando con ello reconocimiento de las
mismas, se puede observar un ejemplo en la figura A.1.

Figura A.1 Representando los Puntos de inters en texto sobre el Croquis

Smbolos
Esta representacin es una de las ms utilizadas en los mapas de navegacin por la
interoperabilidad con el usuario, puesto que es ms fcil la ubicacin de puntos de inters
mediante simbologa asimilada a la vida cotidiana como son: la representacin de
restaurantes mediantes tenedores, cruz roja por una cruz, etc., haciendo de este tipo uno
de los ms representativos y por mucho en gusto por los usuarios en comparacin con la
representacin en texto. Se puede apreciar en la siguiente figura su respectivo ejemplo.

Figura A.2 Representacin en Smbolo los puntos de inters en el Croquis

Pgina 111
Anexo A. Anlisis para representar puntos de inters

Imagen
Las representaciones de los puntos de inters hoy en da han dado un gran avance, al
encontrarse con las imgenes de los puntos de inters, eliminando la ambigedad de la
ubicacin de los mismos, haciendo de ello una opcin demasiado til facilitando la visin
del usuario.

Figura A.3 Representacin en Imagen los puntos de inters en el Croquis

Representaciones de ruta
La esencia de los puntos de inters no son de gran relevancia si no se cuenta con algn
elemento que complemente su conceptualizacin, es por ello que se presentan las rutas
como parte fundamental de los croquis, haciendo de ello un anlisis de las
representaciones que se pueden tener como herramienta de ayuda al usuario en su
bsqueda del sitio de inters, entre ellos se encuentran los siguientes: texto, lneas,
flechas unidireccionales, rbol, audio y video.
Texto
Esta representacin describe mediante un listado la ruta a seguir consecuentemente,
haciendo referencia de forma explcita la ubicacin origen, los caminos a seguir asimismo
el destino como fin de la ruta.

Figura A.4 Representacin de la ruta en texto

Pgina 112
Anexo A. Anlisis para representar puntos de inters

Lneas
Una de las representaciones que contiene ambigedad en el trazo de la ruta es
justamente el de lneas, ya que no presenta sentido de direccin del camino a seguir,
teniendo como apoyo los puntos de inters que se presentan en cualquiera de sus tipos.
Es una manera de representar la ruta, pero es sin duda un mtodo que ha sido
reemplazado por las flechas unidireccionales.

Figura A.5 Representacin de rutas en lneas

Flechas unidireccionales
Las flechas unidireccionales es la evolucin de las lneas sin direccin, hoy en da es sin
duda una de las representaciones ms utilizadas de una ruta, es mediante lneas de
direccin (flechas indicadoras), el cual sigue el mismo tpico que las lneas de partir
desde el punto origen hacia el destino.

Figura A.6 Representacin de rutas con flechas unidireccionales

Pgina 113
Anexo A. Anlisis para representar puntos de inters

rbol
Esta representacin suele ser un poco ms compleja, para utilizarla es necesario
aprender cierta simbologa para poder determinar la ruta a seguir, es posible decir que es
la versin aumentada de la representacin de la ruta mediante texto, teniendo como
aadidura las simbologas.
A continuacin se presentan los caracteres que son antepuestos a la descripcin del
proceso de la ruta a seguir:

CARCTER DE DESCRIPCIN
DESCRIPCIN
C Comienzo de la ruta
I Doblar a la izquierda
D Doblar a la derecha
T Trmino de la ruta
Tabla A.1 Descripcin de los caracteres utilizados en el rbol

Tambin se describen los smbolos que se utilizan para representar las direcciones de las
calles a seguir, as como la representacin de los puntos de inters, vase

SMBOLO DESCRIPCIN
Ruta recta
| Tramo de ruta
Ruta a la izquierda
Ruta a la derecha
Punto de inters
Tabla A.2 Descripcin de los smbolos utilizados en el rbol

En la figura siguiente se muestra un ejemplo de lo que sera un rbol implementado en la


bsqueda del sitio de inters por el usuario, utilizando la simbologa descrita con
anterioridad.
IZQ REC DER DESCRIPCION
C UPV
| Sigue 200 metros
+ I Bancaixa
| Sigue 160 metros
Boutique X
Carrefour
+ D Burguer King
T Estacin de tren Xativa
Figura A.7 Representacin de rutas mediante un rbol

Hay dos variantes en la representacin de rutas: audio y video, los cuales estn
revolucionando hoy en da la navegacin de mapas en diferentes enfoques, entre los que
se pueden notar, guas tursticas, GPS para automviles, entre otros.
Pgina 114
Anexo A. Anlisis para representar puntos de inters

Audio
El audio es uno de los servicios ms comunes hoy en da, se presenta como una
alternativa para dar a conocer la ruta que se desea, es ms funcional para los
conductores sin dejar de lado a los peatones. Es uno de los medios de comunicacin ms
efectivos que existe entre un dispositivo y el usuario, ya que mientras se est realizando
alguna actividad con la vista, queda el sentido auditivo para saber la ubicacin deseada.
Video
El sentido de la vista es indispensable para saber en dnde nos encontramos, es por ello
que el video toma parte importante en este trabajo, el video es un la herramienta ms
eficaz y preciso que existe hoy en da, en la revelacin del camino que se desea llegar,
mediante rutas representadas con algunos tipos descritos con anterioridad, y la
conjuncin con el audio hacen de ello la herramienta perfecta para la ubicacin de lugares
de inters del usuario.

Representaciones de entorno
La representacin del entorno debe ser clara, precisa y concisa puesto que es el elemento
primordial en la representacin de los mapas. Imagnese mostrar las caractersticas de la
zona de alguna provincia, el suelo, vegetacin, fauna, urbano, entre otros.
En este proyecto se busca la localizacin de puntos de inters de un usuario, el cual debe
de representarse en mapas tipo croquis con la ubicacin deseada.
Mapas
Los mapas en su esencia son de diferentes tamaos y diversificados en sus diferentes
clasificaciones, esto dependiendo de la utilizacin del mismo. Los mapas que se utilizarn
son de tipo urbano, el cual debe contener: nombre de la calle, sentido de las calles como
caractersticas principales, para que sea manipulada esta informacin en el traslape con
otras capas que servirn para mostrar informacin pertinente en la ubicacin de la ruta a
seguir as como los puntos de inters que se encuentren en el camino a seguir.

Figura A.8 Representacin del entorno en mapa

Pgina 115
Anexo A. Anlisis para representar puntos de inters

Mapas 3D
Este tipo de entornos est empezando a emerger, ya que no se puede implementar en
cualquier pas puesto que todava no existen, sin embargo se analiza teniendo
implementado como una opcin ms en la representacin del entorno necesario para la
localizacin de sitios de inters.

Figura A.9 Representacin del entorno en 3D

Obteniendo los posibles resultados


Los resultados que se esperan van a tener ciertos parmetros de acuerdo a las
caractersticas propias del dispositivo mvil. Para ello, se necesita realizar un anlisis del
perfil del dispositivo (caractersticas del dispositivo). A continuacin se muestra como
interactuarn las capas descritas anteriormente como son:
Sitios de inters,
Rutas y
Entorno.

Y sus respectivas formas de representacin, en la tabla A.3 se muestran cada uno de los
tipos de representacin, en las primeras tres columnas se tienen las representaciones de
los puntos de inters, las dos ltimas columnas la representacin del entorno, asumiendo
que las filas son las representaciones de las rutas.

Tabla A.3 Tabla de resultados

Pgina 116
Anexo A. Anlisis para representar puntos de inters

Anlisis de los posibles resultados


1. Las rutas descritas en texto slo pueden relacionarse con la representacin de
puntos de inters en texto, puesto que se vuelve innecesario la utilizacin de
smbolos y/o fotos, siendo los dispositivos bsicos los usuarios potenciales de este
resultado, sin descartar que los dispositivos tambin pueden obtener este
resultado si se desea.
2. La unin de las rutas en lnea y la representacin de los puntos de inters en
texto, pueden tener la unin en ambos entornos propuestos (mapas planos
mapas 3D).

3. La unin de las rutas en lnea y la representacin de los puntos de inters en


smbolos, pueden tener la unin en ambos entornos propuestos (mapas planos
mapas 3D).
4. La unin de las rutas en lnea y la representacin de los puntos de inters
mediante logos y/o fotos, pueden tener la unin en ambos entornos propuestos
(mapas planos mapas 3D).
5. La unin de las rutas en lnea indicadoras (sentido de las calles) y la
representacin de los puntos de inters en texto, pueden tener la unin en ambos
entornos propuestos (mapas planos mapas 3D).
6. La unin de las rutas en lnea indicadoras (sentido de las calles) y la
representacin de los puntos de inters mediante smbolos, pueden tener la
unin en ambos entornos propuestos (mapas planos mapas 3D).
7. La unin de las rutas en lnea indicadoras (sentido de las calles) y la
representacin de los puntos de inters mediante logos y/o fotos, pueden tener la
unin en ambos entornos propuestos (mapas planos mapas 3D).
8. La unin de las rutas mediante un rbol y la representacin de los puntos de
inters en texto, pueden tener la unin en ambos entornos propuestos (mapas
planos mapas 3D).
9. La unin de las rutas mediante un rbol y la representacin de los puntos de
inters mediante smbolos, pueden tener la unin en ambos entornos propuestos
(mapas planos mapas 3D).
10. La unin de las rutas mediante un rbol y la representacin de los puntos de
inters mediante logos y/o fotos, pueden tener la unin en ambos entornos
propuestos (mapas planos mapas 3D).
11. La representacin de rutas en audio hace necesario la utilizacin de alguno de los
resultados anteriores, puesto que es un adicin al resultado haciendo uso el
sentido auditivo y no tanto de la vista, sin descarta sta ltima.
12. La representacin de las rutas mediante video al igual que el audio, necesita de
alguno de los resultados descritos anteriormente, siendo el servicio ms avanzado
en la ayuda de la ubicacin del sitio inters del usuario.

Pgina 117
Anexo A. Anlisis para representar puntos de inters

Resultados extraordinarios
Los resultados extraordinarios se presentan cuando el usuario desea saber los puntos de
inters de alguna forma ms precisa, para ello los puntos de inters se traslapan,
obteniendo el resultado ptimo en la localizacin del sitio de inters del usuario.

Tabla A.4 Resultados extraordinarios

A continuacin se describen los resultados extraordinarios que se pueden obtener:


1. Representar las rutas mediante lneas con los puntos de inters representados
mediante texto, smbolos, logo y/o foto, teniendo como entorno mapa plano tipo
croquis un mapa 3D.
2. Representar las rutas mediante lneas indicadoras (sentido de direccin de las
calles) con los puntos de inters representados mediante texto, smbolos, logo y/o
foto, teniendo como entorno mapa plano tipo croquis un mapa 3D.
3. Representar las rutas mediante rbol con los puntos de inters representados
mediante texto, smbolos, logo y/o foto, teniendo como entorno mapa plano tipo
croquis un mapa 3D.
4. Representar las rutas mediante audio con alguna de las representaciones
descritas en los tres puntos anteriores.
5. Representar las rutas mediante video con alguna de las representaciones
descritas en los tres puntos anteriores.

Nota: Se describen slo los resultados ptimos, puesto que se puede tener solamente la
unin de algn tipo de representacin de rutas, con dos representaciones de puntos
inters cualesquiera que stos sean y alguna representacin de entorno, ya sea un mapa
plano o bien un mapa en 3D.

Pgina 118
ANEXO B
Estudio de plataformas mviles
Se presenta un estudio de las diversas plataformas que interactan con los dispositivos
mviles, mostrndose los sistemas operativos y las tecnologas de desarrollo.
Anexo B. Estudio de plataformas mviles

1 Sistemas operativos paras dispositivos mviles


En la actualidad muchos desarrolladores de software para dispositivos mviles se
enfrentan a un problema, cul es la tecnologa mvil a utilizar? Por qu?, son muchas
variantes en las que se cuestiona, es muy importante tener en cuenta tanto para las
tecnologas de desarrollo como la base en la que se implementarn (Sistemas Operativos
para dispositivos mviles), puesto que existe una co-dependencia fuerte entre ellos.
Se define sistema operativo como una capa de software que permite la comunicacin
maquina-persona, tambin se le puede entender como un administrador de los recursos
(hardware) que nos ofrece la mquina para permitir un buen uso de ella por medio de los
programas o aplicaciones, [Wikiversidad, 2008].
Jorge L. Arienza define al sistema operativo como una capa compleja entre el hardware y
el usuario, concebible tambin como una mquina virtual, que facilita al usuario o al
programador las herramientas e interfaces adecuadas para realizar sus tareas
informticas, abstrayndole de los complicados procesos necesarios para llevarlas a
cabo, [Arienza, 2008].
Los dispositivos mviles se distinguen por sus caractersticas, dependiendo de la empresa
que las elabora, el modelo serializado, sistema operativo y la tecnologa de desarrollo de
las aplicaciones con las que realiza las funciones que contienen.
Los desarrolladores tienen una visin de los diversos software que conforman el marco
de trabajo de un sistema operativo del dispositivo mvil. En la Figura B.1 se muestran las
capas con las que cuenta un dispositivo mvil, posteriormente se describir cada una de
las capas.

Figura B.1 Capas de los dispositivos mviles.

Pgina 120
Anexo B. Estudio de plataformas mviles

Kernel. Es el ncleo que proporciona el soporte necesario para acceder a los diversos
elementos del hardware. Los principales servicios ofrecidos por el kernel a las capas
superiores de la pila de software son los siguientes:
Drivers para el hardware.
Acceso y administracin de la memoria.
Sistema de archives.
Administracin de procesos.

Middleware. Es un conjunto de mdulos de software que hacen posible la existencia de


las aplicaciones para mviles. Esta librera de software es totalmente transparente para el
usuario final, ofrece servicios claves para las aplicaciones como:
Motor de mensajera.
Interpretes de pginas web/ WAP.
Motor de comunicaciones.
Cdec multimedia.
Administracin de dispositivos.
Seguridad.

Entorno de Ejecucin de Aplicaciones. Consiste de un gestor de aplicaciones y un


conjunto de interfaces programables (APIs) abiertas y accesibles por los programadores
para facilitar la creacin de aplicaciones.
Interfaz de Usuario. Facilita la creacin de las interfaces de usuario de las aplicaciones
que facilitarn la administracin de la interaccin con el usuario final y el diseo de la
presentacin visual de la aplicacin. Los principales servicios que esta capa ofrece a las
aplicaciones son:
Componente grficos y el
marco de interaccin.

Descrito lo anterior es necesario tomar en cuenta la base sobre la que se instalarn las
aplicaciones, a continuacin se presentan los sistemas operativos ms utilizados en la
actualidad como son: Symbian, Windows Mobile, Linux.
1.1 Symbian
Es un sistema operativo diseado especficamente para dispositivos mviles que
funcionan en un espacio pequeo con escasos recursos de memoria y administra de
manera eficiente la energa.
En la siguiente figura se muestran las empresas que hicieron posible el surgimiento de
Symbian para sus dispositivos mviles con capacidad de procesamiento de datos.

Pgina 121
Anexo B. Estudio de plataformas mviles

Figura B.2 Empresas de telefona mvil

Symbian proporciona rutinas y servicios subyacentes para las aplicaciones. Tcnicamente


es una coleccin compacta de cdigo ejecutable y varios archivos, la mayora de ellos
bibliotecas DDL. Por norma general, el sistema operativo se encuentra cargado en la
memoria flash del telfono mvil, de esta forma se puede conservar el sistema operativo
cuando el dispositivo mvil no tenga batera. Adems contempla 4 interfaces de usuario
para el sistema operativo: Serie 60, serie 80, serie 90 y UIQ, los dispositivos Nokia
disponen de las Series 60, 80 y 90, la interfaz UIQ es utilizada por Sony Ericsson y
Motorola.
Con respecto al desarrollo de aplicaciones es muy flexible, se puede programar en
lenguajes de programacin como C++, Java, VB, Python, Perl, Flash Lite, etc. [Symbian,
2008]
Las aplicaciones que se pueden realizar estn enfocadas en su mayora por juegos,
reproductores de video, traductores, administradores, navegadores web, sistemas
basados en localizacin, entre etc.
1.2 Windows Mobile 6
Windows Mobile es un sistema operativo compacto, con una suite de aplicaciones
bsicas para los dispositivos mviles basados en la API win32 de Microsoft. Los
dispositivos que cuentan con ste sistema operativo son:
Windows Mobile 6 standard para Smartphones (telfonos sin pantalla tctil),
Windows mobile 6 professional para PDAs con la funcionalidad del telfono
(Pocket PC Phone Edition) y
Windows mobile 6 classic para PDAs sin telefona.

El sistema operativo est basado en Windows CE 5.2, soporta resoluciones de 800x480 y


320x320 pixeles, soporta VoIP, Bluetooth, asimismo soporta AJAX, JavaScript y

Pgina 122
Anexo B. Estudio de plataformas mviles

XMLDOM, Generic Access Network (UMA) para algunos pases, .Net Framework v2, SQL
Server Compact Edition, formatos Office 2007.
Mantiene mejoras en funcin de seguridad, en la cual existe una funcin de borrado
remoto por robo o prdida del equipo, incluyendo encriptacin en los datos y en las
tarjetas de memoria, [MWM, 2008].
En el desarrollo de las aplicaciones se realiza mediante los lenguajes de programacin
visuales C++, C# y Basic .Net respectivamente. Se pueden tomar y manipular las
variables de las caractersticas de los dispositivos mviles, tales como los grficos, GPS,
contactos, mensajes, audio, seguridad, entre otras. Tambin se pueden establecer
conexiones de red mediante ncleo (TCP/IP, Socket, IPV6, etc.), remoto (RAPI, VoIP) o
wireless (Bluetooth, Infrared, WiFi). Se cuenta con emuladores de dispositivos, diferentes
aplicaciones, depuracin entre otras caractersticas no menos importantes.
Se espera la llegado del Windows Mobile 7 en el 2009, la nueva versin del sistema
operativo para mviles incluir soporte para pantallas multitctiles, una tienda de
aplicaciones centralizada e interfaces grficos ms cuidados e intuitivos. Al igual que
Google, Microsoft licenciar el sistema operativo para todo tipo de telfonos y en todo tipo
de formatos. Los habr con pantalla grande y panormica, con teclado Qwerty, en formato
barra y concha, [Mundo, 2009].
1.3 Mobile Linux
La estrategia est basada en software abierto, haciendo que el usuario tenga una gran
experiencia en este tipo de plataformas. Por lo que se busca explorar al mximo los
dispositivos mviles y los servicios que aceleran el uso de los dispositivos mviles para
el uso de llamadas o envos de mensajes, sistemas basados en localizacin, utilizacin
de internet, entre otras caractersticas. Entre los ms representativos se presentan
algunos sistemas operativos lanzados al mercado de los dispositivos mviles.
1.4 MOTOMAGX
Es un sistema operativo desarrollado por Motorola, incorporando tecnologas abiertas
para encontrar nuevos niveles de flexibilidad y soporte de las aplicaciones que se
encuentren sobre dispositivos mviles de Motorola. Soporta aplicaciones desarrolladas
en J2ME, con planes para introducir ambientes de desarrollo en aplicaciones de WebUI
y Linux.
Contiene ms de 200 caractersticas con una arquitectura basada en una plataforma
abierta y modular, apoya a las aplicaciones propias y de terceros. Contiene una
innovadora interfaz de usuario con tecnologa que permite utilizar un lpiz o dedos para
realizar la navegabilidad sobre el entorno.
1.5 MAEMO
Es un sistema operativo para dispositivos Tablet Internet Nokia, originalmente se llam
Internet tablet OS. Es similar a los sistemas operativos de la competencia, puesto que
tiene en pantalla el inicio como punto central que a partir del cual se pueden acceder a
todas las aplicaciones y configuraciones.

Pgina 123
Anexo B. Estudio de plataformas mviles

Maemo se basa en Debian GNU/Linux y gran parte de la interfaz grfica, marcos de


trabajo y libreras del proyecto GNOME. Es una plataforma de software que est
basado en cdigo abierto para dispositivos mviles, tales como el Internet tablet Nokia
N810. Esta plataforma ha sido desarrollada por Nokia en colaboracin con diversos
proyectos libres, tales como el Kernel de Linux, Debian, GNOME entre otros, ver figura
B.3.

Figura B.3 Proyectos en colaboracin con Nokia


Caractersticas
Actualizacin. Los dispositivos memos pueden actualizarse usando un mtodo de
parpadeo simple con una computadora usando USB.
Seguridad. La seguridad se centra en prevenir ataques remotos (red inalmbrica y
Bluetooth). En particular se advierte que se hace uso de una cuenta root,
independientemente de la contrasea de root, provee una forma para bloquear el control
del dispositivo y la pantalla con un cdigo numrico de acceso, lo anterior se realiza para
prevenir el acceso ocasional.
Software. Algunas de las aplicaciones software que contiene son los reproductores
multimedia, office. VoIP, juegos, lector de libros, RDP de acceso remoto, navegacin
GPS, visor de tv, sms y llamadas de voz a travs de bluetooth, entre otros.
1.6 ANDROID
Android es una plataforma de software y sistema operativo para dispositivos mviles,
basados en el Kernel de Linux, desarrollado por Google y despus en conjunto con
Open Handset Alliance. Permite a los desarrolladores escribir cdigo que se ejecuta
bajo la gestin de una maquina virtual en el lenguaje Java, controlando el dispositivo
mediante libreras de java desarrollados por Google.
Caractersticas
La plataforma se adapta al tipo de pantalla VGA, libreras grficas 2D y 3D basadas en
especificaciones OpenGL ES 1.0.
Pgina 124
Anexo B. Estudio de plataformas mviles

En lo referente al almacenamiento de datos usa el SQLite, soporta tecnologas de


conectividad tales como: GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth y WiFi.
Asimismo soporta las formas de envo de mensajes SMS y MMS.
Utiliza la mquina virtual Dalvik que est diseado para el uso de dispositivos mviles.
Soporta MPEG-4, H.264, MP3, JPEG, PNG, entre otros. Tiene la capacidad de utilizar
cmaras, pantallas tctiles, GPS, acelermetros y grficos de aceleracin 3D. La figura
B.4 muestra el aspecto del Sistema operativo Android.

Figura B.4 Aspecto del SO Android

2 Tecnologas mviles
2.1 J2ME
Plataforma Java, Micro Edition (Java ME) es una coleccin de tecnologas y
especificaciones para crear una plataforma que se ajuste a los requisitos para
dispositivos mviles, tales como productos de consumo, dispositivos embebidos, y los
dispositivos mviles avanzados. Es una coleccin de tecnologas y especificaciones
que pueden ser combinados para crear un completo entorno de ejecucin de Java
especficamente para adaptarse a las necesidades de un dispositivo o de mercado.
Entre los componentes principales del J2ME se encuentran los siguientes:
Connected Device Configurations
Connected Limited Device Configurations
Mobile Information Device Profiles

Las tecnologas J2ME contienen un JRE altamente optimizado, especialmente


desarrollado para el mercado de gran consumo. Permite ejecutar programas se
seguridad, conectividad y utilidades en utilidades en tarjetas inteligentes, LBS,
sintonizadores de TV y otros pequeos electrodomsticos.
Configuraciones del J2ME

La configuracin de recursos dirigidos a los dispositivos de limitacin-como los telfonos


mviles se denomina Conexin Limitada de configuracin de dispositivos (CLDC). Est
especficamente diseado para satisfacer las necesidades de una plataforma Java para
correr en dispositivos con capacidad de memoria limitada, potencia de procesamiento y

Pgina 125
Anexo B. Estudio de plataformas mviles

capacidades grficas. Adapta ampliamente la combinacin del CLDC con el Mobile


Information Perfil de Dispositivo (MIDP) para proporcionar un completo entorno de
aplicaciones Java para telfonos mviles y otros dispositivos con capacidades similares.

Con la configuracin y los perfiles de la aplicacin difiere del API disponible en el perfil. El
entorno de CLDC y MIDP suele ser lo que la mayora de los dispositivos mviles de hoy
se llevan a cabo mediante un MIDlet.

Figura B.5 Configuraciones J2ME

En la actualidad, J2ME define dos configuraciones:


1. Connected Limited Device Configuration (CLDC). Una plataforma tpica CLDC es un
telfono celular o PDA (Personal Digital Assistant) con aproximadamente 512 KB de
memoria disponible. Por esta razn, CLDC se encuentra estrechamente asociada con
Java inalmbrico, el cual se ocupa de permitir a los usuarios de los telfonos mviles
comprar y descargar aplicaciones Java pequeas (MIDlets) para sus dispositivos. Un
creciente nmero de fabricantes de telfonos celulares han firmado acuerdos con Sun
Microsystems para utilizar esta tecnologa, de manera que la cantidad de dispositivos
con la capacidad de programarse en Java sigue aumentando.
2. Connected Device Configuration (CDC). CDC dirige las necesidades de los
dispositivos que se encuentran entre CLDC y la plataforma para escritorio J2SE. Estos
dispositivos tienen ms memoria (2MB o mayor) y procesadores ms capaces y por lo
tanto soportan un ambiente de software Java ms completo. CDC se puede encontrar
en PDAs de ltima generacin y en smartphones, telfonos con acceso a la Web,
gateways (pasarelas) residenciales y cajas set-top.

Perfiles
Un perfil complementa una configuracin agregando clases adicionales que proporcionan
caractersticas apropiadas para un tipo particular de dispositivo o para un segmento del
mercado especfico. Las configuraciones J2ME tienen asociados uno o ms perfiles.
Mobile Information Device Profile (MIDP). Este perfil agrega conexin a redes,
componentes de interfaz de usuario y almacenamiento local en CLDC. Se dirige

Pgina 126
Anexo B. Estudio de plataformas mviles

principalmente a las pantallas y almacenamiento limitados de los dispositivos mviles


y por lo tanto proporciona una interfaz de usuario relativamente simple y conexin
bsica a redes basadas en HTTP 1.1.
PDA Profile (PDAP). Este perfil es similar a MIDP, pero se dirige a PDAs que tienen
mejores pantallas y ms memoria que los telfonos celulares.
Foundation Profile. Este perfil define un conjunto de APIs para CDC orientadas a
dispositivos que carecen de interfaz grfica como por ejemplo decodificadores de
televisin digital. Incluye gran parte de los paquetes de J2SE.
Personal Basis and Personal Profiles. Este perfil agrega funcionalidades bsicas a la
interfaz de usuario del perfil Foundation. Su objetivo es el de proporcionar a la
configuracin CDC una interfaz grfica completa, con capacidades Web y soporte de
applets de Java.
RMI Profile. Este perfil proporciona libreras de invocacin remota de mtodos al perfil
Foundation.
Game Profile. Proporciona una plataforma para escribir software de juegos en
dispositivos CDC.

La figura B.6 muestra una visin general de los componentes de la tecnologa Java ME y
cmo se relacionan con las otras tecnologas Java.

Figura B.6 Componentes de la tecnologa Java ME.

2.2 ANDROID
Android es una plataforma de programacin de software para dispositivos mviles que
incluye un sistema operativo, middleware y aplicaciones clave. Google tiene el SDK de

Pgina 127
Anexo B. Estudio de plataformas mviles

Android, que provee de herramientas y APIs necesarios para comenzar a desarrollar


aplicaciones en la plataforma Android, utilizando el lenguaje de programacin Java.

Android contiene un ncleo Linux que incluye muchos de los drivers para telfonos
mviles, no diferencia entre las aplicaciones desarrolladas y las bsicas del telfono,
permite acceder a las funciones principales de los dispositivos mviles mediante
llamadas a API estndar, asimismo combina la informacin de internet con datos del
telfono, como contactos o ubicaciones geogrficas, tambin su SDK ejecuta
aplicaciones Android como un emulador de dispositivos y herramientas avanzadas de
depuracin. Esta plataforma provee de varios frameworks y en la actualidad est muy
enfocada a trabajar con servicios web.

Caractersticas
Las caractersticas con las que cuanta el SDK android son las siguientes:
Framework de aplicaciones que permite el rehso y reemplazo de componentes.
Mquina virtual Dalvik optimizada para dispositivos mviles para requerir poca
memoria y est diseada para permitir ejecutar varias instancias de la mquina
virtual simultneamente.
Navegador integrado basado en el motor open source Web Kit, el cual es un
framework para aplicaciones que funciona como base para el navegador web
Safari y Google Chrome, que facilita la inclusin de gran parte de las
funcionalidades de Safari en las aplicaciones.
Grficos optimizados, con una librera de grficos 2D; grficos 3D basado en la
especificacin OpenGL ES 1.0 (aceleracin de hardware).
SQLite para almacenamiento de datos estructurados.
Soporte para medios con formatos comunes de audio, video e imgenes planas
(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Telefona GSM (dependiente del hardware)
Bluetooth, EDGE, 3G, y WiFi (dependiente del hardware)
Cmara, GPS, brjula, y acelermetro (dependiente del hardware)
Ambiente rico de desarrollo incluyendo un emulador de dispositivo, herramientas
para depurar, perfiles de memoria y rendimiento, y un plugin para el IDE Eclipse.
Touch screen
Cualquier aplicacin sobre el dispositivo mvil puede ser reemplazado o
extendido.
Las aplicaciones pueden aadirse a la web fcilmente mediante HTML, Javascript
y hojas de estilo.
Pueden tenerse aplicaciones corriendo en paralelo, mientras corren detrs, otra
aplicacin puede notificar producir notificaciones.

Pgina 128
Anexo B. Estudio de plataformas mviles

Arquitectura de Android

Figura B.7 Arquitectura de Android

A continuacin se describe de forma breve cada componente de la arquitectura del


Android mostrada en la figura B.7.
Aplicaciones
Las aplicaciones base incluye un cliente de email, programa de SMS, calendario,
mapas, navegador, contactos, y otros. Todas las aplicaciones escritas en el
lenguaje de programacin Java.
Framework de aplicaciones
Los desarrolladores tienen acceso completo a los mismos APIs del framework
usados por las aplicaciones base. La arquitectura est diseada para simplificar el
reuso de componentes; cualquier aplicacin puede publicar sus capacidades y
cualquier otra aplicacin puede luego hacer uso de esas capacidades (sujeto a
reglas de seguridad del framework). ste mismo mecanismo permite que los
componentes sean reemplazados por el usuario.
Libreras
Android incluye un conjunto de libreras C/C++ usadas por varios componentes del
sistema Android. Estas capacidades se exponen a los desarrolladores a travs del
framework de aplicaciones de Android. Algunas son: System C library
(implementacin librera C standard), libreras de medios, libreras de grficos, 3d,
SQLite, entre otras.

Pgina 129
Anexo B. Estudio de plataformas mviles

Runtime de Android
Android incluye un ser de libreras base que proveen la mayor parte de las
funcionalidades disponibles en las libreras base del lenguaje de programacin
Java. Cada aplicacin Android corre su propio proceso, con su propia instancia de
la mquina virtual Dalvik. Dalkiv ha sido escrito de forma que un dispositivo puede
correr mltiples mquinas virtuales de forma eficiente. Dalkiv ejecuta archivos en
el formato Dalvik Executable (.dex), el cual est optimizado para memoria
mnima. La Mquina Virtual est basada en registros, y corre clases compiladas
por el compilador de Java que han sido transformadas al formato .dex por la
herramienta incluida dx.
Kernel Linux
Android depende de un Linux versin 2.6 para los servicios base del sistema como
seguridad, gestin de memoria, gestin de procesos, stack de red, y modelo de
drivers. El kernel tambin acta como una capa de abstraccin entre el hardware y
el resto del stack de software.

2.3 WINDOWS MOBILE


Es un sistema operativo compacto, con una suite de aplicaciones bsicas para
dispositivos mviles basados en la API Win32 de Microsoft. Los dispositivos que llevan
Windows Mobile son Pocket PCs, Smartphones y Media Center porttil. Ha sido
diseado para ser similar a las versiones de escritorio de Windows. Se cuenta con tres
versiones:
Windows mobile Standard para Smartphones,
Windows mobile Professional para PDAs con la funcionalidad del telfono y
Windows mobile Classic para PDAs sin telefona IP.

Windows CE est ligado fuertemente a Windows Vista, Windows Live, Microsoft Orrice y
Exchange 2007. Las especificaciones que soporta entre otras son las siguientes:

Basado en Windows CE 5.0 (versin 5.2)


Soporta las resoluciones 800x480 y 320x320.
Acceso de escritorio remoto mejorado
Desarrollo y distribucin de aplicaciones ms rpido y ms fcil.
Soporte VoIP con los codec del audio AEC (Acoustic Echo Cancelling) y MSRT
La pila Bluetooth de Microsoft ha mejorado notablemente.
Cifrado de la tarjeta de almacenamiento - Windows Mobile 6 para Pocket PC y
Smartphone soportan el cifrado de los datos almacenados en tarjetas externas
de almacenamiento.
Smartfilter para buscar ms rpidamente emails, contactos, canciones,
archivos, etc.
Soporte AJAX, JavaScript y XMLDOM en Internet Explorer Mobile.
Soporte Generic Access Network (UMA) para los operadores seleccionados
(como BT en el Reino Unido).
Server Search para buscar en toda la bandeja de entrada de Exchange.
SQL Server Compact Edition en la ROM.

Pgina 130
ANEXO C
Plan de pruebas
Plan de pruebas de la aplicacin SBLAGWMMS
Anexo C. Plan de pruebas

1 Identificador del plan de pruebas


SBL AGW MMS XX XX
Identificador de caso de prueba
Identificador del grupo de pruebas
Mensaje Multimedia
Gateway
Servicios basados en localizacin

1.1 Introduccin
Este documento define el plan de pruebas que permite la verificacin del sistema
SBLAGWMMS (Servicios Basados en Localizacin a Gateway MMS).
El software desarrollado consta de la integracin de diversas tecnologas tales como:
transferencia de informacin va HTTP, tecnologa de posicionamiento a travs de GPS
(Global Positioning System, Sistema de Posicionamiento Global) [Gps, 2009],
peticiones a servidor de mapas Geoserver y el uso de base de datos espaciales.
El documento se encuentra organizado en orden secuencial segn las
recomendaciones del estndar IEEE 829-1998 [IEEE829, 2009] y se definen los
apartados de la siguiente manera:
1.3 Descripcin del plan de pruebas: en este apartado se indica lo que se va a
probar, los elementos necesarios para las pruebas as como la planificacin y
resolucin de posibles incidencias.
1.4 Casos de pruebas: en este apartado se muestran los distintos grupos de pruebas
que se van a realizar.
1.5 Procedimiento de pruebas: se describe cada uno de los grupos de prueba y
casos de prueba que se han establecido.
1.6 Informe de pruebas: en este punto se recogen los resultados de las pruebas
realizadas, observaciones y comentarios que surjan en el desarrollo de la prueba.
1.2 Objetivo
Desarrollar un generador de mapas tipo croquis en formato SVG-Tiny identificando el
perfil del dispositivo mvil, utilizando la pasarela Gateway SMS para identificar el tipo
de consulta que ser procesado mediante un mensaje SMS.

1.3 Descripcin del plan de pruebas


1.3.1 Caractersticas a probar
El siguiente plan de pruebas consiste en la descripcin de los casos de uso
definidos con el fin de validar y verificar que el software SBLAGWMMS cumple con
los objetivos propuestos para el desarrollo de la tesis sobre aplicaciones de
servicios basados en localizacin utilizando el servicio de mensajera corta y
multimedia.

1.3.2 Caractersticas excluidas de las pruebas


Los casos de prueba contemplados y desarrollados para este plan no cubre y por
tanto no incluyen los siguientes aspectos:
Pruebas de estrs o concurrencia.

Pgina 132
Anexo C. Plan de pruebas

1.3.3 Enfoque
El tipo de pruebas y mediciones que se realizan al software SBLAGWMMS son
principalmente factibilidad y funcionabilidad. Las peticiones y respuestas que se
procesan son enfocadas a la tecnologa de servicios basados en localizacin sobre
mensajera SMS y MMS.
Las peticiones provienen de un dispositivo mvil, interactuando con la aplicacin
cliente del proyecto que utiliza la API SMS/MMS para el desarrollo de la aplicacin
SBL, como envo un mensaje corto y en respuesta un archivo multimedia.

1.3.4 Criterio de xito y fracaso del caso de prueba


La decisin de xito o fracaso de cada uno de los caso de prueba contenidos en el
anlisis y diseo de la aplicacin, ser basada en la comparacin de los resultados
esperados contra los resultados obtenidos.
Los resultados esperados estn basados en mediciones tomadas mediante un
software especfico para obtener las distancias lineales entre puntos con
coordenadas geogrficas especficas.
Se considera que una prueba ha tenido xito cuando los resultados obtenidos
coincidan con los resultados descritos para cada uno de los casos de prueba.
En caso que los resultados obtenidos y descritos no coincidan, se evaluarn las
posibles causas y se realizarn las modificaciones necesarias para que el caso de
prueba cumpla con xito la especificacin de los resultados descritos.

1.3.5 Criterio de suspensin y requerimientos de reanudacin


El criterio de pruebas no se suspender completamente en ningn momento,
solamente se detendr el tiempo que defina la persona encargada de las pruebas
en caso de que surja algn error para evaluar y corregir ste en el menos tiempo
posible, haciendo iterativo este proceso hasta que cumpla con los requerimientos
del caso de prueba y no se presente ninguna dificultad con el mismo.
El requerimiento principal para la reanudacin del proceso de pruebas es haber
cumplido satisfactoriamente con los requerimientos descritos para el caso de prueba
en curso.

1.3.6 Tareas de las pruebas


Las tareas necesarias para preparar, disear y aplicar el plan de pruebas se
mencionan en la tabla siguiente:
Tabla C.1 Tareas descritas para las pruebas

No. Tarea Tarea Habilidades especiales Responsabilidad


precedente
1 Preparacin del Anlisis de Autor de la tesis
plan de sistemas de Visin general del estndar
pruebas informacin IEEE 829-1998
geogrfica
2 Preparacin del Tarea 1 Conocimiento de la forma Autor de la tesis
diseo de de operacin del sistema
pruebas desarrollado as como de
Pgina 133
Anexo C. Plan de pruebas

los mdulos que lo


conforman
3 Preparacin de Tarea 2 Conocimiento profundo de Autor de la tesis
los casos de las caractersticas del
prueba software desarrollado
4 Aplicacin de Tarea 3 Conocimiento del ambiente Autor de la tesis
las pruebas de desarrollo.
5 Resolver los Tarea 4 Conocimientos del lenguaje Autor de la tesis
incidentes de de programacin java.
pruebas Conocimiento del ambiente
de desarrollo integrado.
Conocimientos de bases de
datos relacionales y
espaciales
Conocimiento de APIs de
mensajera SMS/MMS
6 Evaluacin de Tarea 4 Conocimiento de las Autor de la tesis
los resultados Tarea 5 preguntas de investigacin
estipuladas para la tesis

1.3.7 Liberacin de las pruebas


El caso de xito de las pruebas y su posterior liberacin se basan en la coincidencia
de dos aspectos: los resultados esperados contra los resultados obtenidos, en este
punto dichos resultados se consideran satisfactorios para alcanzar el objetivo
planteado para el desarrollo de este proyecto y en consecuencia la liberacin de las
pruebas.

1.3.8 Requerimientos ambientales


A continuacin se especifican las herramientas de hardware y software necesarios
para el desarrollo del plan de pruebas.
Tabla C.2 Requisitos ambientales de hardware

Hardware Caractersticas mnimas


PC de escritorio Laptop Procesador Pentium 4 2.0 GHz
256 MB RAM
80 GB en disco duro
Puerto USB o Serial
Sistema Operativo XP
Tarjeta de red Ethernet o Wireless
Mdem GSM
Dispositivo mvil Symbian OS 7.0s superior
Bluetooth
Tecnologa Java: CLDC 1.1, MIDP 2.0

Pgina 134
Anexo C. Plan de pruebas

Tabla C.3 Requisitos ambientales de software

Software Descripcin
J2SE versin 1.5 posterior Lenguaje de programacin
IDE Netbeans 6.5.x posterior Entorno de desarrollo de la aplicacin
API Java Comunicaciones API para la comunicacin serial a travs de Java.
API SMS/MMS API para el desarrollo de aplicaciones LBS
DBMS PostgreSQL 8.3.x Sistema manejador de base de datos
posterior
PostGIS 1.3.x posterior Extensin espacial para el manejador de base de
datos PostgreSQL
Conector JDBC Postgres API para la conexin a la base de datos a travs de
Java
Apache Tomcat Servidor de aplicaciones
Geoserver Servidor de mapas
Geotools Libreras para acceder al servidor de mapas por
medio de los estndares WMS, WFS.

1.3.9 Responsabilidades
Toda la responsabilidad de las pruebas recae totalmente en el autor de la tesis.

1.3.10 Riesgos y contingencias


La falta de tiempo es un factor prescindible para ser considerado a la hora de aplicar
las pruebas y se localice un error, siendo el tiempo que se pueda llevar para
corregirlo. Por consiguiente se comprometen N pruebas que validen la funcionalidad
del software.
Con respecto a las contingencias que se puedan o no presentar durante el
desarrollo de las pruebas, stas se deben de evaluar y corregir a fin de continuar
con el proceso. Las modificaciones se deben realizar de forma iterativa con el fin de
cumplir los objetivos planteados en cada caso de prueba y los objetivos de la tesis.

1.4 Casos de pruebas


1.4.1 Caractersticas a probar
En la tabla se muestran los distintos casos de prueba definen las caractersticas a
ser probadas.
Tabla C.4 Caractersticas del plan de pruebas

Caracterstica Descripcin
Configuraciones y conexiones Define los casos de prueba para verificar la correcta
configuracin de los parmetros a utilizar por para
la conexin a la base de datos y el servidor de
mapas.
Recepcin e interpretacin de la Define la informacin recibida para la interpretacin
informacin de la informacin proveniente del dispositivo mvil..
Generacin del mapa Define los casos de prueba para la obtencin del
mapa.

Pgina 135
Anexo C. Plan de pruebas

Generacin de la ruta Define la obtencin de la generacin de ruta.


Generacin de los POR Define la generacin y obtencin de los puntos de
referencia
Envo de la informacin Define la informacin enviada.

1.4.2 Realizacin de pruebas


La realizacin de las pruebas est compuesta por 4 grupos de pruebas, las cuales
se describen en las tablas C.5 al C.8 mostradas a continuacin.
Tabla C.5 Grupo de pruebas SBLAGWMMS-01

Configuraciones y conexiones
PRUEBA DESCRIPCIN
SBLAGWMMS-01-01 Configuracin y conexin con la base de datos relacional
SBLAGWMMS-01-02 Configuracin y conexin con la base de datos espacial

Tabla C.6 Grupo de pruebas SBLAGWMMS-02

Pruebas SBLAGWMMS-02
Recepcin e interpretacin de la informacin
PRUEBA DESCRIPCIN
SBLAGWMMS-02-01 Recepcin e interpretacin de mensajes

Tabla C.7 Grupo de pruebas SBLAGWMMS-03

Pruebas SBLAGWMMS-03
Generacin del mapa
PRUEBA DESCRIPCIN
SBLAGWMMS-03-01 Obtencin del perfil del dispositivo
SBLAGWMMS-03-02 Obtencin del mapa imagen
SBLAGWMMS-03-03 Generacin y obtencin de la ruta destino
SBLAGWMMS-03-04 Obtencin de los POR (Point of Reference)

Tabla C.8 Grupo de pruebas SBLAGWMMS-04

Pruebas SBLAGWMMS-04
Envo de la informacin
PRUEBA DESCRIPCIN
SBLAGWMMS-04-01 Enviar el archivo SVG-Tiny que contiene el mapa croquis
mediante HTTP

1.5 Procedimientos de pruebas


Se describen los correspondientes procedimientos de los casos de prueba que
conforman el software SBLAGWMMS. La organizacin de los casos de prueba se basa
en cada uno de los grupos definidos. Se tiene como objetivo validar y verificar una
Pgina 136
Anexo C. Plan de pruebas

funcionalidad especfica. Cada grupo describe el propsito, entorno y conjuntos de


pruebas que lo conforman.los casos de prueba describen el propsito, entorno,
procedimiento y los resultados esperados.
1.5.1 SBLAGWMMS-01 Configuraciones y conexiones
1.5.1.1Propsito
Verificar que las clases realizadas para la conexin con el manejador de bases de
datos PostgreSQL y la extensin PostGIS funcionen correctamente.
1.5.1.2 Entorno de prueba

Para los casos de prueba contenidos en este grupo se utilizan los siguientes
elementos:
IDE Netbeans 6.8,
Java 2 Enterprise Edition versin 1.5,
manejador de base de datos PostgreSQL 8.3,
extensin PostGIS para PostgreSQL versin 1.3 y
sistema operativo Windows Vista Home Edition

1.5.1.3 SBLAGWMMS-01-01 Configuracin y conexin con la base de


datos relacional
1.5.1.3.1 Propsito
Configurar y conectar el software al manejador de base de datos PostgreSQL.
1.5.1.3.2 Entorno de prueba
La prueba se lleva a cabo con el IDE Netbeans 6.8, el manejador de base de
datos PostgreSQL y el conector JDBC PostgreSQL.
1.5.1.3.3 Proceso
1. Establecer los parmetros de conexin a la bases de datos en el
archivo confPostgres.
2. Ejecutar la aplicacin.
3. Observar los resultados.

1.5.1.3.4 Resultado esperado


Obtener y mantener una conexin a la base de datos y verificar que se cuenta
con el acceso a ella en la aplicacin.
1.5.1.4 SBLAGWMMS-01-02 Configuracin y conexin con la base de datos
espacial
1.5.1.4.1 Propsito
Configurar y conectar el software a la extensin PostGIS del manejador de
base de datos PostgreSQL para procesar datos geomtricos.
1.5.1.4.2 Entorno de prueba
La prueba se llevara a cabo con el IDE Netbeans 6.8, el manejador de base de
datos PostgreSQL, el conector JDBC PostgreSQL y la extensin espacial
postGIS.
Pgina 137
Anexo C. Plan de pruebas

1.5.1.4.3 Proceso
1. Establecer los parmetros de conexin a la base de datos en el archivo
de propiedades confPostgres y las libreras que permitirn procesar
datos geomtricos.
2. Ejecutar la aplicacin
3. Observar los resultados
1.5.1.4.4 Resultado esperado
Observar y mantener la conexin a la base de datos y verificar que se cuenta
con el acceso a ella en la aplicacin.
1.5.2 SBLAGWMMS-02 Recepcin e interpretacin de la informacin
1.5.2.1Propsito
Verificar que la recepcin de la informacin se realice de manera correcta de
acuerdo a los criterios de bsqueda que se reciban de la peticin del cliente mvil,
as como la correcta interpretacin de la informacin que proviene del dispositivo.
1.5.2.2 Entorno de prueba
Para la ejecucin de este grupo de pruebas son necesarias las interacciones de
un dispositivo mvil que realiza la peticin, el mdem GSM que recibir la
peticin y el software SBLAGWMMS.
1.5.2.3 SBLAGWMMS-02-01 Recepcin e interpretacin de mensajes

1.5.2.3.1 Propsito
Obtener e interpretar la informacin de los mensajes de texto que son
enviados al servidor mediante el dispositivo mvil para su procesamiento.
1.5.2.3.2 Entorno de prueba
Se realizan en la computadora que contiene el servidor de base de datos,
mdem GSM y el software SBLAGWMMS.
1.5.2.3.3 Proceso
1. Verificar que el software SBLAGWMMS se est ejecutando, en caso
contrario iniciar su ejecucin.
2. Enviar la peticin desde el dispositivo mvil hacia el servidor.
3. Se lee el mensaje que se ha recibido y se extraen los datos de la
informacin recibida.
4. Esperar la llegada de la peticin y leer la informacin recibida.

1.5.2.3.4 Resultado esperado


Comprobar que se ha recibido e interpretado correctamente la informacin
proveniente del dispositivo mvil.
1.5.3 SBLAGWMMS-03 Generacin del mapa
1.5.3.1 Propsito
Verificar que la generacin del mapa se realice correctamente con la informacin
pertinente de la ruta y los puntos de referencia basndose en el perfil del
dispositivo.

Pgina 138
Anexo C. Plan de pruebas

1.5.3.2 Entorno de prueba


Esta prueba se realiza en la computadora que contiene el servidor de base de
datos, el servidor de mapas y la aplicacin SBLAGWMMS.
1.5.3.3 SBLAGWMMS-03-01 Obtencin del perfil del dispositivo
1.5.3.3.1 Propsito
Obtener las caractersticas principales del dispositivo mvil para realizar el
proceso de acuerdo a su perfil.
1.5.3.3.2 Entorno de prueba
Se realiza en la computadora con el manejador de base de datos relacional y
la aplicacin SBLAGWMMS.
1.5.3.3.3 Proceso
1. Ejecutar la aplicacin SBLAGWMMS.
2. Abrir la conexin de PostgreSQL.
3. Obtener los datos del dispositivo mvil y extraer las caractersticas del
mismo desde la base de datos relacional.

1.5.3.3.4 Resultado esperado


Verificar que el dispositivo mvil cumple con las caractersticas esenciales
para brindarle el servicio, el cual debe soportar la configuracin CLDC 1.1 y el
perfil MIDP 2.0 as como las especificaciones JSR 179, JSR 205 y el JSR 225.
1.5.3.4 SBLAGWMMS-03-02 Obtencin del mapa imagen
1.5.3.4.1 Propsito
Obtener el mapa del servidor de mapas Geoserver de acuerdo a las
coordenadas de origen y destino.
1.5.3.4.2 Entorno de prueba
Esta prueba se realiza en la computadora que contiene la base de datos
espacial y la aplicacin SBLAGWMMS, el servidor de mapas puede estar
contenido en la misma computadora o en una externa.
1.5.3.4.3 Proceso
1. La aplicacin SBLAGWMMS debe estar ejecutndose, en caso contrario
iniciar la ejecucin.
2. Consultar a la base de datos espacial con las coordenadas origen del
dispositivo mvil para localizar y obtener el punto de inters del usuario.
3. Crear el BBOX (Bounding Box-Caja) del mapa de acuerdo a las
coordenadas origen y destino.
4. Realizar peticin WMS al servidor de mapas de acuerdo al BBOX creado y
las caractersticas de pantalla del dispositivo mvil. Por ltimo se obtiene el
mapa.

1.5.3.4.4 Resultado esperado


Lograr la obtencin del mapa de acuerdo a las coordenadas origen-destino y
las caractersticas del dispositivo mvil.

Pgina 139
Anexo C. Plan de pruebas

1.5.3.5 SBLAGWMMS-03-03 Generacin y obtencin de la ruta destino


1.5.3.5.1 Propsito
Obtener la ruta mediante las capas de nodos y aristas aplicando el algoritmo
de ruta.
1.5.3.5.2 Entorno de prueba
Se realiza en la computadora que tenga acceso al servidor de mapas y la
base de datos espacial.
1.5.3.5.3 Proceso
1. Realizar consultas espaciales a las tablas de nodos y aristas delimitado
por las coordenadas del BBOX creado, obteniendo la informacin.
2. Generar el grado de acuerdo a los nodos y aristas obtenidos, ingresando
el grafo, el nodo origen y destino como parmetros al algoritmo de ruta.

1.5.3.5.4 Resultado esperado


Obtener la ruta que ubica el punto de inters del usuario.
1.5.3.6 SBLAGWMMS-03-04 Obtencin de los POR (Point of Reference)
1.5.3.6.1 Propsito
Obtener los puntos de referencia dependiendo de los nodos que conforman la
ruta que ubica el destino desde la ubicacin del dispositivo mvil.
1.5.3.6.2 Entorno de prueba
Esta prueba se lleva a cabo en la computadora que contiene la base de datos
espacial y la aplicacin SBLAGWMMS.
1.5.3.6.3 Proceso
1. Obtener los nodos de la ruta generada.
2. Consultar los puntos de inters que se encuentren en un radio no mayor
de 100 metros de cada nodo y obtener dicha informacin.
1.5.3.6.4 Resultado esperado
Obtener la informacin de los puntos de referencia.
1.5.4 SBLAGWMMS-04 Envo de la informacin
1.5.4.1 Propsito
Verificar que el archivo SVG-Tiny del mapa contenga los datos pertinentes a la
peticin del usuario, mismo que ser enviado al dispositivo mvil cliente mediante
conexin HTTP.
1.5.4.2 Entorno de prueba
Para este caso de prueba se realiza en el emulador para dispositivos mviles
versin 2.5 para CLDC, servidor de mapas, servidor de aplicaciones y el
dispositivo mvil Nokia N97.
1.5.4.3 SBLAGWMMS-04-01 Crear y enviar el archivo SVG-Tiny que contiene
el mapa croquis SVG-Tiny mediante HTTP
1.5.4.3.1 Propsito

Pgina 140
Anexo C. Plan de pruebas

Crear el mapa croquis en formato SVG-Tiny incluyendo el mapa recibido del


servidor de mapas, las coordenadas de la ruta y la informacin de los puntos
de referencia.
1.5.4.3.2 Entorno de prueba
A travs de la aplicacin SBLAGWMMS se aaden los datos al archivo SVG-
Tiny necesarios para el resultado que dar respuesta a la peticin realizada.
1.5.4.3.3 Proceso
1. Se ejecuta la aplicacin para obtener los datos necesarios que sern
aadidos al archivo SVG-Tiny.
2. Se aade la informacin al archivo SVG-Tiny, los datos de la ruta y los
datos de puntos de referencia sern de tipo texto, el mapa se aade como
dato tipo imagen.
3. Se enva el archivo al flujo de datos de salida del servlet para dar
respuesta a la peticin deseada.
1.5.4.3.4 Resultado esperado
Se crea y enva el mapa croquis en formato SVG-Tiny con la informacin
necesaria para localizar el punto de inters del usuario.

1.6 Resultados de las pruebas realizadas presentadas en categoras


A continuacin se presentan las pruebas realizadas de las diferentes categoras que se
pueden realizar por medio de la aplicacin SketchMap4U desde el dispositivo mvil.
CATEGORA: TAXI
Resultado: OK

Pgina 141
Anexo C. Plan de pruebas

Figura C.1 Resultados de la categora Taxi.


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

CATEGORA: PASTELERA
Resultado: OK

Pgina 142
Anexo C. Plan de pruebas

Figura C.2 Resultados de la categora Pasteleras


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

CATEGORA: MINI SPER


Resultado: OK

Figura C.3 Resultados de la categora Mini sper


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

Pgina 143
Anexo C. Plan de pruebas

CATEGORA: GYM
Resultado: OK

Figura C.4 Resultados de la categora Gym


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

CATEGORA: ESCUELAS
Resultado: OK

Pgina 144
Anexo C. Plan de pruebas

Figura C.5 Resultados de la categora escuela


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

CATEGORA: FARMACIAS
Resultado: OK

Figura C.6 Resultados de la categora Farmacia


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

Pgina 145
Anexo C. Plan de pruebas

CATEGORA: HOTELES
Resultado: OK

Figura C.7 Resultados de la categora Hotel


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

CATEGORA: BANCOS
Resultado: OK

Pgina 146
Anexo C. Plan de pruebas

Figura C.8 Resultados de la categora Banco


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

CATEGORA: AUTOBUSES
Resultado: OK

Pgina 147
Anexo C. Plan de pruebas

Figura C.9 Resultados de la categora bus


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

CATEGORA: CINE
Resultado: OK

Figura C.10 Resultados de la categora cine


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

Pgina 148
Anexo C. Plan de pruebas

CATEGORA: HOSPITAL
Resultado: OK

Figura C.11 Resultados de la categora Hospital


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

Pgina 149
Anexo C. Plan de pruebas

CATEGORA: RESTAURANTES
Resultado: OK

Figura C.12 Resultados de la categora Restaurante


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

Pgina 150
Anexo C. Plan de pruebas

CATEGORA: SUPERMERCADOS
Resultado: OK

Figura C.13 Resultados de la categora Sper Mercado


Observaciones: El archivo SVG-Tiny es creado mediante los datos obtenidos (el mapa,
la ruta y los puntos de referencia). La creacin y el envo del archivo SVG-Tiny al
dispositivo mvil se realizan correctamente.

Pgina 151
ANEXO D
Scalable Vector Graphics (SVG)
Describe ejemplos para aadir puntos de inters y puntos de referencia a una imagen
SVG Tiny versin 1.1.
Anexo D. Scalable Vector Graphics (SVG)

SVG significa, Scalable Vector Graphics, una gramtica XML para el desarrollo de
grficos vectoriales, en un espacio de nombre XML. Scalable significa que incrementa o
disminuye uniformemente. Los grficos SVG pueden ser desplegados en forma
independiente de la resolucin de pantalla, tambin pueden ser magnificados para la
observacin de detalles.

Los vectores grficos contienen objetos geomtricos, tales como, lneas y curvas, estos
dan gran flexibilidad, comparados con formatos como PNG o JPG, donde la informacin
esta almacenada para cada pixel del grfico.

Las gramticas XML existentes representan informacin textual o informacin cruda de


mbitos financieros, con capacidades ms limitadas que el elemento HTML, IMG. SVG
viene a ocupar ese bache, ofrece grficos vectoriales, junto con informacin estructurada,
en un espacio de nombre XML.

SVG se escribe en texto plano, lo que abre posibilidades de generar grficas en tiempo
real para distintos terminales, incluida, la telefona celular y una multitud de aplicaciones
que manejan mapas, como las medio ambientales.

Las caractersticas del SVG son las siguientes:

Tiene todas las cualidades asociadas a un formato vectorial: es escalable,


compacto, con formas editables mediante curvas Bzier, con contornos
suavizados, transparencias y capaz de incluir mapas de bits.
El tamao de los ficheros SVG es muy compacto.
El texto es editable, admitiendo las fuentes escalables ms comunes, como
TrueType o Type 1. Esto supone una ventaja sobre los formatos gif o jpg: el texto
que contiene un grfico SVG puede ser editado, seleccionado, usado como
referencia para un enlace indexado por los buscadores, etc.
La calidad de colores es excelente. El color del grfico se puedecalibrar con los
sistemas estndar de gestin de color.
El fichero SVG no es binario: se trata de un fichero de texto normal y corriente.
Esto significa que se puede editar con cualquier procesador de textos y sus
contenidos se pueden indexar, buscar, etc.
Es compatible con los estndares actuales de la web.
Incluye soporte para hojas de estilo CSS (cascading style sheets). Esto significa
que con las hojas de estilo ser posible modificar en cascada no slo texto, sino
tambin grficos en una coleccin de ficheros.
Puede incluir cdigo para modificar el grfico dinmicamente.
Es xml, y xml es un formato extensible. Los fabricantes de software empiezan a
adoptarlo como formato nativo para sus aplicaciones. La consecuencia es que
SVG va a ser comprensible por cualquier aplicacin que reconozca el formato xml.
Admite efectos de sonido, visuales, eventos asociados al ratn, etiquetas
informativas, etc.

Pgina 153
Anexo D. Scalable Vector Graphics (SVG)

Puede generarse dinmicamente en un servidor web como respuesta a


instrucciones de Java, JSP, JavaScript, Perl, Plsql, ASP, Xslt, etctera. Por
ejemplo, pueden crearse en tiempo real grficos con las cotizaciones de bolsa.
Un fichero SVG tiene un tamao menor que sus equivalentes codificados en mapa
de bits como ficheros gif o jpg.
Los grficos SVG son independientes de la resolucin, de modo que su tamao
puede ser aumentado o reducido mediante el zoom sin que la calidad de la imagen
resulte deteriorada.
Los objetos grficos, al estar expresados en xml, pueden ser etiquetados
textualmente. Esta circunstancia constituye una gran ventaja a la hora de su
posterior indizacin y recuperacin. De hecho, los documentos SVG pueden ser
indizados por los motores de bsqueda de la web y, por lo tanto, la informacin
que contienen es directamente recuperable como en cualquier otro documento
xml.

Las limitantes que tiene el SVG son las siguientes:


Cdigo abierto. Algunos creadores de SVG se preocupan de que el cdigo fuente
de sus grficos est disponible a los usuarios del sitio, esto puede crear temor.
Uso intensivo de CPU. Un visualizador de SVG hace uso extensivo del CPU
durante los mltiples clculos requeridos por complejas animaciones SVG.
Herramientas limitadas. Inevitablemente toma tiempo despus de que una
tecnologa es liberada para que se desarrollen herramientas y se hagan
disponibles sin licencias al pblico.
SVG tienen su propio DOM (Document Object Model), que est basado en el DOM de
XML y permite la manipulacin especfica del modelo de objetos de un documento SVG.
El propsito del SVG DOM es permitir el control para manipular la estructura y contenido
de un documento SVG mediante la programacin, [Negrete, 2004].

Los perfiles del SVG especifican la definicin de tipo de documento XML SVG del archivo.
En la siguiente tabla se describen los diferentes tipos y versiones de SVG que pueden ser
manipulados por un dispositivo mvil.
Versin Descripcin
SVG 1.0 Adecuados para archivos SVG que se van a ver en un ordenador de
SVG 1.1 sobremesa. SVG 1.1 es la versin completa de la especificacin SVG, de
la que SVG Tiny 1.1, SVG Tiny 1.1 Plus, SVG Tiny 1.2, y SVG Basic 1.1
son subconjuntos.
SVG Basic 1.1 Adecuado para archivos SVG que se van a ver en dispositivos con
necesidades medias de alimentacin, como los dispositivos porttiles.
Tenga en cuenta que no todos los dispositivos porttiles admiten el perfil
SVG Basic. Por lo tanto, seleccionar esta opcin no garantiza que el
archivo SVG se podr ver en todos los dispositivos porttiles. SVG Basic
no admite recorte no rectangular ni determinados efectos de filtro SVG.
SVG Tiny 1.1 Adecuados para archivos SVG que se van a ver en dispositivos pequeos
SVG Tiny 1.1+ como telfonos mviles. Tenga en cuenta que no todos los telfonos

Pgina 154
Anexo D. Scalable Vector Graphics (SVG)

mviles admiten los perfiles SVG Tiny y SVG Tiny Plus. Por lo tanto,
seleccionar alguna de estas opciones no garantiza que el archivo SVG se
podr ver en todos los dispositivos pequeos.
SVG Tiny 1.2 Adecuado para archivos SVG que se van a ver en varios dispositivos,
desde PDA y mviles, hasta equipos porttiles y de escritorio.

SVG Tiny no admite degradados, transparencia, recorte, mscaras, smbolos ni efectos


de filtro SVG. SVG Tiny Plus incluye la capacidad para poder ver degradados y
transparencia, pero no admite recorte, mscaras, smbolos ni efectos de filtro SVG.

La estructura de un archivo svg es el siguiente:

1 <?xml version=1.0 encoding=ISO-8859-1 standalone=no?>


2 <!DOCTYPE svg PUBLIC -//W3C//DTD SVG 1.1 Tiny//EN
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd>
3 <svg width=240 height=320 viewBox=0 0 25 15
xmlns=http://www.w3.org/2000/svg
xmlns:xlink=http://www.w3.org/1999/xlink
version=1.1 baseProfile=tiny>
4 <-- SVG content goes here -->
5 </svg>
Figura D.1 Estructura de un archivo SVG-Tiny 1.1

La extensin de una imagen SVG, independientemente del perfil del que se trate es svg.
El tipo de MIME de estos grficos es image/svg+xml.

Perfiles SVG Mviles


SVG Mvil se refiere especficamente a dispositivos mviles pequeos, la gran variedad
de dispositivos mviles permite la generacin de diferentes versiones de SVG, ya que
cada dispositivo mvil tiene caractersticas diferentes con respecto a otros en cuanto a
velocidad de procesamiento, memoria y soporte de colores.

Para hacer frente a esta gama de familias de dispositivos se definen dos perfiles. El
primero SVG Tiny (SVGT) es adecuado para los dispositivos mviles muy restringidos,
mientras que el segundo perfil SVG Basic (SVGB) est dirigido a dispositivos mviles de
nivel superior.

Debido a la poca memoria, potencia de procesamiento y demostracin limitada de los


dispositivos mviles, SVG introduce restricciones en el contenido, los tipos de atributos,
propiedades y el comportamiento del agente de usuario. Esta seccin describe estas
limitaciones.

Para garantizar la interoperabilidad entre contenido compatible con los distintos perfiles se
especifica un subconjunto de propiedades de SVGB los tenga tambin SVGT. En la figura
D.2 se muestran los perfiles SVG.

Pgina 155
Anexo D. Scalable Vector Graphics (SVG)

Perfil MOBILE

Perfil FULL

Figura D.2 Perfiles SVG

La relacin de poder de computacin entre los tres tipos de dispositivos (celulares, {PDA,
SmarthPhone}, computadoras porttiles) se ve muy similar a una pirmide. La parte
superior de la pirmide es el conjunto de las familias de los telfonos mviles con
caractersticas limitadas. Estas caractersticas estn disponibles en una PDA teniendo
caractersticas ms avanzadas que son en s mismos todos los disponibles en una
computadora de escritorio o porttil siendo ms avanzados. As, un telfono mvil todo lo
que puede hacer es factible por una PDA, y todo lo factible de un PDA es factible por una
computadora. Por lo tanto, se decidi que SVG Tiny sera un subconjunto estricto de SVG
Basic, por s misma un subconjunto estricto de SVG Full, [XMLcom, 2004]. En la siguiente
tabla se muestran los tipos de datos que soporta el perfil mvil.

Tabla D.1 Tipos de datos del perfil mvil


Tipo de dato SVGBasic SVGTiny
Numrico Si Si
Coordenadas Si Si
Listas Si Si
Angulo Si, con identificadores CSS Si, sin identificadores CSS
Color CSS2 compatible a sRGB y CSS2 compatible a sRGB y
16 colores originales 16 colores originales
XHTML, no soportan X11. XHTML, no soportan X11.
Relleno Si Slo colores slidos
Porcentaje Si No
Transformacin de Listas Si SI
URI Si Si
Frecuencia No No
Tiempo Si Si

De acuerdo a la especificacin [SVG, 2009] se tienen algunas propiedades que son


compatibles en ambos perfiles mviles. A continuacin se describen algunas de las
propiedades:

Sistemas de coordenadas y transformaciones

SVGB y SVGT soportan la transformacin de atributos. Los siguientes tipos de


transformacin son compatibles:

Pgina 156
Anexo D. Scalable Vector Graphics (SVG)

Matrix (<a> <b> <c> <d> <e> <f>)


Translate (<tx> [<ty>])
Scale (<sx> [<sy>])
Rotate (<rotate_angle> [<cx> <cy>])
SkewX (<skew_angle>)
SkewY (<skew_angle>)

SVGB y SVGT soportan el atributo viewBox, y las restricciones de los valores del atributo
preserveAspectRadio.

Shapes
SVGB y SVGT soportan el atributo path, excepto las curvas elpticas, tambin soportan
las formas bsicas (rectngulos, crculos, elipses, lneas, poli lneas y polgonos).

Texto
SVGB y SVGT representan texto con los caracteres Unicode, permite seleccionar el texto
y operaciones de portapapeles. SVGT no soporta texto en el path.

Relleno, Relieve y smbolos.


SVGB y SVGT soportan relleno y relieve en elementos path y formas bsicas con colores
slidos.

Gradientes y patrones
SVGB soporta colores slidos, gradientes, patrones y colores personalizados. SVGT solo
soporta colores slidos.

Efectos de filtrado
SVGB soporta un subconjunto de efectos de filtros. SVGT no soporta.

Interactividad
SVGB y SVGT soportan eventos con animaciones declaradas.

Enlaces
SVGB y SVGT soportan la activacin de hipervinculos de contenidos SVG a otros
recursos Web.

Script
SVGT no soporta los script. SVGB permite los script que incluyen caractersticas de SVG
1.1.

Animacin
Ambos soportan las animaciones. SVGT slo admite animacin declarativa.

Pgina 157
Anexo D. Scalable Vector Graphics (SVG)

Representacin de puntos referencia en un mapa


SVG es un vocabulario xml por medio del cual se formaliza un conjunto de elementos
grficos como rectngulos, lneas, polgonos, elipses, etctera. De la combinacin de
esos elementos surgen los documentos SVG. La caracterstica ms destacada de esos
documentos es que son a la vez texto e imgenes, se utilizan para representar
visualmente diversas reas de la ciencia y del mundo real, [DelaRosa, 2009].
El formato SVG en el mbito de los Sistemas de Informacin Geogrfica es un estndar
muy popular para visualizar datos geoespaciales. Las herramientas GIS ofrecen interfaces
para exportar SVG, sin embargo, tiene muchas limitaciones que hacen difcil la realizacin
de aplicaciones GIS afectando la visualizacin adecuada de los datos geogrficos. En
esta seccin se describen los elementos SVG que permiten visualizar puntos de
referencia de un camino en un mapa SVG, especficamente la versin 1.1 para
dispositivos mviles.

Elemento path
Los elementos path son tiles para crear vistas profesionales en documentos SVG, siendo
los tag ms difciles de codificar a mano. Se pueden crear cualquier tipo de imgenes que
se pueden visualizar en diferentes aplicaciones. En la tabla D.1 se muestran los atributos
que pueden ser utilizados por el elemento path y en la tabla D.2 se describen los
comandos que pueden ser utilizados, el path se define con el atributo d separados con
comandos y coordenadas.
Tabla D.1 Atributos del elemento Path
Atributo Descripcin
d Define el path con un conjunto de comandos

transform Es utilizado por estos funciones:


translate(x,y), scale(sx, sy), rtate(angle, cx, cy), skewX(angle),
skewY(angle) y matrix(a,b,c,d,e,f)
De presentacin Color, FillStroke, Graphics y Markes

Tabla D.2 Comandos utilizados en el path


Comando Parmetros Repite Descripcin
M x,y Si moveto: Mueve el objeto a una nueva ubicacin. Ninguna
lnea se dibuja. Todos los datos de ruta deben empezar
con un comando M.
L x,y Si lineto: Dibuja una lnea desde el punto actual hasta el
punto (x, y).
H x Si horizontal lineto: Dibuja una lnea horizontal desde el punto
actual a x.
V y Si vertical lineto: Dibuja una lnea vertical desde el punto
actual a y.
C x1 y1 x2 y2 x y Si curveto: Dibuja una curva cbica de Bezier hasta el punto
(x, y), donde los puntos (x1, y1) y (x2, y2) son los puntos
de inicio y de control final, respectivamente.
S x2 y2 x y Si shorthand/smooth curveto: Dibuja una curva para el punto (x,
y) en el punto (x2, y2) es el punto de control final y el punto de
control de inicio es el reflejo del punto de control que finaliza.

Pgina 158
Anexo D. Scalable Vector Graphics (SVG)

Q x1 y1 x y Si Quadratic Bezier curveto: Dibuja un bezier cuadrtico entre el


ltimo punto y el unto (x, y) utilizando el punto(x1, y1) como el
punto de control.
T xy Si Shorthand/smooth quadratic Bezier curveto: Dibuja un Bzier
cuadrtico entre el ltimo punto y el punto(x, y) utilizando el
reflejo del punto del control del pasado como el punto de control.
A ** Si elliptical arc: Dibuja y arco desde el punto actual a y. x,
The actual scale factor and position of the arc needed to
bridge the two points is computed by the SVG viewer. El
factor de escala real y la posicin del arco necesario para
colmar los dos puntos es calculada por el visor SVG.
z - No closepath: Cierra el camino. A line is drawn from the last
point to the first. Se traza una lnea desde el ltimo punto
al primero.

Elemento g
El elemento g permite la agrupacin de las etiquetas, siendo la forma primaria de los
documentos SVG que estn estructurados. Las capas en SVG se representan por medio
del elemento g, el cual tiene la funcin de agrupar varios elementos. Elementos fuera y
dentro de un grupo son tratados de manera idntica y no hay lmite a la profundidad de la
agrupacin.
Elemento defs
El elemento defs se utilizan para definir elementos SVG sin que se muestren en pantalla.
Cosas como los gradientes y patrones en SVG deben ser predeclarados y referenciados
con el fin de utilizar dentro del cuerpo del SVG. As pues, la etiqueta de defs se utiliza
para contener elementos de referencia en otras partes del documento SVG a travs de
URIs.
Elemento use
El elemento use utiliza una URI referenciada para la opcin g, svg o de otro tipo
(rectngulo, circulo, texto, etc.) con un atributo id nico y replicarlo. Este objeto replicado,
como elemento de g utiliza cualquier atributo de presentacin aplicado a la etiqueta use
como valores por default. La copia es slo una referencia a la original por lo que slo
existe en los elementos contenidos en defs. Cualquier cambio de la copia no afecta a la
original puesto no es parte del documento.
Ejemplos
A continuacin se presenta un grfico que representa el logo de OXXO.

1 <?xml version=1.0 encoding=utf-8?>


2 <!DOCTYPE svg PUBLIC -//W3C//DTD SVG 1.1 Tiny//EN
3 http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd>
4
5 <svg width=240 height=320 viewBox=0 0 25 15
6 xmlns=http://www.w3.org/2000/svg
7 xmlns:xlink=http://www.w3.org/1999/xlink
8 version=1.1 baseProfile=tiny>
9 <defs id=genericDefs>
10 <g id=oxxo stroke=none stroke-width=0>
11 <rect x=12.963 y=12.458 fill=#E42C35 width=17.007 height=4.833/>
12 <path fill=#F4DB27 d=M30.25,11.688c0,0.242-0.149,0.438-0.333,0.438H13.296c-0.184,0-0.333-

Pgina 159
Anexo D. Scalable Vector Graphics (SVG)

0.195-0.333-0.438l0,0
13 c0-0.241,0.149-0.438,0.333-
0.438h16.622C30.101,11.25,30.25,11.446,30.25,11.688L30.25,11.688z/>
14 <path fill=#F4DB27 d=M29.97,18.062c0,0.242-0.149,0.438-0.333,0.438H13.015c-0.184,0-0.333-
0.195-0.333-0.438l0,0
15 c0-0.241,0.149-0.438,0.333-
0.438h16.622C29.82,17.625,29.97,17.821,29.97,18.062L29.97,18.062z/>
16 <text transform=matrix(1 0 0 1 12.5425 17.167) fill=#FBFBFB font-family=OldgateLaneOutline
font-size=6>OXXO</text>
17 </g>
18 </defs>
19 <g id=capa0>
20 <use xlink:href=#oxxo transform=translate(5 5) rotate(0) translate(-12.96 -12.45) />
21 </g>
22 </svg>
Figura D.3 Cdigo SVG que representa el logo de OXXO

En la figura D.3 se muestra el cdigo SVG que representa el logo de OXXO, primero se
definen los elementos en las lneas 9 al 18, posteriormente se agrupan elementos
contenidos en el elemento g que tiene oxxo como valor del id, declarando dentro ste los
elementos path y texto para construir el logo. Para que sea utilizado esta declaracin se
utiliza el elemento use que hace referencia al grupo de elementos llamado #oxxo. La
figura D.4 representa la visualizacin del ejemplo.

Figura D.4 Logo del OXXO

A continuacin se muestra en la figura D.5 el cdigo SVG que visualiza una ruta y puntos
de referencia tal y como se puede ver en la figura D.6. La seccin seleccionada en gris
muestra las definiciones de los logos de cada punto de referencia, se observa que cada
logo es un conjunto de elementos contenidos en elementos g. Las referencias a los
logos se representan mediante el elemento use seleccionados en azul. Cabe sealar
que realiza una copia exacta y se puede manipular sin modificar el logo original declarado
en defs.

1 <?xml version=1.0 encoding=UTF-8?>


2 <!DOCTYPE svg PUBLIC -//W3C//DTD SVG 1.1 Tiny//EN http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-
tiny.dtd>
3
4 <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink version=1.1
baseProfile=tiny viewBox=0 0 240 320>
5 <defs id=genericDefs>
6 <g id=oxxo stroke=none stroke-width=0>
7 ..//Elementos del logo
8 </g>

Pgina 160
Anexo D. Scalable Vector Graphics (SVG)

9 <g id=oro stroke=none stroke-width=0 >


10 ..//Elementos del logo
11 </g>
12 <g id=taxi stroke=none stroke-width=0>
13 ..//Elementos del logo
14 </g>
15 <g id=cinemax stroke=none stroke-width=0>
16 ..//Elementos del logo
17 </g>
18
19 <path id=Triangle d=M 6,0 L -3,3.7 v-6.7 z fill=#084B8A stroke=none />
20
21 </defs>
22 <g id=capa0 display=inline stroke=black>
23 ..
24 </g>
25
26 <g id=capa3 display=inline stroke=#0A2A0A stroke-width=0.2>
27 <text x=10 y=10 font-size=10>Distancia a recorrer: 565.2121023466261</text>
28 <line x1=124.0 y1=227.0 x2=147.0 y2=225.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
29 <use xlink:href=#Triangle transform=translate(135.5 226.0) rotate(359.2283309922658) />
30 <line x1=147.0 y1=225.0 x2=148.0 y2=198.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
31 <use xlink:href=#Triangle transform=translate(147.5 211.5) rotate(283.6753688645108) />
32 <line x1=148.0 y1=198.0 x2=147.0 y2=192.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
33 <line x1=147.0 y1=192.0 x2=137.0 y2=192.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
34 <line x1=137.0 y1=192.0 x2=133.0 y2=191.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
35 <line x1=133.0 y1=191.0 x2=132.0 y2=190.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
36 <line x1=132.0 y1=190.0 x2=132.0 y2=188.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
37 <line x1=132.0 y1=188.0 x2=132.0 y2=187.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
38 <line x1=132.0 y1=187.0 x2=141.0 y2=158.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
39 <use xlink:href=#Triangle transform=translate(136.5 172.5) rotate(294.4114687460243) />
40 <line x1=141.0 y1=158.0 x2=143.0 y2=148.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
41 <use xlink:href=#Triangle transform=translate(142.0 153.0) rotate(283.5149934205348) />
42 <line x1=143.0 y1=148.0 x2=144.0 y2=141.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
43 <line x1=144.0 y1=141.0 x2=142.0 y2=112.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
44 <use xlink:href=#Triangle transform=translate(143.0 126.5) rotate(269.50193983749386) />
45 <line x1=142.0 y1=112.0 x2=141.0 y2=93.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
46 <use xlink:href=#Triangle transform=translate(141.5 102.5) rotate(269.51821326518393) />
47 <line x1=141.0 y1=93.0 x2=135.0 y2=43.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
48 <use xlink:href=#Triangle transform=translate(138.0 68.0) rotate(269.4513674007766) />
49 <line x1=135.0 y1=43.0 x2=136.0 y2=43.0 stroke-width=2.5 fill-opacity=0.5 stroke=#0174DF />
50
51 <use xlink:href=#taxi transform=translate(158.0 228.0) rotate(0) translate(-14.75 -36.62) />
52 <circle cx=153.0 cy=230.0 r=2.0 fill-opacity=0.5 stroke-width=0.5 fill=red stroke=black />
53
54 <use xlink:href=#oxxo transform=translate(145.0 189.0) rotate(0) translate(-12.96 -12.45) />
55 <circle cx=140.0 cy=191.0 r=2.0 fill-opacity=0.5 stroke-width=0.5 fill=red stroke=black />
56
57 <use xlink:href=#oro transform=translate(145.0 111.0) rotate(0) translate(-14.5 -27.26) />
58 <circle cx=140.0 cy=113.0 r=2.0 fill-opacity=0.5 stroke-width=0.5 fill=red stroke=black />
59
60 <use xlink:href=#cinemax transform=translate(145.0 91.0) rotate(0) translate(-22.86 -53.99) />
61 <circle cx=140.0 cy=93.0 r=2.0 fill-opacity=0.5 stroke-width=0.5 fill=red stroke=black />
62
63 <circle cx=136.0 cy=39.0 r=2.0 fill-opacity=0.5 stroke-width=0.5 fill=red stroke=black />
64 <text x=141.0 y=37.0 font-size=8 font-family=Verdana fill=#0A2A0A stroke-width=0>Super gym</text>
65 </g>
66 </svg>
Figura D.5 Cdigo SVG que representa puntos de referencia en un mapa

Pgina 161
Anexo D. Scalable Vector Graphics (SVG)

Figura D.6 Puntos de referencia representados mediante logos en SVG-Tiny

Pgina 162
REFERENCIAS

[Arienza, 2006] ArienzaJorge L.; Sistemas Operativos mviles,


http://jlarienza.blogspot.com/2006/10/sistemas-operativos-moviles.html; ltima
consulta: Noviembre 2008.

[Brinkhoffi, 2008] Thomas Brinkhoff1, Christof Lindenbeck2, Jrgen Weitkmper3,


1,3Oldenburg/Ostfriesland/Wilhelmshaven (University of Applied Sciences), 2 in
medias res, Gesellschaft fr Informationstechnologie mbH, Oldenburgo, 2008,
Interoperable Data Processing by Mobile Geospatial Applications, , ltima consulta
Diciembre 2008

[Cabral, 2005] Igor Pinheiro de Sales Cabral1,Jorge Henrique Fernandes2, Luiz Marcos Garcia
Gonalves1, 1Universidade Federal do Rio Grande do Norte, 2Universidade de
Braslia, 2008; gvSIG para dispositivos mviles;
http://marte.dpi.inpe.br/col/ltid.inpe.br/sbsr/2004/11.18.18.17/doc/2067.pdf, 2005,
ltima consulta: Septiembre 2008

[COFETEL, 2009] COFETEL, Penetracin de la telefona mvil en Mxico 1990-2007,


http://www.cft.gob.mx/wb/Cofetel_2008/Cofe_penetracion_de_la_telefonia_movil_po
r_region_, ltima consulta: julio 2009

[deeGree, 2009] deeGree, 2009. Sitio oficial de deeGree. [En lnea]. http://www.deegree.org/.
Consultado en Enero 2009.

[deviceatlas, 2008] Device Atlas. Mobile Device Intelligence. http://deviceatlas.com/ , 2008, ltima
consulta: Diciembre 2008

[Devmobi, 2007] SVG & Mobile | dev.mobi. 2007. Dev.mobi Internet Made Mobile. [En lnea]
http://dev.mobi/article/svg-mobile. Consultaso en abril de 2008.

[DelaRosa, 2009] De la Rosa Antonio, Senso Jose A.; Universidad de Granada; Dualidad texto-
imagenen SVG: nuevas posibilidades para la descripcin de la informacin grfica,
diciembre 2009.

[GPSWiki, 2009] Wikipedia, la enciclopedia libre, Sistema de posicionamiento global.


http://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global., ltima consulta:
junio 2009.

[Geoserver, 2009] Geoserver, 2009. Sitio oficial de Geoserver. [En lnea].


http://geoserver.org/display/GEOS/Welcome. Consultado en Febrero 2009.

[GSM, 2009] Global System for Mobile communications, http://en.wikipedia.org/wiki/GSM, ltima


consulta: Agosto 2009

[LBSWiki, 2009] Wikipedia, la enciclopedia libre, Sistema basado en localizacin.


http://es.wikipedia.org/wiki/Lbs , ltima consulta: junio 2009.

[GvSIG, 2009] gvSIG, 2009. Sitio oficial de gvSIG. [En lnea]. http://www.gvsig.gva.es/. Consultado
en Enero 2009.

[Hampe, 2005] Mark Hampe1 and Volker Paelke2; Institute of Cartography and Geoinformatics,
University of Hannover Appelstrae; Adaptive maps for mobile applications,
Referencias

http://www.ikg.uni-
hannover.de/publikationen/publikationen/2005/hampe_mobilemaps2005.pdf, 2005;
ltima consulta: Septiembre 2008

[Ichiro,2002] Hashiba Ichiro Ohba Toshifumi; NAKAI Akifumi, Ntt Data Corporation, 2002;
Development of Route Map Service for Mobile Phone based on G-XML,
http://www.cartesia.org/articulos/g-xml/GISA(English)Final.doc; ltima consulta:
Septiembre 2008

[IEEE289, 2009] IEEE Standard for Software Test Documentation, Software Engineering Technical
Committee of the IEEE Computer Society, ISBN 0-7381-1444-8

[JIPDC, 2006] Japan Information Processing Development Corporation, Database Promotion


Center, Japan, http://www.dpc.jipdec.or.jp/gxml/contents-e/index.htm, 2006, ltima
consulta: septiembre 2008

[Kosmo, 2009] Kosmo, 2009. Sitio oficial de kosmo. [En lnea]. http://www.opengis.es/. Consultado
en Enero 2009.

[Magon, 2006] Magon Ajay, Shukla Reena, LBS the ingredients and the alternatives. Gis
Development. Disponible en:
http://www.gisdevelopment.net/technology/lbs/techlbs006.htm ltima consulta: Junio
2009.

[Mapserver, 2009] Mapserver, 2009. Sitio oficial de Mapserver. [En lnea]. http://mapserver.org/.
Consultado en Febrero 2009.

[MapWindows, 2009] MapWindows, 2009. Sitio oficial de MapWindows. [En lnea].


http://www.mapwindow.org/. Consultado en Febrero 2009.

[Montesinos, 2008] Miguel Montesinos Lajara, Javier Carrasco Marimn; PRODEVELOP, 2008;
Adaptive Visualisation of Geographic Information on Mobile Devices;
http://www.sigte.udg.es/jornadassiglibre/uploads/file/Comunicaciones/4(1).pdf;
ltima consulta: Septiembre 2008

[MWM, 2008] Microsoft; Windows Mobile 6.0; http://msdn.microsoft.com/en-


us/library/bb158486.aspx; ltima consulta: Noviembre 2008

[Negrete, 2004] Negrete Lpez Gustavo A., Rdrguez Ortega Benjamn; Universidad de las Americas
Puebla; Arquitectura hbrida de acceso y visualizacin de datos. [En lnea]
http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/negrete_l_ga/ ; ltima consulta:
Diciembre 2009

[Netbeans, 2009] NetBeans, http://www.netbeans.org/, ltima consulta: Agosto 2009

[NokiaMMS, 2007] Nokia Europe-MMS-Technologies. Nokia, 2007.


http://europe.nokia.com/A4172038. ltima consulta: Junio 2009

[oJUMP, 2009] openJUMP, 2009. Sitio oficial de openJUMP. [En lnea].


http://openjump.org/wiki/show/HomePage. Consultado en Enero 2009.

[openLayers, 2009] openLayers, 2009. Sitio oficial de openLayers. [En lnea]. http://openlayers.org/.
ltima consulta: Febrero 2009.

Pgina 164
Referencias

[XMLcom, 2004] XML.com: Going Mobile with SVG: Standards. OReilly Media, Inc. [En lnea].
http://www.xml.com/pub/a/2004/06/16/mobilesvg.html, ltima consulta: Diciembre
2009

[Ortiz, 2001] Ortiz Gabriel. Tipos de SIG y modelos de datos. Un artculo introductorio para
entender las bases de los SIG. http://recursos.gabrielortiz.com/index.asp?Info=012.
ltima consulta: Junio 2009

[Postgis, 2009] PostGIS, http://postgis.refractions.net/, ltima consulta: 2009

[Postgres, 2009] PostgreSQL, http://www.postgresql.org/ ltima consulta: Agosto 2009

[QGIS, 2009] Quantum GIS, 2009. Sitio Oficial de Quantum GIS. [En lnea]. http://www.qgis.org/.
Consultado en Enero 2009.

[Quionez, 2007] Quionez Bernardino Pedro,Gateway SMS/MMS Pull Para Consultas


Dependientes/Independientes de la Ubicacin con una Arquitectura de
Servicios Web, cenidet 2007
[Reichembacher, 2004] Tumasch Reichenbacher; Instituto de Fotogrametra y Cartografa, 2004; Adaptive
Visualisation of Geographic Information on Mobile Devices; http://tumb1.biblio.tu-
muenchen.de/publ/diss/bv/2004/reichenbacher.pdf; ltima consulta: Septiembre
2008

[Roldn, 2005] Roldn David. Comunicaciones inalmbricas. Mxico: Editorial Alfaomega, 2005

[Sabine, 2004] Sabine Geldof y Robert Dale; IMPROVING ROUTE DIRECTIONS ON MOBILE
DEVICES; Centre for Language Technology Macquarie University, Australia, 2004;
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.14.6150; ltima consulta:
Septiembre 2008

[SBL, 2009] Wikipedia, la enciclopedia libre, Sistema basado en localizacin.


http://es.wikipedia.org/wiki/Lbs , ltima consulta: junio 2009.

[Scherp, 2004] * Ansgar Scherp, Susanne Boll; OFFIS, Oldenburg, University of Oldenburg;
mobileMM4U framework support for dynamic personalized multimedia content on
mobile systems, 2004; http://medien.informatik.uni-
oldenburg.de/pubs/SB_mobileMM4U_TAMoCO_2004.pdf; ltima consulta:
Septiembre 2008

[SEXTANTE, 2009] SEXTANTE, 2009. Sitio oficial de SEXTANTE. [En lnea].


http://forge.osor.eu/plugins/wiki/index.php?id=13&type=g. Consultado en Enero
2009.

[SFS, 2009] Open Geospatial Consortium. Simple Feature Specification.


http://portal.opengeospatial.org/files/?artifact_id=829, ltima consulta: Septiembre
2009.

[SG, 2005] Rodrguez Rams Estructura de paquetes Revista Software Guru. Marzo-Abril
2005.

[SIG, 2009] Wikipedia, la enciclopedia libre, Sistema de posicionamiento global.


http://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global., ltima consulta:
junio 2009.

Pgina 165
Referencias

[Steiniger, 2006] Steiniger Stefan, Neun Moritz, Alistair Edwardes Foundations of Location Based
Services, Departamento de Geografa, Universidad de Zurich, Suiza. 2006

[SVG, 2009] Moblie SVG Profiles: SVG Tiny, http://www.w3.org/TR/SVGMobile/, ltima consulta:
junio 2009

[Symbian, 2008] Symbian, http://www.symbian.com ltima consulta: noviembre 2008

[Tomcat,2009] Apache Tomcat, http://tomcat.apache.org/, ltima consulta: Agosto 2009


[Turner, 2003] Turner Alasdair, Penn Alan y Hillier Bill, An algorithmic definition of the axial map,
Noviembre, 2003.
[uDIG, 2009] uDIG 2008. Sitio oficial de uDIG. [en lnea]. http://udig.refractions.net/. Consultado
en Enero 2009.

[Victoria, 2008] Victoria Rincon Claudia, API para la gestin de mapas de navegacin en
dispositivos mviles mediante el GPS y mensajera SMS/MMS, cenidet 2008

[Wikiversidad,2008] Wikiversidad; Sistemas Operativos,


http://es.wikiversity.org/wiki/Sistemas_operativos; ltima consulta: Noviembre 2008

[Wdsglobal, 2008] WDSGlobal Device Management


http://www.wdsglobal.com/downloads/infosheets/DeviceMine.pdf , 2007, ltima
consulta Diciembre 2008

[WMS, 2009] Web Map Service, http://www.opengeospatial.org/standards/wms , ltima consulta:


Agosto 2009

[WorldWind, 2009] WorldWind, 2009. Sitio oficial de WorldWind. [En lnea].


http://worldwind.arc.nasa.gov/. Consultado en Febrero 2009.

[Wurfl, 2008] WURFL. La comunidad mvil ms exitante del planeta, http://wurfl.sourceforge.net/ ,


2008, ltima consulta: Diciembre 2008

Pgina 166

Das könnte Ihnen auch gefallen