如何以编程方式将值设置/更改为矢量层中的新字段/变量? (QGIS 3.8.1)

时间:2019-08-19 08:34:10

标签: python qgis

我需要分割一个矢量层。我已经有一个更长的QString变量了。对于该图层的所有要素/线,此变量以“ 01”或“ 02”开头。我需要根据该标准将图层分为两个单独的图层。由于我无法成功地将某些if条件与.startsWith()或类似的东西一起使用,因此我在考虑只创建一个新变量(请参见下面的代码),然后使用“ FIELD LIKE'01'”过滤该层,然后将值分配给两个过滤后的子集的新创建变量,最后根据该新变量拆分图层。

我对编程还很陌生,并且已经尝试了PyQGIS文档中的建议。有人知道如何为新变量设置值吗?根据类型(字符串,整数,双精度)是否存在差异?还是有更好/更快的方式拆分图层?

import os
from qgis.core import *
from PyQt5.QtCore import *
project = QgsProject.instance()
path_shp = "path_to_file.shp" 
vlayer = iface.addVectorLayer(path_shp, "layer_name", "ogr") 
if vlayer.isValid():
    print("Layer loaded successfully")
canvas = qgis.utils.iface.mapCanvas()
my_layers = canvas.layers()
for a_layer in my_layers:
    a_layer.startEditing()
    a_layer.addAttribute(QgsField("New_Field/Variable", QVariant.Int))
    a_layer.commitChanges()

我想有两个单独的矢量层。

谢谢!

0 个答案:

没有答案