• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
SIGATEX Móvil
 

SIGATEX Móvil

on

  • 2,763 views

Presentación del PFC - SIGATEX Móvil en la Facultad de Informática de Valencia

Presentación del PFC - SIGATEX Móvil en la Facultad de Informática de Valencia

Statistics

Views

Total Views
2,763
Views on SlideShare
2,697
Embed Views
66

Actions

Likes
0
Downloads
26
Comments
3

8 Embeds 66

http://www.slideshare.net 23
http://alrocar.es 20
http://www.alrocar.es 11
http://gis.alrocar.es 6
http://www.apurva.com 3
http://webcache.googleusercontent.com 1
http://www.onstic.mapps.es 1
https://www.linkedin.com 1
More...

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SIGATEX Móvil SIGATEX Móvil Presentation Transcript

    • SIG para dispositivos móviles de la Junta de Extremadura Alumno: ALBERTO ROMEU (aromeu@prodevelop.es) Director empresa: MIGUEL MONTESINOS (mmontesinos@prodevelop.es) Tutor UPV: VICENTE PELECHANO (pele@dsic.upv.es)
    • Índice  Introducción  Contexto  Análisis requisitos  Arquitectura  J2ME (Java para dispositivos móviles)  LWUIT (Light Weight User Interface Toolkit)
    • Í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
    • Introducción GIS Dispositivos móviles
    • Introducción - Objetivo  Visor cartografía Extremadura  + Rutas  + POI  + GPS
    • Introducción - Objetivo  Que funcione en muchos dispositivos (teléfonos, smartphone, blackberry, etc.)
    • 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
    • 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
    • Contexto
    • 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
    • - Casos de uso de Análisis de requisitos Cartografía  Navegar mapa  Desplazar (4 direcciones)  Zoom más  Zoom menos  Centrar mapa  GPS  Cualquier punto (Geometría)
    • 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
    • - Casos de uso de Análisis de requisitos Puntos de interés  Mostrar POI  Buscar POI  Consultar información
    • Análisis de requisitos - Casos de uso de GPS  Obtener localización  Detener GPS
    • Arquitectura
    • 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)
    • 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
    • LWUIT – Light Weight User Interface Toolkit
    • LWUIT  Swing para dispositivos móviles  Light Weight  Superar la fragmentación IU  1 JAR para todos los dispositivos  MVC, Container + Layouts, List...
    • 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
    • Casos de uso de cartografía
    • Casos de uso de cartografía  Cliente WMS-c  Arquitectura tiles  Caché tiles  El proceso de pintado  Diseño de casos de uso  Multi-Threading
    • Casos de uso de cartografía  Desarrollo de un cliente WMS-c: Web Map Service – caché  Cartografía cacheada: tiles  Niveles de zoom predeterminados  Sólo implementamos operación GetMap
    • 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
    • - ¿Qué es un CU Cartografía Tile/Tesela?  Lado: 256px  BoundingBox  Resolución
    • 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
    • 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
    • CU Cartografía - Caché en disco Acceso a disco es lento ¿Cómo acelerar el acceso a caché? Extrapolar Quadkeys al sistema de ficheros
    • CU Cartografía - El proceso de pintado  Se inicia en Form  El mapa recorre sus capas: 3. Para la capa base: el grid recorre los tiles y pinta la imagen 4. Para la vectorial: Se recorren las geometrías y se pintan l Se pinta un acetato
    • CU Cartografía - Navegar por el mapa
    • CU Cartografía - Navegar por el mapa (II)
    • CU Cartografía - Centrar el mapa
    • CU Cartografía - Centrar el mapa (II)
    • Multi-threading
    • 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
    • Casos de uso de Rutas
    • Casos de uso de Rutas  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
    • Casos de uso de rutas -Modelo de geometrías  Colecciones de Features  Feature = Geometría + metadatos  Geometría = Coordenadas + pintado
    • Casos de uso de rutas - DTE de una ruta  Ruta con 2 puntos: inicio + [paso | fin]  Ruta con N puntos: inicio + n ptos paso
    • 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
    • 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.
    • 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
    • Casos de uso de rutas - Cálculo de rutas
    • - Obtener Casos de uso de rutas 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
    • Casos de uso de Puntos de interés
    • Casos de uso de Puntos de interés  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
    • Casos de uso POI - Bucket PR-Quadtree  Quadtree: Cada cuadrante se subdivide en 4  Criterio de división: Número de elementos > 100
    • 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
    • Casos de uso POI - Pre-procesado (II)  Recorrer el fichero fuente y llenar el Quadtree (J2SE).
    • 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
    • Casos de uso POI - Pre-procesado (IV)  Persistir descripciones en ficheros diferentes: (Pseudo)Acceso aleatorio CoordenadaX CoordenadaY Categoría OffSetDescripción double (8 bytes) double (8 bytes) short (2 bytes) short (2 bytes)  offset / tamFichero 80.000/1024 = Fichero número 78  offset % tamFichero 80.000 % 1024 = byte 128
    • - Pre- Casos de uso POI 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
    • Casos de uso POI - POI
    • Casos de uso POI - Tareas BackGround POI  Cada tarea resuelve un caso de uso  Quicksort para ordenar resultados  50 primeros resultados
    • Casos de uso POI - Visualizar POI
    • Casos de uso de GPS
    • Casos de uso de GPS  Centrar el mapa en la posición del GPS  JSR-179: Location API
    • Casos de uso de GPS – Clases  Un hilo dedicado para GPS  Conversión de EPSG:4326 a EPSG:23030  Com.henson .midp.Float1 1
    • Casos de uso de GPS – DTE
    • Despliegue  Compilación + Preverificación  Emulación + Profiler: Detectar cuellos de botella  Es importante probar sobre dispositivos  Ofuscación + Firma (¿Opcional?)  Empaquetado (JAD + JAR)
    • 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
    • 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
    • Siguientes pasos  gvSIG Mini  Visor WMS, WMS-c, OSM  Cliente YOURS  Cliente NameFinder  GPL  Más eficiente y más compatible
    • 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
    • GRACIAS