让GeoCoordinates在Windows Phone 7地图上按下pin

时间:2012-08-04 21:33:37

标签: c# silverlight windows-phone-7 mouseevent bing-maps

我正在开发一个显示SF MUNI停止和时间的Windows Phone 7应用程序。我已经发布了它,但想要添加地图功能。因此,我添加了一个地图,在该地图上显示特定用户选择路线的停靠点(入站或出站)。这是我的代码,它可以在路线上工作并显示每个停靠点:

//coords is an array of GeoCoordinates for each stop
//limit is the number of stops
GeoCoordinate [] coords=new GeoCoordinate[limit];

//pin is an array of Pushpins for each stop to add to the map
Pushpin[] pin = new Pushpin[limit];

for (int i = 0; i < limit; i++)
{
   pin[i] = new Pushpin();
}


for (int i = 0; i < limit; i++)
{
  coords[i] = new GeoCoordinate(Convert.ToDouble(latitude[inb[i]]), Convert.ToDouble(longitude[inb[i]]));//populate coords array
   pin[i].Location = coords[i];//assign coords to pushpin location for each stop
}


//wires up event handler for clicking on each stop
for (int i = 0; i < limit; i++)
{
  pin[i].MouseLeftButtonUp += new MouseButtonEventHandler(pin_MouseLeftButtonUp);
}  



//Adds a pin at each stop's geocoords for each station
for (int i = 0; i < limit; i++)
  map1.Children.Add(pin[i]);

因此,上面的代码确实正确地在每个地理坐标上放置了图钉。我完全难以理解的是,如果我按下图钉,我是否会为该图钉获得地理坐标?换句话说,当我按下图钉时,我想在某个sorta变量中捕获pin [i] .Location(这是一个GeoCoordinate)。

谢谢,我希望这能解释我的问题。

阿曼达

1 个答案:

答案 0 :(得分:0)

您应该使用Tap事件而不是MouseLeftButtonUp。 (并确保在离开页面时将其删除!)并且您可以在GeoCoordinate中引用pin[i].Tag

Tag是一个抓包引用任何你想要的东西 - 在你的情况下,你想放一个GeoCoordinate,但你可以放任何你想要的东西 - 它存在于所有{{} 1}}。

UIElements事件监听器中,您可以获得对Tap的引用,如:

GeoCoordinate