domingo, 18 de marzo de 2012

Mostrando una lista de coordenadas en un Mapa de Bing en Windows Phone

Continuando con nuestra serie de post sobre Mapas de Bing, vamos a continuar personalizando los pushpin o marcadores de nuestra aplicación Windows Phone.

Para esto vamos a graficar una lista de puntos fijos (en el post) pero que bien pudimos haber obtenido a través de un servicio que haga parte del back end de nuestra aplicación, y para obtener esos puntos vamos a usar el emulador


Seleccionamos la opción guardar para almacenar las coordenadas en nuestro disco.


En el archivo de coordenadas veremos algo como esto.

Si recuerdan nuestro objetivo es que los puntos alrededor queden con un estilo diferente a nuestra posición actual, por eso debemos repetir los pasos del post donde aprendemos a personalizar los pushpin antes de empezar a crear nuestro demo, en el caso de este pushpin que no tiene texto al interior, pueden colocar como contenido en la plantilla simplemente una imagen, pero no olviden colocar las dimensiones del pushpin.


Bien, ahora al nivel de la clase de nuestro ejercicio anterior, vamos a declarar para propósitos de este ejercicio un diccionario.

Luego en el constructor agregamos datos a la lista y vamos a graficarlos cuando la pantalla esté cargada, por lo que debemos suscribirnos al evento Loaded de esta.

Y lo implementamos para que muestre los puntos de la lista, usando nuestra plantilla nueva para el pushpin y estamos usando la propiedad Content para almacenar la clave, ya que este ejemplo no usamos el Content para mostrar algo como si lo hicimos en el  ejercicio anterior .

        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            foreach (int key in this.placesList.Keys)
            {
                Pushpin newLocation = new Pushpin();
                newLocation.Template = (ControlTemplate)(App.Current.Resources["PushpinSuggested"]);
                newLocation.Content = key;
                newLocation.Location = this.placesList[key];
                map1.Children.Add(newLocation);
            }

            watcher.Start();
        } 

Como pueden ver además cambié el momento del inicio del Servicio de Localización para este momento cuando ya esten los lugares que queremos marcar, puestos en el mapa. De esta forma vemos los puntos en nuestro mapa.


Espero que sigan completando este demo de Mapas de Bing y aprendiendo, hasta la próxima.

Sorey
Publicar un comentario en la entrada