2013-05-21 112 views
0

有没有什么方法可以禁用地名,道路名称等,以免在Microsoft.Phone.Maps.Controls.Map控件上显示?在Windows Phone 8中禁用标签地图控件

我在Bing底图上方显示了一个自定义TileSource,但标签仍然在自定义切片源的顶部显示。

理想情况下,我想关闭Bing基本地图并将其替换为我自己的地图,但在此控件无法实现的情况下。所以我正在使用下一个最好的方法。

在此先感谢您的任何想法!

回答

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; 
}