1.通过Map的Mode属性可以修改地图的显示模式,可以设置为Microsoft.Phone.Controls.Maps命名空间下的AerialMode来显示卫星图,RoadMode显示路线图。虽然AerialMode、 RoadMode 都是英文地名,但是我们可以通过自定义Mode来加载BingMaps的中文TileServer来显示中文地名。
2.英文RoadMode的TileServer地址为http://t0.tiles.virtualearth.net/tiles/r{QuadKey}.png?g=213,另外中文RoadMode的TileServer为http://r3.tiles.ditu.live.com/tiles/r{QuadKey}.png?g=47。
3.在自己的ChineseMode,ChineseMode中添加自定义的ChineseTileSource层,ChineseTileSource重写父类的GetUri返回自己的Tile地址。最后用自定义Mode来加载地图。
public partial class MainPage : PhoneApplicationPage { // 构造函数 public MainPage() { InitializeComponent(); map1.Mode = new ChineseMode(); } public class ChineseMode : MercatorMode { private readonly MapTileLayer tileLayer; public ChineseMode() : base() { tileLayer = new MapTileLayer(); tileLayer.TileSources.Add(new ChineseTileSource()); } public override System.Windows.UIElement Content { get { return tileLayer; } } } public class ChineseTileSource : LocationRectTileSource { public override Uri GetUri(int x, int y, int zoomLevel) { string quadkey = new QuadKey(x, y, zoomLevel).Key; string uri = "http://r3.tiles.ditu.live.com/tiles/r" + quadkey + ".png?g=47"; return new Uri(uri); } } }
转自:
http://www.cnblogs.com/crazypig/archive/2012/03/17/2403977.html