Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porGabriel Moreno Giménez Modificado hace 9 años
1
SIG para dispositivos móviles de la Junta de Extremadura Alumno: ALBERTO ROMEU (aromeu@prodevelop.es) Director empresa: MIGUEL MONTESINOS (mmontesinos@prodevelop.es)mmontesinos@prodevelop.es Tutor UPV: VICENTE PELECHANO (pele@dsic.upv.es)
2
Índice Introducción Contexto Análisis requisitos Arquitectura J2ME (Java para dispositivos móviles) LWUIT (Light Weight User Interface Toolkit)
3
Índice (II) Desarrollo de la aplicación Casos de uso de cartografía Casos de uso de rutas Casos de uso de puntos de interés Casos de uso de GPS Despliegue Conclusiones Demo
4
Introducción GISDispositivos móviles
5
Introducción - Objetivo Visor cartografía Extremadura + Rutas + POI + GPS
6
Introducción - Objetivo Que funcione en muchos dispositivos (teléfonos, smartphone, blackberry, etc.)
7
Introducción - Retos Conocer tecnología: J2ME, CLDC, LWUIT, índices espaciales, GIS, GPS, WMS, GeoJSON... Desarrollar para dispositivos móviles Poca memoria Poca capacidad de procesamiento Desarrollar a tiempo: Fecha límite
8
Contexto Adaptación del SIG de la Junta de Extremadura: Consejería de Cultura y Turismo Difundir conocimiento sobre recursos turísticos y culturales a través del Software Libre Prodevelop + Igo software + GeoDatum + Software Colaborativo Financiado con fondos FEDER
9
Contexto
10
Análisis de requisitos Un único actor: TURISTA 4 bloques: Casos de uso de Cartografía Casos de uso de Rutas Casos de uso de puntos de interés (POI) Casos de uso de GPS
11
Análisis de requisitos - Casos de uso de Cartografía Navegar mapa Desplazar (4 direcciones) Zoom más Zoom menos Centrar mapa GPS Cualquier punto (Geometría)
12
Análisis de requisitos - Casos de uso de Rutas Establecer inicio Establecer fin Establecer paso Eliminar punto paso Calcular Anular Selección tipo ruta: a pie o en coche Obtener indicaciones Selección puntos ruta
13
Análisis de requisitos - Casos de uso de Puntos de interés Mostrar POI Buscar POI Consultar información
14
Análisis de requisitos - Casos de uso de GPS Obtener localización Detener GPS
15
Arquitectura
16
J2ME – Java para móviles Configuración CLDC 1.1 Coma flotante Perfil MIDP 2.0 Paquetes opcionales JSR-75 (Ficheros) JSR-172 (Web services) JSR-179 (Location API)
17
J2ME – Java para móviles Fragmentación de dispositivo ¿Cómo evitar la fragmentación? J2ME Polish (Framework Open source) Sun LWUIT Open source (Objetivo: 1 solo jar) Compatibilidad vs Complejidad: Buenas prácticas No se puede soportar TODOS los dispositivos
18
LWUIT – Light Weight User Interface Toolkit
19
LWUIT Swing para dispositivos móviles Light Weight Superar la fragmentación IU 1 JAR para todos los dispositivos MVC, Container + Layouts, List...
20
Desarrollo de la aplicación Casos de uso de cartografía Casos de uso de rutas Casos de uso de puntos de interés Casos de uso de GPS
21
Casos de uso de cartografía
22
Desarrollo de un cliente WMS-c: Web Map Service – caché Cartografía cacheada: tiles Niveles de zoom predeterminados Sólo implementamos operación GetMap
23
CU Cartografía - Arquitectura cliente WMS-c Map: tamaño + Eventos Layer: Capa base + vectorial Grid: Gestión de tiles Tile: Imagen + posición en píxels ViewPort: píxel coordenadas Extent == BoundingBox
24
CU Cartografía - ¿Qué es un Tile/Tesela? Lado: 256px BoundingBox Resolución
25
CU Cartografía - Grid – Gestión de tiles Cálculo de tamaño máximo en tiempo de ejecución Liberar recursos Gestión de peticiones
26
CU Cartografía - Caché de teselas Acelerar carga de teselas Disminuir acceso a Internet 3 niveles Memoria: Pequeña – 2 niveles de zoom Disco: Todo lo que se pueda Internet: Lo que no está en memoria ni en disco
27
CU Cartografía - Caché en disco Acceso a disco es lento ¿Cómo acelerar el acceso a caché? Extrapolar Quadkeys al sistema de ficheros
28
CU Cartografía - El proceso de pintado Se inicia en Form El mapa recorre sus capas: 1. Para la capa base: el grid recorre los tiles y pinta la imagen 2. Para la vectorial: Se recorren las geometrías y se pintan Se pinta un acetato
29
CU Cartografía - Navegar por el mapa
30
CU Cartografía - Navegar por el mapa (II)
31
CU Cartografía - Centrar el mapa
32
CU Cartografía - Centrar el mapa (II)
33
Multi-threading
34
Multi-Threading J2ME no gestiona bien hilos Patrón ThreadPool Evitar bloquear IU Cancelación de tareas Mejor gestión de hilos 1 tarea por cada operación bloqueante
35
Casos de uso de Rutas
36
Definir un modelo de geometrías Establecer una máquina de estados Comunicación con el servidor vía servicios web SOAP Seleccionar un formato de intercambio de geometrías
37
Casos de uso de rutas -Modelo de geometrías Colecciones de Features Feature = Geometría + metadatos Geometría = Coordenadas + pintado
38
Casos de uso de rutas - DTE de una ruta Ruta con 2 puntos: inicio + [paso | fin] Ruta con N puntos: inicio + n ptos paso
39
Casos de uso de rutas - Servicio web SOAP Interoperabilidad: Comunicación con visor web y visor móvil Buena práctica: Dispositivos móviles como clientes de servicios pesados Cliente SOAP: Se configura en tiempo de compilación
40
Casos de uso de rutas - GeoJSON JSON: JavaScript Object Notation. GeoJSON: Especificación JSON para codificar geometrías. Más sencillo que XML. Formato ligero: requiere poca codificación y procesamiento Fácil de parsear y hay muchas implementaciones.
41
Casos de uso de rutas - Cálculo de rutas Entrada: Geometría MultiPoint se convierte a GeoJSON MultiPoint Salida: GeoJSON MultiLineString se convierte a Geometría MultiLineString
42
Casos de uso de rutas - Cálculo de rutas
43
Casos de uso de rutas - Obtener indicaciones de ruta Las propiedades de la ruta se guardan en memoria Cálculo de indicaciones y giros en local Más rápido que acceder al servicio web Peor en dispositivos con poca memoria
44
Casos de uso de Puntos de interés
45
20.000 puntos de interés turístico: Categoría + Descripción + Localización Cambio en los requisitos: los POI se gestionarán en local Fuente: Fichero de texto Diseño de una estructura de datos eficiente: Quadtree Pre-procesar el fichero fuente para optimizar recursos
46
Casos de uso POI - Bucket PR-Quadtree Quadtree: Cada cuadrante se subdivide en 4 Criterio de división: Número de elementos > 100
47
Casos de uso POI - Pre-procesado 1. Recorrer el fichero fuente y llenar el Quadtree (J2SE). 2. Persistir cada hoja en un fichero 3. Persistir descripciones en ficheros diferentes: Acceso aleatorio. 4. Persistir la información del Quadtree en un árbol
48
Casos de uso POI - Pre-procesado (II) Recorrer el fichero fuente y llenar el Quadtree (J2SE).
49
Casos de uso POI - Pre-procesado (III) Persistir cada hoja en un fichero Cada fichero pocos KB Mejor leer ficheros pequeños que uno grande
50
Casos de uso POI - Pre-procesado (IV) Persistir descripciones en ficheros diferentes: (Pseudo)Acceso aleatorio offset / tamFichero 80.000/1024 = Fichero número 78 offset % tamFichero 80.000 % 1024 = byte 128
51
Casos de uso POI - Pre- procesado (V) Persistir la información del Quadtree en un árbol Para una búsqueda devuelve una colección de ficheros Deserializar ficheros en background
52
Casos de uso POI - POI
53
Casos de uso POI - Tareas BackGround POI Cada tarea resuelve un caso de uso Quicksort para ordenar resultados 50 primeros resultados
54
Casos de uso POI - Visualizar POI
55
Casos de uso de GPS
56
Centrar el mapa en la posición del GPS JSR-179: Location API
57
Casos de uso de GPS – Clases Un hilo dedicado para GPS Conversión de EPSG:4326 a EPSG:23030 Com.henson.midp.Float1 1
58
Casos de uso de GPS – DTE
59
Despliegue Compilación + Preverificación Emulación + Profiler: Detectar cuellos de botella Es importante probar sobre dispositivos Ofuscación + Firma (¿Opcional?) Empaquetado (JAD + JAR)
60
Conclusiones ‘write once, run everywhere’ == FALSE Fragmentación de dispositivo == TRUE (aunque cada vez menos) Inconvenientes de J2ME: Modelo de seguridad: certificados + permisos Paquetes opcionales Operadoras: Tráfico Internet caro Impotencia del desarrollador
61
Conclusiones (II) Éxito en el desarrollo La aplicación cumple los requisitos (de manera eficiente) Funciona en muchos (no en todos) los dispositivos ○ BlackBerry, Windows Mobile (JVM - J9), Nokia S60, Sony Ericsson, etc. III Jornadas SIG Libre - Girona
62
Siguientes pasos gvSIG Mini Visor WMS, WMS-c, OSM Cliente YOURS Cliente NameFinder GPL Más eficiente y más compatible
63
Siguientes pasos (II) gvSIG Mini Android SO Libre de Google Teléfonos (HTC, Motorola, Samsung...), PDA, Tablet PC,... Basado en Java 1.4 Más recursos Mas capacidad de procesamiento GPL
64
GRACIAS
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.