2

我们正在开发一个 WPF 应用程序,主要使用 WPF Bing Maps 控件。

我们有多个切片图层,可以在运行时打开或关闭。瓦片层使用自定义瓦片源检索它们的数据,因此我们可以更好地控制返回的 uri。

当应用程序启动时,多个 tilelayers 是可见的,导致调用我们的 restservices 来检索切片。服务检查数据库中的图像,如果存在,则返回图像,如果不存在,则生成图像,存储它们并返回它们。到目前为止,它就像一个魅力。

现在有以下两种情况:数据库由于某种原因被清除->服务只是在调用时重新创建图像,然后返回它们。这里没问题。

如果有人清除了 IE 缓存(客户端),而应用程序仍在运行,则缩放/移动地图。之前加载的瓷砖消失了,并且不会回来。进一步放大时,它确实检索到之前未加载的图块,但在图块层中留下了很大的间隙。

解决这个问题的唯一方法似乎是关闭应用程序,清除 IE 缓存,清除 DB,然后重新启动。是什么导致了这种行为?为什么会加载看似空的图像?

在对一个选项进行一些挖掘之后,将为 uri 提供一个刻度参数,因此它总是会检索新的图块。但这会带来很大的性能损失。

关于如何解决这个问题的任何建议?

提前致谢。

4

1 回答 1

0

WPF 中的切片图层缓存切片并从缓存中提取切片(如果已加载一次)。如果缓存被清除,则不会重新加载这些图块。这是为性能而设计的。特别是对于没有所有可能的瓦片的瓦片层。没有办法解决这个问题。

于 2013-11-29T22:41:03.970 回答