0

Microsoft.Phone.Maps.Controls.Map コントロールに地名や道路名などが表示されないようにする方法はありますか?

Bing ベースマップの上にカスタム TileSource を表示していますが、カスタム タイル ソースの上にラベルがまだ表示されています。

理想的には、Bing ベース マップをオフにして自分のものに置き換えたいのですが、このコントロールでは不可能な印象を受けています。だから私は次善のアプローチを使用しています。

アイデアをお寄せいただきありがとうございます。

4

1 に答える 1

0

減価償却済みとしてマークされていますが、必要な機能を備えているため、WP7 Microsoft.Phone.Controls.Maps.Map を使用しました。コントロールと機能を UserControl 内にカプセル化したので、新しい Microsoft.Phone.Maps.Controls.Map コントロールが機能的に追いついたら、簡単に交換できます。

/// <summary>
/// Sets TileSource as the exclusive MapTileLayer
/// </summary>
private void RefreshTileSource()
{
    for (var i = Map.Children.Count - 1; i >= 0; i--)
    {
        MapTileLayer tileLayer = Map.Children[i] as MapTileLayer;
        if (tileLayer != null)
        {
            Map.Children.RemoveAt(i);
        }
    }

    // Tiles
    MapTileLayer layer = new MapTileLayer();
    layer.TileSources.Add(ViewModel.TileSource);
    Map.Children.Add(layer);

    // Constrain map to area with custom tiles
    MapMode mode = new MapMode();
    mode.SetZoomRange(ViewModel.TileSource.ZoomRange);
    if (ViewModel.MapBounds.North > ViewModel.MapBounds.South)
        mode.LatitudeRange = new Range<double>(ViewModel.MapBounds.South, ViewModel.MapBounds.North);
    else
        mode.LatitudeRange = new Range<double>(ViewModel.MapBounds.North, ViewModel.MapBounds.South);
    if (ViewModel.MapBounds.West > ViewModel.MapBounds.East)
        mode.LongitudeRange = new Range<double>(ViewModel.MapBounds.East, ViewModel.MapBounds.West);
    else
        mode.LongitudeRange = new Range<double>(ViewModel.MapBounds.West, ViewModel.MapBounds.East);
    Map.Mode = mode;
}
于 2013-06-03T00:00:13.683 に答える