La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SIG para dispositivos móviles de la Junta de Extremadura Alumno: ALBERTO ROMEU Director empresa: MIGUEL MONTESINOS

Presentaciones similares


Presentación del tema: "SIG para dispositivos móviles de la Junta de Extremadura Alumno: ALBERTO ROMEU Director empresa: MIGUEL MONTESINOS"— Transcripción de la presentación:

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


Descargar ppt "SIG para dispositivos móviles de la Junta de Extremadura Alumno: ALBERTO ROMEU Director empresa: MIGUEL MONTESINOS"

Presentaciones similares


Anuncios Google