嗨WP7移动热情的开发者!
我正在尝试使用Windows Phone控件中默认提供的Bing Map控件 . 具体来说,我正在尝试使用自定义TileSource来提供定制的平铺 Map ,该 Map 将作为文件夹(内容文件)或隔离存储存储在项目中 .
向下我展示了我尝试使用ZXY存储格式的“map”文件夹中存储的 Map 图块/图像作为内容文件的自定义类 .
public class CustomTileSource : Microsoft.Phone.Controls.Maps.TileSource
{
private string uriFormat = @"map/{0}/{1}/{2}.png";
public string UriFormat
{
get { return uriFormat; }
set { uriFormat = value; }
}
public override Uri GetUri(int x, int y, int zoomLevel)
{
var url = string.Format(UriFormat, zoomLevel, x, y);
return new Uri(url, UriKind.Relative);
}
}
尝试使用它不起作用,虽然没有引发错误,但未显示自定义切片 . 有没有人试图用这种方式使用Windows手机 Map 控件?如果那不是正确的方法呢?任何解决方法?
先感谢您!
克劳迪乌
6 回答
您是否已将图像上的构建操作设置为
Content
?例外情况是:
如何使用UriKind.Absolute从IsolatedStorage,Ressource或MediaLibrary获取图像我还没有找到...也许你知道吗?
这似乎是一个非常常见问题 - Map Tile Caching for Offline Viewing - 遗憾的是没有FAQ解决方案:/
您是否尝试使用此问题中描述的应用ID构建绝对文件网址? Map Tile Caching for Offline Viewing
我试过了,
Map 组件没有显示我的图像,但很简单
Image.Source = new BitmapImage(new Uri(“file:///Applications/Install/0277CC52-888B-4593-A28D-4CFF818E81E7/Install/maps/-1040122162.jpg”,UriKind.Absolute));
正在显示图像......
你可以在博客中找到解决方案http://invokeit.wordpress.com/2012/06/30/bing-mapcontrol-offline-tiles-solution-wpdev-wp7dev/
一般来说,你只需要
覆盖TileSource类中的GetUri函数:返回null以让MapLayerTile忽略此tile,并将tile信息保存到某个后台worker
在后台工作程序中,从任何位置(隔离存储或网络)加载磁贴,然后手动将其添加到MapLayer控件 .