[Windows Phone] 實作不同的地圖顯示模式

本文章主要示範如何讓地圖有不同的模式產生,例如平面圖、地形圖、鳥瞰圖、鳥瞰圖含街道等。

前言

本文章主要示範如何讓地圖有不同的模式產生,例如平面圖、地形圖、鳥瞰圖、鳥瞰圖含街道等。

這部分主要是調整 Map.CartographicMode 屬性,其中 MapCartographicMode 列舉包含:

  • Road:Specifies the road mode of the map control.
  • Aerial:Specifies the aerial mode of the map control.
  • Hybrid:Specifies an aerial mode with overlaid roads and labels.
  • Terrain:Specifies the terrain mode of the map control.

 

實作

step1 建立專案。

map

 

step2 在 WMAppManifest.xml 的地方用滑鼠點兩下進行編輯。

1

 

step4 進去 WMAppManifest.xml 後,先點選 [功能],再勾選 [ID_CAP_MAP] 來開啟地圖功能。

2

 

step5 MainPage.xaml 畫面設計。

Button1 ---->Name=btn1,Content=平面圖

Button2 ---->Name=btn2,Content=地形圖

Button3 ---->Name=btn3,Content=鳥瞰圖

Button4 ---->Name=btn4,Content=鳥瞰圖含街道

map ------>Name=map,Center="24.15,120.43"為台中市經緯度,ZoomLevel="10"為縮放比例

 

產生 xaml 程式碼:

 xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="10,0,14,0">
            <Button x:Name="btn1" Content="平面圖" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Click="btn1_Click"/>
            <Button x:Name="btn2" Content="地形圖" HorizontalAlignment="Left" Margin="150,10,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.051,0.477" Click="btn2_Click"/>
            <Button x:Name="btn3" Content="鳥瞰圖" HorizontalAlignment="Left" Margin="297,10,0,0" VerticalAlignment="Top" Click="btn3_Click"/>
            <Button x:Name="btn4" Content="鳥瞰圖含街道" HorizontalAlignment="Left" Margin="86,82,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.923,0.746" Click="btn4_Click" Width="287"/>

            <maps:Map x:Name="map" Center=" 24.15,120.43"  ZoomLevel=" 10" HorizontalAlignment="Left" Margin="10,172,0,0" VerticalAlignment="Top" Height="423" Width="436"/>

        </Grid>

 

step5  MainPage.xaml.cs 程式碼中的事件處理函式如下:

 private void btn1_Click(object sender, RoutedEventArgs e)
        {
            map.CartographicMode = MapCartographicMode.Road;//Road為顯示平面圖
        }

        private void btn2_Click(object sender, RoutedEventArgs e)
        {
            map.CartographicMode = MapCartographicMode.Terrain; //Terrain為顯示地形圖
        }

        private void btn3_Click(object sender, RoutedEventArgs e)
        {
            map.CartographicMode = MapCartographicMode.Aerial; //Aerial為顯示鳥瞰圖
        }

        private void btn4_Click(object sender, RoutedEventArgs e)
        {
            map.CartographicMode = MapCartographicMode.Hybrid; //Hybrid為顯示鳥瞰圖含有街道
        }

結果

平面圖                                                                                                                         地形圖

           

鳥瞰圖                                                                                                                        鳥瞰圖含街道

           

 

範例下載

map 地圖模式.rar

 

相關參考與引用

Map.CartographicMode 屬性