首页 新闻 会员 周边

关于使用Microsoft.Phone.Controls.Maps制做离线地图的问题

-1
悬赏园豆:100 [待解决问题]

离线地图的数据可以通过这种发现获得:在maptilesource中的GetUri函数中把其中的Uri所指向的图片保存到本地。

离线工作时,从本地获得这些图片来生成地图。

但如果要自己编码把这些图片显示到地图控件中相当麻烦。但又不能通过uri的方式直接访问独立存储中的内容。
public class MyTileSource : TileSource
{
    public MyTileSource()
        : base("BingMapUriBase")
    {
        firstTile = true;
    }   

   public override Uri GetUri(int x, int y, int zoomLevel)
        {
return  new Uri(string.Format(this.UriFormat, new Random().Next() % 4, x, y, zoomLevel));
但我的问题是 如何返回独立存储中的数据呢?

 }
}


然后把这个类的一个实例添加到MapTileLayer中,再添加到Map中。

BingMap应该是通过这里的GetUri返回的Uri去获取该区域(x,y,zoomlevel)的地图图片。所以最简单的实现离线地图的方法就是生成一个指向本地文件的Uri,然后BingMap去自

动加载。

当然,也可以通过其他方式让BingMap去加载这些本地文件。不过我还没有找到能让BingMap加载本地文件的方法。特来求助。


如果使用arcgis提供的控件的话这个问题可以解决,arcgis里已经给留了扩展的地方。

具体例子请见 http://blog.newnaw.com/?p=993 (ArcGIS移动客户端中可以自动离线的底图图层 - 菩提老王的葡萄架).

arcgis的加载效率与效果个人认为不如 ms的好一些(虽然它功能上的强大的确可以横扫一切gis软件),所以目前还想用winPhone上的Maps控件来做。我的QQ191131029,欢迎与我交流。

小_火的主页 小_火 | 初学一级 | 园豆:52
提问于:2012-04-01 16:03
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册