3

我需要将自定义地图图块加载到我的UWP Bing 地图应用程序中,并且需要从ApplicationData.Current.LocalFolder.

发生的情况是没有加载图块并且地图完全是黑色的。

在进行一些故障排除时,我注意到应用程序包中的磁贴加载正常,并且问题仅与此LocalFolder有关LocalCacheFoler

所以我所做的是将相同的图像从应用程序包复制到本地文件夹(我正在复制到正确的图像,甚至使用在运行时生成并存储在中的图像进行测试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();
};

这就是发生的事情:

在此处输入图像描述

如您所见,未加载本地图块并且您是纯黑色的,而应用程序包中的相同文件已正确加载。

有谁知道发生了什么?

4

2 回答 2

3

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

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

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

或将UriFormatString设置为:

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

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

于 2016-09-14T09:34:04.643 回答
0

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

于 2016-09-20T18:44:35.750 回答