有什么方法可以禁止地名、道路名称等显示在 Microsoft.Phone.Maps.Controls.Map 控件上?
我在 Bing 底图的顶部显示了一个自定义 TileSource,但标签仍显示在自定义图块源的顶部。
理想情况下,我想关闭 Bing 基本地图并将其替换为我自己的,但我的印象是使用此控件是不可能的。所以我正在使用下一个最好的方法。
提前感谢您的任何想法!
有什么方法可以禁止地名、道路名称等显示在 Microsoft.Phone.Maps.Controls.Map 控件上?
我在 Bing 底图的顶部显示了一个自定义 TileSource,但标签仍显示在自定义图块源的顶部。
理想情况下,我想关闭 Bing 基本地图并将其替换为我自己的,但我的印象是使用此控件是不可能的。所以我正在使用下一个最好的方法。
提前感谢您的任何想法!
即使它被标记为折旧,我还是选择了 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;
}