我们正在开发一个WPF应用程序,主要使用WPF Bing Maps控件。
我们有多个图块层,可以在运行时打开或关闭。切片图层使用自定义tilesource检索其数据,因此我们可以更好地控制返回的uri。
当应用程序启动时,可以看到多个tilelayers,导致调用我们的restservices来检索tile。服务检查数据库中的图像(如果存在),返回图像,如果不存在,则生成图像,存储图像并返回图像。到目前为止,它就像一个魅力。
现在出现以下两种情况:DB由于某种原因被清除 - >服务只是在调用时重新创建图像,然后返回它们。这里没问题。
如果有人清除IE缓存(客户端),则在应用程序仍在运行时,缩放/移动地图。之前加载的瓷砖消失了,并没有回来。当进一步放大时,它会检索之前未加载的切片,但会在切片图层中留下较大的间隙。
解决这个问题的唯一方法似乎是关闭应用程序,清除IE缓存,清除DB,然后重新开始。是什么导致这种行为?为什么,看似空的,图像加载?
经过一些选择后,可以给uri一个tick参数,所以它总会检索新的tile。但这会对性能造成重大损失。
关于如何解决这个问题的任何建议?
提前致谢。
答案 0 :(得分:0)
如果已经加载了一次,WPF中的切片图层会缓存切片并从缓存中提取切片。如果清除缓存,则不会重新加载这些图块。这是为了性能而设计的。特别是对于没有所有可能的图块的图块层。没有办法解决这个问题。