如何从QGIS处理加载内存输出?
许多处理算法可以选择将输出保存为内存。如果从工具箱运行,则可以正常工作,因为您可以选中“运行算法后打开输出文件”框。 查看QGIS的源代码,似乎在函数中定义了用于加载内存层的代码Postprocessing.handleAlgorithmResults。该函数使用对alg.outputs列表的访问权,并执行以下操作: for out in alg.outputs: progress.setPercentage(100 * i / float(len(alg.outputs))) if out.hidden or not out.open: continue if isinstance(out, (OutputRaster, OutputVector, OutputTable)): try: if out.value.startswith('memory:'): layer = out.memoryLayer # NOTE!! QgsMapLayerRegistry.instance().addMapLayers([layer]) # NOTE!! else: # ... 当您从控制台运行处理算法时,是否可以在不访问该对象的情况下加载图层?我可以跑 processing.runalg("qgis:intersection", layer1, layer2, "memory:") 甚至 processing.runalg("qgis:intersection", layer1, layer2, "memory:myLayerName") 但是,我找不到一种方法来获取结果输出。