我想可以这么修改吧,你可以试试看。
import sys
from qgis.core import (
QgsApplication,
QgsProcessingFeedback,
QgsVectorLayer
)
QgsApplication.setPrefixPath('/usr', True)
qgs = QgsApplication([], False)
qgs.initQgis()
# 设置处理插件路径
sys.path.append('/docs/dev/qgis/build/output/python/plugins')
import processing
from processing.core.Processing import Processing
Processing.initialize()
layer1 = QgsVectorLayer('/path/to/geodata/1.shp', 'layer 1', 'ogr')
layer2 = QgsVectorLayer('/path/to/geodata/2.shp', 'layer 2', 'ogr')
# 使用processing.algorithmHelp("qgis:union"),查看参数说明。
params = {
'INPUT' : layer1,
'OVERLAY' : layer2,
'OUTPUT' : '/path/to/output_layer.gpkg|layername=output'
}
feedback = QgsProcessingFeedback()
res = processing.run('qgis:union', params, feedback=feedback)
# 输出图层
res['OUTPUT']