id:kazuakix 先生がマップ関連でお困りだったようで
Windows Phone 8 の MapControl に Bing Mapsを載せる方法がわからんということなので、メモ程度に書いておこうかと思います。
WP8.x から Map コントロールがBingからHereにかわり、使い勝手がやや変わっていますが、実はずいぶん前、WP7.x時代に高橋忍さんが実践していたことがほぼそのまま使えるんです。
MSDN Blogs
とりあえずコード。
まず MainPage.xaml
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App7" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps" x:Class="App7.MainPage" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <Maps:MapControl x:Name="Map"/> </Grid> </Page>
残念ながらXAMLだけで完結できないので、仕方なくコードビハインドにも。
MainPage.xaml.cs
using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Maps; using Windows.UI.Xaml.Navigation; namespace App7 { public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; } protected override void OnNavigatedTo(NavigationEventArgs e) { // 20141226 追記 this.Map.Style = MapStyle.None; var mapTile = new MapTileSource { DataSource = new HttpMapTileDataSource("http://ecn.t1.tiles.virtualearth.net/tiles/r{quadkey}.png?g=1&mkt=ja-jp") }; this.Map.TileSources.Insert(0, mapTile); } } }
これで地図はこうなります
Bing Mapsキター でも元あったHere Mapsの情報は残ったままですね…
これを消す方法は見当たらなかったので、誰か教えてください。
ちなみに、気合い入れればWP7.x時代のBing Map Controlを、WP8.x Silverlight なら使うこともできます。WinRTだとたぶんダメですが…
2014年12月26日追記
Here Mapsの地図が載っかったままだったのは id:kazuakix さんが解決法を教えてくれました。
MapControl.Style プロパティを MapStyle.None にすればよかったみたいです。
上記コードに追記しておきました。