Servicio de localización El servicio de localización en WP7 obtiene los datos  de posicionamiento de:   GPS   WIFI   R...
Arquitectura Tres capas  Hardware (GPS, WIFI, Radio GSM)    Distintos niveles de precisión y consumo energético    No ...
Buenas prácticas Balance entre la exactitud de los datos de localización  y el consumo de batería Relación inversa entre...
Acceso al servicio de localización GeoCoordinateWatcher es la clase principal de  System.Device.Location Métodos  Start...
Servicio de localización Estados del servicio de localización     Recogidos en la enumeración GeoPositionStatus       D...
Servicio de localización Nivel de exactitud   El servicio de localización utiliza varias fuentes para    obtener los dat...
Utilizar el servicio de localización1. Agregar referencia:      System.Device.dll                        Declarar GeoCoord...
Aplicación con localización opcionalprivate void btnIniciar_Click(object sender, RoutedEventArgs e)             watcher.St...
Control BingMaps1. Crear una cuenta de desarrollador  https://www.bingmapsportal.com/2. Creamos una nueva Key  Nombre apli...
Control BingMaps Cambiar el tipo de vista:     miMapa.Mode = new RoadMode();     miMapa.Mode = new AerialMode(); Cambiar...
Control BingMaps
Recursos Centro de desarrollo de WP7 en MSDNhttp://msdn.microsoft.com/es-es/windowsphone/default.aspx AppHubhttp://creat...
Modulo19 Localización
Modulo19 Localización
Upcoming SlideShare
Loading in...5
×

Modulo19 Localización

2,102

Published on

Vamos a ver cómo crear aplicaciones que utilicen los servicios de localización de Bing y la API dedicada a geo localizar nuestro dispositivo, a través de la cual crearemos una aplicación que pueda localizarnos en un mapa.
Además trabajaremos con el emulador de localización de las herramientas de Windows Phone.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,102
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Modulo19 Localización

  1. 1. Servicio de localización El servicio de localización en WP7 obtiene los datos de posicionamiento de:  GPS  WIFI  Radio GSM El sistema busca el equilibrio entre consumo de batería y rendimiento, en función de las necesidades de la aplicación Interfaz de código orientado a eventos administrados
  2. 2. Arquitectura Tres capas  Hardware (GPS, WIFI, Radio GSM)  Distintos niveles de precisión y consumo energético  No accesible para el desarrollador  Código nativo  Se comunica directamente con la capa Hardware  Decide qué fuentes utilizar basándose en disponibilidad de datos y los requisitos de rendimiento de la aplicación  También se comunica a través de Internet con un servicio web de Microsoft  Interfaz manejada  DLL incluida con las Windows Phone Developer Tools (System.Device.dll)  Espacio de nombres System.Device.Location  Permite iniciar y parar el servicio, configurar el nivel de precisión y recibir los datos de la capa nativa*
  3. 3. Buenas prácticas Balance entre la exactitud de los datos de localización y el consumo de batería Relación inversa entre exactitud y consumo de batería Hardware que proporciona datos menos precisos consume menos (WiFi y radiotelefonía) GPS proporciona mayor exactitud a costa de mayor consumo Reglas básicas  Utilizar menor precisión siempre que sea posible  Activar el servicio de localización sólo cuando sea necesario y detenerlo después
  4. 4. Acceso al servicio de localización GeoCoordinateWatcher es la clase principal de System.Device.Location Métodos  Start()  inicia la adquisición de datos del servicio de localización (asíncrono)  TryStart()  intenta iniciar el servicio durante un intervalo de tiempo determinado (síncrono)  Stop()  detiene la adquisición de datos Propiedades  MovementThreshold  umbral del cambio de posición que debe tener lugar para que se lance el evento PositionChanged (valor recomendado: 20 metros) Eventos  StatusChanged  cambio de estado  PositionChanged  cambio de posición
  5. 5. Servicio de localización Estados del servicio de localización  Recogidos en la enumeración GeoPositionStatus  Disabled  servicio deshabilitado por el usuario o no soportado por el dispositivo  Initializing  el servicio se está inicializando  NoData  servicio en funcionamiento pero no recibe datos de localización  Ready  servicio en ejecución y recibiendo datos
  6. 6. Servicio de localización Nivel de exactitud  El servicio de localización utiliza varias fuentes para obtener los datos  Es posible que en determinados momentos algunas de las fuentes no estén disponibles  La capa de código nativo seleccionará la fuente más adecuada en función de los datos disponibles  Nuestra aplicación únicamente deberá seleccionar el nivel de precisión de los datos de localización GeoPositionAccuracy.High GeoPositionAccuracy.Low GeocordinateWatcher watcher = new GeocordinateWatcher(GeoPositionAccuracy.Low);
  7. 7. Utilizar el servicio de localización1. Agregar referencia: System.Device.dll Declarar GeoCoordinateWatcher de forma global para que esté en memoria todo el2. Directiva Using: tiempo que se muestre la página using System.Device.Location3. Añadir objeto GeoCoordinateWatcher public partial class MainPage : PhoneApplicationPage { GeoCoordinateWatcher watcher; }
  8. 8. Aplicación con localización opcionalprivate void btnIniciar_Click(object sender, RoutedEventArgs e) watcher.Stop();{ } if (watcher == null) void watcher_StatusChanged(object sender, { GeoPositionStatusChangedEventArgs e) watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); { watcher.MovementThreshold = 20; switch (e.Status) watcher.StatusChanged += new { EventHandler<GeoPositionStatusChangedEventArgs>(watcher_Statu case GeoPositionStatus.Disabled: sChanged); if (watcher.Permission == GeoPositionPermission.Denied) watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watc txtEstado.Text = “Debe habilitar la localización” her_PositionChanged); else } txtEstado.Text = “Servicio no disponible."; watcher.Start(); break;} case GeoPositionStatus.Initializing: btnIniciar.IsEnabled = false;void watcher_PositionChanged(object sender, break; GeoPositionChangedEventArgs<GeoCoordinate> e) case GeoPositionStatus.NoData:{ txtEstado.Text = “Sin señal"; txtLatitud.Text = e.Position.Location.Latitude.ToString("0.000"); btnPararServicioLocalizacion.IsEnabled = true; txtLongitud.Text = break; e.Position.Location.Longitude.ToString("0.000"); case GeoPositionStatus.Ready:} txtEstado.Text = “Localización preparada"; btnPararServicioLocalizacion.IsEnabled = true;private void btnPararServicioLocalizacion_Click(object sender, break; RoutedEventArgs e) }{ }
  9. 9. Control BingMaps1. Crear una cuenta de desarrollador https://www.bingmapsportal.com/2. Creamos una nueva Key Nombre aplicación, URL, tipo de aplicación…..3. Agregamos la referencia xmlns:map="clr-namespace:Microsoft.Phone.Controls. Maps;assembly=Microsoft.Phone.Controls.Maps“4. Insertamos el control <map:Map Name="miMapa" CredentialsProvider="AwQh_41-o1y- v1GpwaI3IG7ryv7eAlbWjsZFxJbYJVr_7GzHg2Rze"></map:Map>
  10. 10. Control BingMaps Cambiar el tipo de vista: miMapa.Mode = new RoadMode(); miMapa.Mode = new AerialMode(); Cambiar el zoom: if (miMapa.ZoomLevel < 20) miMapa.ZoomLevel++; if (miMapa.ZoomLevel > 1) miMapa.ZoomLevel--; Añadir Pushpin: Pushpin pin = new Pushpin(); pin.Content = "Aquí"; pin.Background = new SolidColorBrush(Colors.Orange); pin.Location = coord; miMapa.SetView(coord, 14);//indico las coordenadas y el zoom miMapa.Children.Add(pin);
  11. 11. Control BingMaps
  12. 12. Recursos Centro de desarrollo de WP7 en MSDNhttp://msdn.microsoft.com/es-es/windowsphone/default.aspx AppHubhttp://create.msdn.com/ Windows Phone Developer Bloghttp://windowsteamblog.com/windows_phone/b/wpdev MobileNUGhttp://www.mobilenug.es Forumshttp://forums.create.msdn.com/forums/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×