Developer's Diary

1 septiembre, 2010

Bing Maps Api – Pushpins

Durante estas semanas he continuado mi trabajo, con el web service de bing maps que ya comentamos hace unos meses. En este ocasión vamos a centrarnos de la extracción de un mapa con las coordenadas que nosotros deseemos, pero con la particularidad de que vamos a hacerlo incluyendo pushpins, es decir, marcadores dentro del mapa.

El aliciente que tenemos a la hora de incluir también marcadores, es que no deberemos introducir en la solicitud de mapa un centro para que aparezca el mismo. Esta opción nos permite que el servicio web nos devuelva un mapa mucho más exacto que cuando lo obteníamos mediante la localización de centro. Ya que podemos obtener un mapa con la solicitud de dos de estos marcadores, obteniendo un mapa idéntico a la solicitud de esas dos coordenadas.

Respecto a Bing Maps y su API de Imagery Service, indicar que se encuentra limitada en un detalle, solo podemos generar mapas de un tamaño máximo, este tamaño está comprendido entre 900×834. Esto nos limita en cierta parte ya que es el máximo del mapa, pero hay que tener por cuenta, que con un poco de imaginación, podemos saltarnos esa limitación. Solo tenemos que hacer multiples peticiones a la API con cada uno de los fragmentos del mapa, para posteriormente unirlos y generar una imagen que tenga un tamaño mayor a la permitida.

Tras un poco de introducción vamos a pasar a indicar un poco, como podemos incluir pushpins dentro de nuestro proyecto.

Vamos a incluir la api de imageria de Bing maps y vamos a declararar todos los objetos que necesitamos para poder crear nuestro mapa. Vuelvo a repetir, si quereis refrescar vuestra memoria de como se hacía. Solo teneís que acceder al otro post en el que hablabamos un poco de todo el web service, desde aquí.

Tras tener todas las clases, cuando vayamos a construir la propiedad de options dentro de nuestro objeto de la clase MapUriRequest, debemos contruir la opción de Pusphins dentro de la propiedad options para que nos acepte cada pushpins. Además la clase MapUriRequest, no acepta un pushpin, acepta un array de pushpins de tal manera que deberemos construir con todos nuestros marcadores un array para posteriormente pasarlo a la clase. Para que todo quede más claro vamos a mostrar un ejemplo de código. Vamos a construir un método, que nos permita agregar un pushpin a nuestro array de pushpins y posteriormente los agregaremos todos a nuestro options maps.

private List<Pushpin> listapush = new List<Pushpin>();

public void AddPushpin(double lat, double lon)
{
Pushpin nuevopush = new Pushpin();
nuevopush.Location = new Location();

nuevopush.Location.Latitude = lat;
nuevopush.Location.Longitude = lon;

listapush.Add(nuevopush);

}

public void AgregarPush()
{
Pushpin[] marcadores = new Pushpin[listapush.Count];

int i = 0 ;
foreach (Pushpin marca in listapush)
{
marcadores[i] = marca;
i++;
}

Map.Pushpins = marcadores;
}

Mediante este código, teniendo en cuenta que map es la clase MapUriRequest, podemos crear una lista de pushpins que se agregarán antes de solicitar el mapa. Dentro de los pushpins, podemos además de modificar los valores de latitud y longitud, la altitud, introducirle una etiqueta mediante la propiedad label o cambiar el estilo del icono, está última propiedad acepta una cadena de caracteres pero permite diferentes opciones que podeis ver en la siguiente lista.

Hasta aquí todo, mediante este método podreis introducir marcadores a nuestros mapas, que podremos incluir en cualquier proyecto en el que podamos introducir un servicio web, ya sea móvil, winforms o web.

Saludos!

Anuncios

3 comentarios »

  1. no hay forma de colocar un icono predeterminado en el mapa ?

    Comentario por dan — 29 agosto, 2012 @ 12:53 AM

  2. o mejor dicho un icono personalizado y no usar ninguno de la lista ?

    Comentario por dan — 29 agosto, 2012 @ 12:54 AM

    • Si que existe una manera. Tienes que cargar o construir tu pinup. De todas formas dejame que le eche un vistazo y pueda ayudarte mejor que hace mucho tiempo que no realizo nada con la API de Bing Maps

      Comentario por 3nk1 — 4 octubre, 2012 @ 8:53 PM


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: