Answers:
我可以提出一个替代的工作流程,虽然不一定比每次关闭和打开QGIS都容易,但可能更有意义:
现在,您可以像任何空间图层一样在QGIS中显示视图,并使用来自spacespaceite的JOINed值。但是,每次重新创建CSV时,您都需要删除虚拟CSV表,然后重新链接到该表。然后,QGIS中的刷新将显示新值。这只需要一点时间,而且,您可以定义许多视图,并在需要时保留先前的视图...
高温超导
对于仍在寻找答案而不使用spacespaceite格式的任何人,我发现了一些可行的方法。
如果您有一个csv并使用联接将其联接到空间图层,则联接的选项之一是缓存该层。如果转到图层的属性,然后转到联接的数据,然后单击“编辑联接”,则可以使用此选项。如果禁用了cache选项,则可以在csv更改后重新加载数据层,然后触发对地图进行重新绘制以获取刷新的地图视图。
您可以在Python控制台中进行重新加载和重新绘制。首先,您必须为地图画布,csv和图层定义名称:
mc = iface.mapCanvas()
layer=mc.currentLayer()
csv_layer=mc.currentLayer()
当使用currentLayer方法在控制台中命名图层时,请确保这些图层处于活动状态(它必须是“当前图层”)。
然后,如果将联接的cache选项设置为off,则可以更改csv,然后在Python控制台中使用以下两个命令来重绘地图:
csv_layer.reload()
layer.triggerRepaint()
这对我有用,但是我只有100行数据。当您拥有更大的数据集时,如果不进行缓存,操作将会很慢。