如何使用QGIS批量处理大量几何形状?

问题描述 投票:0回答:1

您能帮我解决如何使用QGIS批量处理大量几何形状吗?

图层中的几何形状偏离了正确的位置,我需要一一调整它们。形状不需要改变,但形状的位置需要改变。我的图层中有数千个这样的形状。您知道如何快速将这些偏移形状调整到正确的位置吗?我的图层有四个字段,分别是

id
geome
xqid
update_date
update_date
是每次手动将图形移动到正确位置并保存时,保存 null 的时间。

polygons example

data definition

我尝试使用 QGsProduct 模块在 QGIS 的 Python 控制台中编写一些代码,但我不知道如何开始。这是我第一次使用这个工具。 请详细告诉我如何快速完成这些任务?

qgis
1个回答
0
投票

如果我理解正确,您需要以编程方式调整 QGIS 图层内几何图形的位置,并更新属性字段以记录何时发生更改。下面是一个可以完成此任务的 Python 脚本。我定义了一个函数(调整位置),它可以翻译每个几何图形并更新“update_date”字段。为指定图层中的每个要素调用此函数,然后更新该图层。请务必将“your_layer_name”替换为图层的实际名称,并根据需要调整翻译值。

from qgis.core import QgsProject
from datetime import datetime

def adjust_position(feature):
    geom = feature.geometry()
    geom.translate(-100, -50)  # Adjust these values as needed
    feature.setGeometry(geom)    
    feature['update_date'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    return feature

layer_name = 'your_layer_name'
layers = QgsProject.instance().mapLayersByName(layer_name)

if layers:
    layer = layers[0]
    layer.startEditing()
    
    for feature in layer.getFeatures():
        corrected_feature = adjust_position(feature)
        layer.updateFeature(corrected_feature)

    layer.commitChanges()
© www.soinside.com 2019 - 2024. All rights reserved.