最近做一個應用,其中用到地圖及相關功能,預設情況下沒有找第三方的地圖API,直接用了內建的Bing Map控制項,但是用了一段時間發現Bing Map對於中國使用者來說還是不行,很多地理位置沒有標明,而且不夠細緻,所以立刻想到的就是Google Map,於是找了一下相關資源,在Windows Phone應用中使用Google Map其實非常簡單,下面詳述一下步驟:
1. 有一個封裝好的DLL類庫:googlemaps.dll(點擊下載),這個是核心內容,在項目裡首先添加該DLL的引用:
2. 添加到XAML檔案中幾個引用並命名:
xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"
xmlns:GoogleTileSource="clr-namespace:googlemaps;assembly=googlemaps"
xmlns:MSPCMCore="clr-namespace:Microsoft.Phone.Controls.Maps.Core;assembly=Microsoft.Phone.Controls.Maps"
3. 調用Google Map,這裡要先簡單說一下,比起iOS開發來說WP開發實在太方便了,也多虧了這個DLL寫的好,只要將原有的Bing Map控制項中嵌套一點內容即可,添加標籤及擷取地理位置完全不影響,XAML內容如下:
<my:Map x:Name="mMain" Margin="0,0,0,0" CopyrightVisibility="Collapsed" LogoVisibility="Collapsed" ScaleVisibility="Visible" CredentialsProvider="ApBXPZf5IR94SLXE8nh5FYsb5WHKrH1XPY7428-EqQudseivcWhCROIJvGmtnkAV">
<my:MapTileLayer Name="street" Margin="0,0,0,32">
<my:MapTileLayer.TileSources>
<GoogleTileSource:GoogleTile TileTypes="Street">
</GoogleTileSource:GoogleTile>
</my:MapTileLayer.TileSources>
</my:MapTileLayer>
</my:Map>
就這麼簡單,具體內部實現我也沒研究,有興趣的大家可以找找這個DLL的源碼。
效果如下:
希望這個例子對大家有用!