kazuakix の日記

Windows Phone とか好きです

Windows Phone で MapControl を使う (その 4)

MapControl の地図がアレ的な記事を書いたところ、 id:ChiiAyano さんから素敵な情報を頂きました。


というか、これ Windows Phone 7 の頃とほぼ同じなんですね。Silverlight から WinRT になったので できないものと決めつけてしまっていました。

Bing Maps を重ねて表示する

というわけで頂いた情報の通りに TileSources を設定すると、

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    var mapTile = new MapTileSource
    {
        DataSource =
            new HttpMapTileDataSource("http://ecn.t1.tiles.virtualearth.net/tiles/r{quadkey}.png?g=1&mkt=ja-jp")
    };
    Map.TileSources.Insert(0,mapTile);
}

この通り、まともな地図が表示されました!
もう白地図じゃないですね!!

f:id:kazuakix:20141225210201j:plain,w240

オリジナルの地図を消す

ただ、このままだとオリジナルの地図と重なって表示されるようです。

ある程度拡大すると Bing Maps と Here Maps の表示が入り乱れて見にくいですね。

f:id:kazuakix:20141225212520j:plain,w240

でも元あった Here Maps の情報は残ったままですね…
これを消す方法は見当たらなかったので、誰か教えてください。

との事でしたので ちょっと調べてみたところ、MapControl の Stype プロパティに MapStyle.None を指定するだけでいいみたいです。

さっきのコードに 1 行足してみます。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    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")
    };
    Map.TileSources.Insert(0,mapTile);
}

この通り、Bing Maps だけの表示になりました。

f:id:kazuakix:20141225213531j:plain,w240
 
これで MSCC アプリが半歩前進しそうです。id:ChiiAyano さんありがとうございました!