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

 

相关文章:

  • 2022-01-12
  • 2021-11-20
  • 2021-07-18
  • 2022-12-23
  • 2021-11-08
  • 2021-05-13
  • 2021-09-30
猜你喜欢
  • 2021-10-15
  • 2022-12-23
  • 2021-09-28
  • 2021-09-29
  • 2022-01-14
  • 2022-12-23
  • 2022-01-23
相关资源
相似解决方案