当前位置: 首页>>代码示例>>Python>>正文


Python QgsProcessingContext.temporaryLayerStore方法代码示例

本文整理汇总了Python中qgis.core.QgsProcessingContext.temporaryLayerStore方法的典型用法代码示例。如果您正苦于以下问题:Python QgsProcessingContext.temporaryLayerStore方法的具体用法?Python QgsProcessingContext.temporaryLayerStore怎么用?Python QgsProcessingContext.temporaryLayerStore使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qgis.core.QgsProcessingContext的用法示例。


在下文中一共展示了QgsProcessingContext.temporaryLayerStore方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: testRun

# 需要导入模块: from qgis.core import QgsProcessingContext [as 别名]
# 或者: from qgis.core.QgsProcessingContext import temporaryLayerStore [as 别名]
    def testRun(self):
        context = QgsProcessingContext()

        # try running an alg using processing.run - ownership of result layer should be transferred back to the caller
        res = processing.run('qgis:buffer',
                             {'DISTANCE': 1, 'INPUT': points(), 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT},
                             context=context)
        self.assertIn('OUTPUT', res)
        # output should be the layer instance itself
        self.assertIsInstance(res['OUTPUT'], QgsVectorLayer)
        # Python should have ownership
        self.assertTrue(sip.ispyowned(res['OUTPUT']))
        del context
        gc.collect()
        self.assertFalse(sip.isdeleted(res['OUTPUT']))

        # now try using processing.run with is_child_algorithm = True. Ownership should remain with the context
        context = QgsProcessingContext()
        res = processing.run('qgis:buffer',
                             {'DISTANCE': 1, 'INPUT': points(), 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT},
                             context=context, is_child_algorithm=True)
        self.assertIn('OUTPUT', res)
        # output should be a layer string reference, NOT the layer itself
        self.assertIsInstance(res['OUTPUT'], str)
        layer = context.temporaryLayerStore().mapLayer(res['OUTPUT'])
        self.assertIsInstance(layer, QgsVectorLayer)
        # context should have ownership
        self.assertFalse(sip.ispyowned(layer))
        del context
        gc.collect()
        self.assertTrue(sip.isdeleted(layer))
开发者ID:alexbruy,项目名称:QGIS,代码行数:33,代码来源:ProcessingGeneralTest.py


注:本文中的qgis.core.QgsProcessingContext.temporaryLayerStore方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。