我需要分割一个矢量层。我已经有一个更长的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()
我想有两个单独的矢量层。
谢谢!