您的位置:首页 > 其它

Windows Phone 加载BingMap中文地图

2013-06-04 14:01 471 查看

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

转自:

https://www.geek-share.com/detail/2542987100.html

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: