Title: Aplicaciones geogrficas' GPS aplicado al software
1Aplicaciones geográficas. GPS aplicado al
software
- Ricardo Varela
- MVP Visual C
- phobeo_at_ieee.org
- http//phobeo.com
- Chema Alonso
- MVP Win Security
- chema_at_informatica64.com
2El plan
- En esta charla comentaremos
- Generalidades sobre GPS y los programas sensibles
a la localización y al contexto - Cómo conectar tu aplicación con un GPS Bluetooth
- Cómo conectar con el servicio web de Mappoint y
obtener un mapa de nuestra posición - Cómo implementar funcionalidad basada en
presencia (usando Bluetooth)
3Programas sensibles a localización y contexto
- Un dispositivo móvil se mueve!
- (ergo un programa para dispositivos móviles
debería moverse!) - Ejemplos de aplicaciones
- Mapeado y rutas (Pocket Streets, TomTom Go)
- Aplicaciones sociales
- Agendas y otro tipo de PIMs
- Lo que a vosotros se os ocurra!
4Y cómo podemos hacer esto?
A
- Sistemas de localización
- GPS
- Triangulación GSM
- Triangulación WiFi
- MapPoint Location Service Mobile Locator
- Sistemas GIS
- MapPoint Web service
- Reacción al contexto
- Combinadas con servicios de localización
- WiFi o Bluetooth SSID (potencia de señal)
B
?
C
5Fundamentos de GPS
- 24 satélites en órbita
- Al menos 6 a la vista
- Con 3 y al menos uno con potencia suficiente
tenemos posición fijada - Big Brother is watching you! P
6Código NMEA
- Estándar de la National Marine Electronics
Asociation (http//www.nmea.org) - Organizado en frases (sentences, unos 50
tipos), por ejemplo - GPRMC,000141.993,V,36000.0000,N,72000.0000,E,0.00
0000,,101102,,3E - GPGGA,000142.993,0000.0000,N,00000.0000,E,0,00,50
.0,0.0,M,0.0,M,0.0,000072 - GPGLL,36000.0000,N,72000.0000,E,000142.993,V17
- GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.005
7Código NMEA
- A nosotros nos bastarán dos frases
- Sentencia mínima recomendada (GPRMC)
- Identificador de satélite (GPGSV)
GPRMC,04302.663,A,3939.7,N,10506.6,W,0.27,358.86,
200804,,1A
latitud
longitud
velocidad
inclinación
tiempo
estado
var magnetica
8MapPoint Mobile Locator
- En funcionamiento en USA con algunos proveedores
- Utiliza un sistema de buddies para preservar
privacidad - (aunque podría usarse en empresas)
- Ej En MSDN Where is Steve?
9Diseño de aplicación
- Nuestro intérprete GPS (o cualquier sist de
posición) actúa como un sistema de eventos - Es bueno usar MVC
- M Coordenadas
- V Mapa
- C entrada de usuario y eventos de localización
M
C
V
10MapPoint Web Service
- Servicio de GIS online
- 4 servicios Common, Find, Route y Render
- Servicio de pago pero con versión de evaluación
de 30 días
11Servicios del servicio
- Common Service
- Temas comunes a los demás
- Address Class contains the constituent parts of
an address street, city, other city, region,
country, and postal code. - Find Service
- Localiza por dirección, entidad, coordenadas y
POIs - Clase FindServiceSoap
- FindAddress()
- Clase FindAddressSpecification
12Servicios del servicio
- Route Service
- Rutas y representaciones (con o sin
restricciones) - Clase RouteServiceSoap
- Clase Route
- CalculateSimpleRoute()
13Servicios del servicio
- Render Service
- Clase RenderService
- Clase SoapMapSpecification
- GetMap()
- GetBestMapView() (escalado y posición)
- Clase MapOptions (formato, zoom, panning)
- Clase Pushpin (marcar posiciones, varios
disponibles personalizados) - Clase MapView
- Clase MapImage
14Cómo dibujamos el mapa
- MakeMap()
- Autenticar en RenderServiceSoap
- Crear Pushpin en nuestra dirección
- Crear MapSpecification con DataSource, Pushpin,
MapView y Format deseados - Llamar a GetMap(), recoger MapImage y
representar el bitmap del primero
15Ejemplo mapeado en Pocket PC
- Usamos búsqueda, rutado y render
- NOTA cambiar las ids por las de nuestra cuenta
de evaluación
16Señales inalámbricas
- Estado actual
- Windows CE cellcore radio
- Bluetooth radio stack
- En él próximo capítulo
- API de localización?
17Idea para CodeCamp
- Creación de geodatabases GSM o wireless
- Posicionar con GPS o a mano
- Servicio web para añadir puntos
- Triangular posiciones a la inversa
18Triangulación a la inversa
A
?
?
B
D
C
?
E
?
?
?
B
C
?
?
19Aplicación sensitiva al contexto
- Podemos obtener posición o reaccionar a cercanía
de otras señales - Nosotros usaremos detección Bluetooth
- (no es lo mejor, pero es popular a día de hoy)
20Ejemplo QTPTo v.1.0
- Detección de dispositivos
- Conexión inalámbrica
- (al estilo de cualquier aplicación con sockets)
21Ejemplo de uso
22Dudas?Comentarios?Caramelos (sugus)?
23Ricardo Varelaphobeo_at_ieee.org http//phobeo.com