文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>BingMaps Silverlight 在Out Of Browser中的使用

BingMaps Silverlight 在Out Of Browser中的使用

时间:2011-02-19  来源:杨中科

编写自己的Mode和TileSource

    public class OOBChineseRoadModeTileSource : LocationRectTileSource
    {
        public override Uri GetUri(int x, int y, int zoomLevel)
        {
            //调用LocationRectTileSource的GetUri返回的是null,估计这个就是OOB下显示不出地图的原因,因此自己计算Uri返回
            string quadkey = new QuadKey(x, y, zoomLevel).Key;
            Uri uri = new Uri("http://r3.tiles.ditu.live.com/tiles/r" + quadkey + ".png?g=47");//使用中国Bing地图
            return uri;
        }
    }

    public class OOBRoadMode : RoadMode
    {
        public OOBRoadMode()
            : base()
        {
            var tileLayer = (MapTileLayer)this.Content;
            var tileSources = tileLayer.TileSources;
            tileSources.Clear();
            tileSources.Add(new OOBChineseRoadModeTileSource());
        }
    }

然后在初始化地图的时候是用我们的OOBRoadMode

map.Mode = new OOBRoadMode();

就可以了。

我这里使用的是BingMaps的中文TileServer,如果使用英文TileServer的话可以使用下面的TileSource

    public class OOBRoadModeTileSource : LocationRectTileSource
    {
        public override Uri GetUri(int x, int y, int zoomLevel)
        {
            //调用LocationRectTileSource的GetUri返回的是null,估计这个就是OOB下显示不出地图的原因,因此自己计算Uri返回
            string quadkey = new QuadKey(x, y, zoomLevel).Key;
            Uri uri = new Uri("http://ecn.t1.tiles.virtualearth.net/tiles/r1.png?g=346&token="+quadkey);
            return uri;
        }
    }

这样能显示出来了,但是在地图中间总是有一个白条,这个白条不是TileServer返回的,应该是BMSL弹出的一个提示消息,还没找到办法去掉。找到了会再写blog。

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载