本文主要示範如何使用地圖經緯度以及顯示地標和行人街道,並透過捲軸控制地圖縮放比例的功能。
前言
本文主要示範如何使用地圖經緯度以及顯示地標和行人街道,並透過捲軸控制地圖縮放比例的功能。
實作
step1 建立專案。
step2 在 WMAppManifest.xml 的地方用滑鼠點兩下。
step3 進去WMAppManifest.xml 後,先點選 [功能],再勾選 [ID_CAP_MAP] 來開啟地圖功能。
step4 設計畫面
產生 xaml 的程式如下:
在 phone:PhoneApplicationPage 加入下方程式碼引用 Microsoft.Phone.Maps,才能使用地圖控制項。
xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="10,10,14,-10">
<TextBlock HorizontalAlignment="Left" Margin="10,29,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="25" Height="53" Width="120" Text="緯度/經度"/>
<Button Content="Button" HorizontalAlignment="Left" Height="0" Margin="88,53,0,0" VerticalAlignment="Top" Width="12"/>
<TextBox x:Name="tba" HorizontalAlignment="Left" Height="72" Margin="130,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="96" RenderTransformOrigin="0.461,0.539"/>
<TextBox x:Name="tbb" HorizontalAlignment="Left" Height="72" Margin="231,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="96"/>
<maps:Map x:Name="map" HorizontalAlignment="Left" Margin="10,154,0,0" VerticalAlignment="Top" Height="443" Width="436" ZoomLevel="18"
LandmarksEnabled="True"
PedestrianFeaturesEnabled="True"/>
<!-- LandmarksEnabled顯示地標 , PedestrianFeaturesEnabled顯示行人街道-->
<Button x:Name="btn" Content="確定" HorizontalAlignment="Left" Margin="327,10,0,0" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="10,87,0,0" TextWrapping="Wrap" Text="地圖縮放" VerticalAlignment="Top" Width="109" Height="46" FontSize="25"/>
<Slider x:Name="sld" HorizontalAlignment="Left" Margin="128,72,0,0" VerticalAlignment="Top" Width="280" Height="85" FontSize="15" Value="10" Minimum="1" Maximum="20"/>
</Grid>
step5 MainPage.xaml.cs 程式碼中的事件處理函式如下:
public partial class MainPage : PhoneApplicationPage
{
// 建構函式
public MainPage()
{
InitializeComponent();
sld.ValueChanged +=
new RoutedPropertyChangedEventHandler (sld_ValueChanged);
// 將 ApplicationBar 當地語系化的程式碼範例
//BuildLocalizedApplicationBar();
}
private void sld_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
{
map.ZoomLevel = sld.Value;
}
private void btn_Click(object sender, RoutedEventArgs e)
{
Double Latitude, Longitude; //Latitude緯度、Longitude經度
Latitude = Double.Parse(tba.Text);
Longitude = Double.Parse(tbb.Text);
map.Center = new GeoCoordinate(Latitude, Longitude);
map.ZoomLevel = 10; //地圖縮放比例
}
結果
此應用程式包含使用地圖經緯度以及顯示地標和行人街道,並透過捲軸控制地圖縮放比例的功能。
範例下載