2012-08-04 68 views
1

我正在使用顯示SF MUNI停止和時間的Windows Phone 7應用程序。我已經發布了它,但想要添加地圖功能。所以,我添加了一張地圖,其中顯示了特定用戶選擇路線的停靠點(入站或出站)。下面是我對的代碼,它的工作原理,並顯示各站的路線:從Windows Phone 7地圖上獲取GeoCoordinates地圖

//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]); 

所以,上面的代碼不到位圖釘在每個正確會有地理座標。我完全難以忍受的是,如果我按下圖釘,是否會得到該圖釘的地理座標?換句話說,當我按下圖釘時,我想要捕捉pin [i] .Location(這是一個GeoCoordinate)在某種變量中。

謝謝,我希望這可以解釋我的問題。

阿曼達

+0

而應該使用點擊事件(和離開頁面時一定要刪除它!),你可以把在引腳[i] .Tag中引用GeoCoordinate。您只需要將其從發件人中壓倒出來,即pressed CoCo =(GeoCoordinate)((PushPin)sender).Tag; – 2012-08-04 22:13:54

+0

謝謝,我懂了! – 2012-08-04 22:44:53

+0

我如何表明問題得到解決? – 2012-08-04 22:45:37

回答

0

您應該使用的,而不是MouseLeftButtonUpTap事件。 (並確保在離開頁面時將其刪除!),並且您可以在pin[i].Tag中提及GeoCoordinate

Tag是摸彩袋引用任何你想要的 - 在你的情況,你想提出一個GeoCoordinate,但你可以把任何你想要的 - 它存在於所有UIElements

在你Tap事件監聽器,你可以得到一個關於你GeoCoordinate,如:

pressedCoord = (GeoCoordinate)((PushPin)sender).Tag;