在QGIS 2.6中导出大型地图时,如何避免WMS图层不完整?


10

我有一个QGIS 2.6项目,该项目包含约20个矢量层和一个WMS层(在Ubuntu 14.04上工作)。WMS渲染工作正常,虽然有点慢,并且导出A4尺寸的地图也可以正常工作(到jpg和pdf),但是在尝试导出最终尺寸的地图(几乎为A0)时,事情变得棘手。

大多数情况下,WMS的某些图块不会出现在生成的pdf或jpg中(请参见下图)。但是,一周前我确实出口了。实际上,在查询一个图层之后,我现在无法导出的地图与我之前打印的完全相同。

这就是生成的pdf的样子

我尝试了几种“解决方法”:
*打印到pdf打印机,而不是导出它。结果相同。
*擦除WMS层并从头开始再次定义它。*从合成中删除了地图,然后再次定义了地图。没变。
*终于尝试了一个新项目并定义了类似的尺寸图...问题仍然存在。
*我尝试卸载并重新安装。一切似乎都一样(甚至插件仍然存在)。
*我尝试将其导出到Windows QGIS(在Windows分区和Windows虚拟机中)。Windows的第一次尝试工作正常,但是现在我面临与Ubuntu相同的问题。

有两个想法:
*可能是与WMS服务器连接的问题吗?但是,WMS渲染正常工作。
*是QGIS运行我们的内存吗?如果我将系统监视器保持打开状态,则会意识到QGIS将仅使用8个内核中的2个,而不是同时使用,并且正在使用的内核达到了使用率的100%。同样,使用的内存永远不会超过2Gb,但我有16Gb(图形卡中为3Gb)。

希望有人能给我一个提示...因为我所有的项目都在QGIS中,但现在无法获得最终结果。

编辑
我也尝试过限制图块大小,但是问题仍然存在(尽管使用较小的空白图块)。
然后,按照的建议,我尝试将timeout和max-retries参数加倍。它确实运行良好……至少在那个时候……一个月后,我再次遇到了同样的问题。这次使用小地图(DinA4大小,上一个是A0)。我已将超时设置为50000 ms,最大重试次数为20!没有变化。
另外两个细节可能有助于找出问题的根源:
*空白图块始终相同。并不是从一个月前到现在,但是每次我遇到问题时,在我为克服该问题而进行的所有试验中,空白图块都将保持修复状态。这并不表示互联网连接存在问题,不是吗?
*导出映像是在几秒钟内(不超过30秒)创建的,这也表明不涉及超时参数(或不起作用)。

编辑
我发现,当出现此问题时,无论我做什么,它都会停留在该位置,并且始终缺少相同的图块。但是,如果我将其放置几天,它就会消失。我的意思是,一旦发生,它将在几天内的所有试验中再次发生。但是,如果我忘记了它,并在两天后尝试,它又可以正常工作了。好像它有某种记忆或记忆...一旦由于某种原因通信失败,它会记住它几天。


我遇到了同样的问题。没有任何变通办法对我有用。
克里斯(Chris

在Qgis 3.4.2中有相同的问题,到目前为止,重新启动Qgis可以完全解决。
user16032

Answers:


7

除了@Irssvt指出的切片大小以外,您还可以设置一些超时和切片重试参数。

每个连接的默认超时Settings->Options->network->Timeout用于网络请求

Settings->Options->network->Max retry如果发生图块请求错误,则在超时的情况下重试。

我在Regiones Toscana资助下的QGIS中对最后重试参数进行了编码,正是为了解决您所遇到的问题。


1
限制图块大小会导致我的地图中的缝隙变小(那些较小的图块),但仍然臭名昭著。但是,将超时和最大重试值加倍可以解决该问题。
2014年

4

连接缓慢可能会发生。您可以尝试为WMS图层设置图块大小。在“ WMS连接”对话框中更改图块大小(例如256x256),然后查看它是否适合您:

在此处输入图片说明

有时它帮助我进行大型创作。希望这可以帮助。


1

我可以通过增加的缓存大小来解决此问题Settings > Options > Network > Cache Settings > Size

它似乎默认为0,每次导出大约使用4KB。当我将缓存大小增加到100MB时,它使用了14MB来存储WMS磁贴。

现在,所有图块在导出中始终显示一致。


0

QGIS也可以使用RAM ...在“网络和缓存设置”中查找,并根据需要增加。Print Composer的设置中也有缓存。

建议QGIS查看他们如何分配缓存,并查看Adobe Photoshop的Purge等示例,它们确实很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.