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