Bingmap for WPF control 没有直接提供中国地图,但是通过必应地图(中国)知道,时存在必应中国地图,经过一番百度后,找到解决办法。通过添加新的地图图层来解决问题,用新的图层覆盖原有的地图,新图层中显示中国地图。不说了,代码解决大部分问题(代码如下):
//其中map为必应地图for WPF 控件
MapTileLayer tileLayer;
private void AddTileOverlay()
{
// Create a new map layer to add the tile overlay to.
tileLayer = new MapTileLayer();
// The source of the overlay.
TileSource tileSource = new TileSource();
tileSource.UriFormat = "http://r2.tiles.ditu.live.com/tiles/r{quadkey}.png?g=41";
// Add the tile overlay to the map layer
tileLayer.TileSource = tileSource;
// Add the map layer to the map
if (!map.Children.Contains(tileLayer))
{
map.Children.Add(tileLayer);
}
tileLayer.Opacity = tileOpacity;
}
以下是控制地图的增加、删除代码:
private void btnAddTileLayer_Click(object sender, RoutedEventArgs e)
{
// Add the tile overlay on the map, if it doesn't already exist.
if (tileLayer != null)
{
if (!map.Children.Contains(tileLayer))
{
map.Children.Add(tileLayer);
}
}
else
{
AddTileOverlay();
}
}
private void btnRemoveTileLayer_Click(object sender, RoutedEventArgs e)
{
// Removes the tile overlay if it has been added to the map.
if (map.Children.Contains(tileLayer))
{
map.Children.Remove(tileLayer);
}
}