SlideShare ist ein Scribd-Unternehmen logo
1 von 65
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

Weitere ähnliche Inhalte

Ähnlich wie SIGATEX Móvil

Sistema de información geográfica
Sistema de información geográficaSistema de información geográfica
Sistema de información geográficaOscar_bongianino
 
Sistema de información geográfica
Sistema de información geográficaSistema de información geográfica
Sistema de información geográficaOscar_bongianino
 
Sistemas de Información en Movilidad
Sistemas de Información en MovilidadSistemas de Información en Movilidad
Sistemas de Información en MovilidadMovilidad Granada
 
Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...Luis Bermudez
 
Geografía aplicada estudios_ambientales_iii
Geografía aplicada estudios_ambientales_iiiGeografía aplicada estudios_ambientales_iii
Geografía aplicada estudios_ambientales_iiiAlberto Oriza
 
Los sistemas de información geográfica (SIG) y estándares de normalización
Los sistemas de información geográfica (SIG) y estándares de normalizaciónLos sistemas de información geográfica (SIG) y estándares de normalización
Los sistemas de información geográfica (SIG) y estándares de normalizaciónFacultad de Informática UCM
 
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...Esri
 
APLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVIL
APLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVILAPLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVIL
APLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVILgerardo henry espinoza sumaran
 
Georreferenciacion T.P.
Georreferenciacion T.P.Georreferenciacion T.P.
Georreferenciacion T.P.suelosyaguas
 
Sistema LiDAR - Experiencias en Colombia
Sistema LiDAR - Experiencias en Colombia Sistema LiDAR - Experiencias en Colombia
Sistema LiDAR - Experiencias en Colombia HernnDaroWilchesRoja
 
Sistemas de información geográfica
Sistemas de información geográficaSistemas de información geográfica
Sistemas de información geográficacadiz1
 
Introducción a la caracterización fisiográfica de microcuencas
Introducción a la caracterización fisiográfica de microcuencasIntroducción a la caracterización fisiográfica de microcuencas
Introducción a la caracterización fisiográfica de microcuencasHydronotes
 
Workshop cesaerob
Workshop cesaerobWorkshop cesaerob
Workshop cesaerobEsri
 
S3_1.pdf
S3_1.pdfS3_1.pdf
S3_1.pdfdams8
 
Comparación e implementación de liberías webmapping como herramienta de visua...
Comparación e implementación de liberías webmapping como herramienta de visua...Comparación e implementación de liberías webmapping como herramienta de visua...
Comparación e implementación de liberías webmapping como herramienta de visua...Golgi Alvarez
 
Seminario Introducción a los SIG y Desarrollo de Aplicaciones
Seminario Introducción a los SIG y Desarrollo de AplicacionesSeminario Introducción a los SIG y Desarrollo de Aplicaciones
Seminario Introducción a los SIG y Desarrollo de AplicacionesEsri
 

Ähnlich wie SIGATEX Móvil (20)

Sistema de información geográfica
Sistema de información geográficaSistema de información geográfica
Sistema de información geográfica
 
Sistema de información geográfica
Sistema de información geográficaSistema de información geográfica
Sistema de información geográfica
 
Sistemas de Información en Movilidad
Sistemas de Información en MovilidadSistemas de Información en Movilidad
Sistemas de Información en Movilidad
 
Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...
 
Geografía aplicada estudios_ambientales_iii
Geografía aplicada estudios_ambientales_iiiGeografía aplicada estudios_ambientales_iii
Geografía aplicada estudios_ambientales_iii
 
Los sistemas de información geográfica (SIG) y estándares de normalización
Los sistemas de información geográfica (SIG) y estándares de normalizaciónLos sistemas de información geográfica (SIG) y estándares de normalización
Los sistemas de información geográfica (SIG) y estándares de normalización
 
Introducción SIG [Máster Smart Cities UdG]
Introducción SIG [Máster Smart Cities UdG]Introducción SIG [Máster Smart Cities UdG]
Introducción SIG [Máster Smart Cities UdG]
 
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...
API REST de Geoservicios de Esri y los Servicios estándar OGC Clásicos - JIID...
 
APLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVIL
APLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVILAPLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVIL
APLICACION D LOS SISTEMAS DE INFORMACION GEOGRAFICA SIG EN LA INGENIERIA CIVIL
 
Conceptos básicos manejo gps
Conceptos básicos manejo  gpsConceptos básicos manejo  gps
Conceptos básicos manejo gps
 
Georreferenciacion T.P.
Georreferenciacion T.P.Georreferenciacion T.P.
Georreferenciacion T.P.
 
Sistema LiDAR - Experiencias en Colombia
Sistema LiDAR - Experiencias en Colombia Sistema LiDAR - Experiencias en Colombia
Sistema LiDAR - Experiencias en Colombia
 
Sistemas de información geográfica
Sistemas de información geográficaSistemas de información geográfica
Sistemas de información geográfica
 
Introducción a la caracterización fisiográfica de microcuencas
Introducción a la caracterización fisiográfica de microcuencasIntroducción a la caracterización fisiográfica de microcuencas
Introducción a la caracterización fisiográfica de microcuencas
 
Defensa tesis
Defensa tesisDefensa tesis
Defensa tesis
 
Workshop cesaerob
Workshop cesaerobWorkshop cesaerob
Workshop cesaerob
 
S3_1.pdf
S3_1.pdfS3_1.pdf
S3_1.pdf
 
Comparación e implementación de liberías webmapping como herramienta de visua...
Comparación e implementación de liberías webmapping como herramienta de visua...Comparación e implementación de liberías webmapping como herramienta de visua...
Comparación e implementación de liberías webmapping como herramienta de visua...
 
Seminario Introducción a los SIG y Desarrollo de Aplicaciones
Seminario Introducción a los SIG y Desarrollo de AplicacionesSeminario Introducción a los SIG y Desarrollo de Aplicaciones
Seminario Introducción a los SIG y Desarrollo de Aplicaciones
 
Sigt2 sistemasinf
Sigt2 sistemasinfSigt2 sistemasinf
Sigt2 sistemasinf
 

Mehr von Alberto Apellidos

Working with the Boundless SDK to design and create web mapping applications
Working with the Boundless SDK to design and create web mapping applicationsWorking with the Boundless SDK to design and create web mapping applications
Working with the Boundless SDK to design and create web mapping applicationsAlberto Apellidos
 
ESA Space App Camp - Solving a $10 Billion problem
ESA Space App Camp - Solving a $10 Billion problemESA Space App Camp - Solving a $10 Billion problem
ESA Space App Camp - Solving a $10 Billion problemAlberto Apellidos
 
Geospatial web apps development with OpenGeo Suite Client SDK (GXP)
Geospatial web apps development with OpenGeo Suite Client SDK (GXP)Geospatial web apps development with OpenGeo Suite Client SDK (GXP)
Geospatial web apps development with OpenGeo Suite Client SDK (GXP)Alberto Apellidos
 
Geospatial web development with GeoEXT
Geospatial web development with GeoEXTGeospatial web development with GeoEXT
Geospatial web development with GeoEXTAlberto Apellidos
 
Introduction to web development
Introduction to web developmentIntroduction to web development
Introduction to web developmentAlberto Apellidos
 
JIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 Mobile
JIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 MobileJIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 Mobile
JIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 MobileAlberto Apellidos
 
OpenGeo Suite @ SIG Libre 2012 Girona
OpenGeo Suite @ SIG Libre 2012 GironaOpenGeo Suite @ SIG Libre 2012 Girona
OpenGeo Suite @ SIG Libre 2012 GironaAlberto Apellidos
 
gvSIG MIni 2 @ SIG Libre 2012 Girona
gvSIG MIni 2 @ SIG Libre 2012 GironagvSIG MIni 2 @ SIG Libre 2012 Girona
gvSIG MIni 2 @ SIG Libre 2012 GironaAlberto Apellidos
 
Geoinquietos Valencia Open Data
Geoinquietos Valencia Open DataGeoinquietos Valencia Open Data
Geoinquietos Valencia Open DataAlberto Apellidos
 
Implantación de Geoportales con soporte técnico profesionalizado en softwar...
Implantación de Geoportales con soporte técnico profesionalizado en softwar...Implantación de Geoportales con soporte técnico profesionalizado en softwar...
Implantación de Geoportales con soporte técnico profesionalizado en softwar...Alberto Apellidos
 
Novedades gvSIG Mini 2 - 7as Jornadas gvSIG
Novedades gvSIG Mini 2 - 7as Jornadas gvSIGNovedades gvSIG Mini 2 - 7as Jornadas gvSIG
Novedades gvSIG Mini 2 - 7as Jornadas gvSIGAlberto Apellidos
 
gvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG ConferencegvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG ConferenceAlberto Apellidos
 
gvSIG Mini tutorial @ FOSS4G
gvSIG Mini tutorial @ FOSS4GgvSIG Mini tutorial @ FOSS4G
gvSIG Mini tutorial @ FOSS4GAlberto Apellidos
 

Mehr von Alberto Apellidos (13)

Working with the Boundless SDK to design and create web mapping applications
Working with the Boundless SDK to design and create web mapping applicationsWorking with the Boundless SDK to design and create web mapping applications
Working with the Boundless SDK to design and create web mapping applications
 
ESA Space App Camp - Solving a $10 Billion problem
ESA Space App Camp - Solving a $10 Billion problemESA Space App Camp - Solving a $10 Billion problem
ESA Space App Camp - Solving a $10 Billion problem
 
Geospatial web apps development with OpenGeo Suite Client SDK (GXP)
Geospatial web apps development with OpenGeo Suite Client SDK (GXP)Geospatial web apps development with OpenGeo Suite Client SDK (GXP)
Geospatial web apps development with OpenGeo Suite Client SDK (GXP)
 
Geospatial web development with GeoEXT
Geospatial web development with GeoEXTGeospatial web development with GeoEXT
Geospatial web development with GeoEXT
 
Introduction to web development
Introduction to web developmentIntroduction to web development
Introduction to web development
 
JIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 Mobile
JIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 MobileJIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 Mobile
JIIDE 2012 - Clientes IDE 3D: SOSTRE y Glob3 Mobile
 
OpenGeo Suite @ SIG Libre 2012 Girona
OpenGeo Suite @ SIG Libre 2012 GironaOpenGeo Suite @ SIG Libre 2012 Girona
OpenGeo Suite @ SIG Libre 2012 Girona
 
gvSIG MIni 2 @ SIG Libre 2012 Girona
gvSIG MIni 2 @ SIG Libre 2012 GironagvSIG MIni 2 @ SIG Libre 2012 Girona
gvSIG MIni 2 @ SIG Libre 2012 Girona
 
Geoinquietos Valencia Open Data
Geoinquietos Valencia Open DataGeoinquietos Valencia Open Data
Geoinquietos Valencia Open Data
 
Implantación de Geoportales con soporte técnico profesionalizado en softwar...
Implantación de Geoportales con soporte técnico profesionalizado en softwar...Implantación de Geoportales con soporte técnico profesionalizado en softwar...
Implantación de Geoportales con soporte técnico profesionalizado en softwar...
 
Novedades gvSIG Mini 2 - 7as Jornadas gvSIG
Novedades gvSIG Mini 2 - 7as Jornadas gvSIGNovedades gvSIG Mini 2 - 7as Jornadas gvSIG
Novedades gvSIG Mini 2 - 7as Jornadas gvSIG
 
gvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG ConferencegvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG Conference
 
gvSIG Mini tutorial @ FOSS4G
gvSIG Mini tutorial @ FOSS4GgvSIG Mini tutorial @ FOSS4G
gvSIG Mini tutorial @ FOSS4G
 

Kürzlich hochgeladen

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Kürzlich hochgeladen (11)

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

SIGATEX Móvil

  • 1. 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)
  • 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 GIS Dispositivos 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
  • 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. - 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)
  • 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. - Casos de uso de Análisis de requisitos 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
  • 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. 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
  • 23. 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
  • 24. 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
  • 25. - ¿Qué es un CU Cartografía Tile/Tesela?  Lado: 256px  BoundingBox  Resolución
  • 26. 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
  • 27. 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
  • 28. CU Cartografía - Caché en disco Acceso a disco es lento ¿Cómo acelerar el acceso a caché? Extrapolar Quadkeys al sistema de ficheros
  • 29. 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
  • 30. CU Cartografía - Navegar por el mapa
  • 31. CU Cartografía - Navegar por el mapa (II)
  • 32. CU Cartografía - Centrar el mapa
  • 33. CU Cartografía - Centrar el mapa (II)
  • 35. 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
  • 36. Casos de uso de Rutas
  • 37. 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
  • 38. Casos de uso de rutas -Modelo de geometrías  Colecciones de Features  Feature = Geometría + metadatos  Geometría = Coordenadas + pintado
  • 39. Casos de uso de rutas - DTE de una ruta  Ruta con 2 puntos: inicio + [paso | fin]  Ruta con N puntos: inicio + n ptos paso
  • 40. 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
  • 41. 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.
  • 42. 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
  • 43. Casos de uso de rutas - Cálculo de rutas
  • 44. - 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
  • 45. Casos de uso de Puntos de interés
  • 46. 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
  • 47. Casos de uso POI - Bucket PR-Quadtree  Quadtree: Cada cuadrante se subdivide en 4  Criterio de división: Número de elementos > 100
  • 48. 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
  • 49. Casos de uso POI - Pre-procesado (II)  Recorrer el fichero fuente y llenar el Quadtree (J2SE).
  • 50. 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
  • 51. 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
  • 52. - 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
  • 53. Casos de uso POI - POI
  • 54. Casos de uso POI - Tareas BackGround POI  Cada tarea resuelve un caso de uso  Quicksort para ordenar resultados  50 primeros resultados
  • 55. Casos de uso POI - Visualizar POI
  • 56. Casos de uso de GPS
  • 57. Casos de uso de GPS  Centrar el mapa en la posición del GPS  JSR-179: Location API
  • 58. Casos de uso de GPS – Clases  Un hilo dedicado para GPS  Conversión de EPSG:4326 a EPSG:23030  Com.henson .midp.Float1 1
  • 59. Casos de uso de GPS – DTE
  • 60. Despliegue  Compilación + Preverificación  Emulación + Profiler: Detectar cuellos de botella  Es importante probar sobre dispositivos  Ofuscación + Firma (¿Opcional?)  Empaquetado (JAD + JAR)
  • 61. 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
  • 62. 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
  • 63. Siguientes pasos  gvSIG Mini  Visor WMS, WMS-c, OSM  Cliente YOURS  Cliente NameFinder  GPL  Más eficiente y más compatible
  • 64. 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