Bing地图不从本地应用数据加载切片

时间:2016-09-09 21:37:39

标签: win-universal-app uwp bing-maps uwp-maps

我需要将自定义地图图块加载到我的 UWP Bing Maps 应用中,我需要从ApplicationData.Current.LocalFolder加载它们。

如果没有加载图块并且地图完全是黑色,会发生什么。

在进行一些问题排查时,我发现应用包中的图块已正确加载,但该问题仅与LocalFolderLocalCacheFoler相关。

所以我做的是将相同的图像从app包复制到本地文件夹(我复制到正确的文件夹,甚至用在运行时生成的图像进行测试并存储在LocalFolder中)并使用它代码作为磁贴源:

var localTileSource = new LocalMapTileDataSource();
localTileSource.UriRequested += async (s, e) =>
{
    var deferral = e.Request.GetDeferral();                                                           
    e.Request.Uri = (new Random().NextDouble() < 0.5) ? new Uri("ms-appdata:///local/background.png") : new Uri("ms-appx:///Assets/background.png");
    deferral.Complete();
};

这就是发生的事情:

enter image description here

正如您所看到的,当正确加载应用包内的相同文件时,本地磁贴未加载并且您的颜色为黑色。

有谁知道发生了什么?

2 个答案:

答案 0 :(得分:2)

感谢您的反馈。在提供指向应用程序LocalMapTileDataSource的本地存储的自定义源时,似乎存在一些问题。我们已在内部报告此问题,一旦有任何进展,我会更新我的答案。

此外,LocalMapTileDataSource可以从本地存储加载切片。我们可以在LocalMapTileDataSource的构造函数中指定Uri,如下所示:

LocalMapTileDataSource localTileSource = new LocalMapTileDataSource("ms-appdata:///local/background.png");

或者设置 UriFormatString ,如:

LocalMapTileDataSource localTileSource = new LocalMapTileDataSource();
localTileSource.UriFormatString = "ms-appdata:///local/background.png";

通过这些方式,您应该能够从本地应用数据加载切片。

答案 1 :(得分:0)

对于您的方案,为什么不尝试使用CustoMapTileSource?您可以直接提供位图,而不是将切片写入缓存文件夹并将URI提供给LocalMapTileDataSource。