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


Python QgsProcessingUtils.compatibleLayers方法代码示例

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


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

示例1: checkExtentCRS

# 需要导入模块: from qgis.core import QgsProcessingUtils [as 别名]
# 或者: from qgis.core.QgsProcessingUtils import compatibleLayers [as 别名]
    def checkExtentCRS(self):
        unmatchingCRS = False
        hasExtent = False
        context = dataobjects.createContext()
        projectCRS = iface.mapCanvas().mapSettings().destinationCrs()
        layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
        for param in self.algorithm().parameterDefinitions():
            if isinstance(param, (ParameterRaster, ParameterVector, ParameterMultipleInput)):
                if param.value:
                    if isinstance(param, ParameterMultipleInput):
                        inputlayers = param.value.split(';')
                    else:
                        inputlayers = [param.value]
                    for inputlayer in inputlayers:
                        for layer in layers:
                            if layer.source() == inputlayer:
                                if layer.crs() != projectCRS:
                                    unmatchingCRS = True

                        p = QgsProcessingUtils.mapLayerFromString(inputlayer, context)
                        if p is not None:
                            if p.crs() != projectCRS:
                                unmatchingCRS = True
            if isinstance(param, ParameterExtent):
                if param.skip_crs_check:
                    continue

                value = self.mainWidget().wrappers[param.name()].widget.leText.text().strip()
                if value:
                    hasExtent = True

        return hasExtent and unmatchingCRS
开发者ID:CS-SI,项目名称:QGIS,代码行数:34,代码来源:AlgorithmDialog.py

示例2: setOutputCRS

# 需要导入模块: from qgis.core import QgsProcessingUtils [as 别名]
# 或者: from qgis.core.QgsProcessingUtils import compatibleLayers [as 别名]
 def setOutputCRS(self):
     context = dataobjects.createContext()
     layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
     for param in self.parameterDefinitions():
         if isinstance(param, (ParameterRaster, ParameterVector, ParameterMultipleInput)):
             if param.value:
                 if isinstance(param, ParameterMultipleInput):
                     inputlayers = param.value.split(';')
                 else:
                     inputlayers = [param.value]
                 for inputlayer in inputlayers:
                     for layer in layers:
                         if layer.source() == inputlayer:
                             self.crs = layer.crs()
                             return
                     p = QgsProcessingUtils.mapLayerFromString(inputlayer, context)
                     if p is not None:
                         self.crs = p.crs()
                         p = None
                         return
     try:
         from qgis.utils import iface
         if iface is not None:
             self.crs = iface.mapCanvas().mapSettings().destinationCrs()
     except:
         pass
开发者ID:enzogis,项目名称:QGIS,代码行数:28,代码来源:GeoAlgorithm.py

示例3: resolveDataObjects

# 需要导入模块: from qgis.core import QgsProcessingUtils [as 别名]
# 或者: from qgis.core.QgsProcessingUtils import compatibleLayers [as 别名]
 def resolveDataObjects(self):
     layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
     for param in self.parameters:
         if isinstance(param, (ParameterRaster, ParameterVector, ParameterTable,
                               ParameterMultipleInput)):
             if param.value:
                 if isinstance(param, ParameterMultipleInput):
                     inputlayers = param.value.split(';')
                 else:
                     inputlayers = [param.value]
                 for i, inputlayer in enumerate(inputlayers):
                     for layer in layers:
                         if layer.name() == inputlayer:
                             inputlayers[i] = layer.source()
                             break
                 param.setValue(";".join(inputlayers))
开发者ID:cayetanobv,项目名称:QGIS,代码行数:18,代码来源:GeoAlgorithm.py

示例4: useLayerExtent

# 需要导入模块: from qgis.core import QgsProcessingUtils [as 别名]
# 或者: from qgis.core.QgsProcessingUtils import compatibleLayers [as 别名]
 def useLayerExtent(self):
     extentsDict = {}
     extents = []
     layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
     for layer in layers:
         authid = layer.crs().authid()
         if ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF) \
                 and authid is not None:
             layerName = u'{} [{}]'.format(layer.name(), authid)
         else:
             layerName = layer.name()
         extents.append(layerName)
         extentsDict[layerName] = {"extent": layer.extent(), "authid": authid}
     (item, ok) = QInputDialog.getItem(self, self.tr('Select Extent'),
                                       self.tr('Use extent from'), extents, 0, False)
     if ok:
         self.setValueFromRect(QgsReferencedRectangle(extentsDict[item]["extent"], QgsCoordinateReferenceSystem(extentsDict[item]["authid"])))
开发者ID:aaime,项目名称:QGIS,代码行数:19,代码来源:ExtentSelectionPanel.py

示例5: useLayerExtent

# 需要导入模块: from qgis.core import QgsProcessingUtils [as 别名]
# 或者: from qgis.core.QgsProcessingUtils import compatibleLayers [as 别名]
 def useLayerExtent(self):
     CANVAS_KEY = 'Use canvas extent'
     extentsDict = {}
     extentsDict[CANVAS_KEY] = {"extent": iface.mapCanvas().extent(),
                                "authid": iface.mapCanvas().mapSettings().destinationCrs().authid()}
     extents = [CANVAS_KEY]
     layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
     for layer in layers:
         authid = layer.crs().authid()
         if ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF) \
                 and authid is not None:
             layerName = u'{} [{}]'.format(layer.name(), authid)
         else:
             layerName = layer.name()
         extents.append(layerName)
         extentsDict[layerName] = {"extent": layer.extent(), "authid": authid}
     (item, ok) = QInputDialog.getItem(self, self.tr('Select extent'),
                                       self.tr('Use extent from'), extents, False)
     if ok:
         self.setValueFromRect(extentsDict[item]["extent"])
         if extentsDict[item]["authid"] != iface.mapCanvas().mapSettings().destinationCrs().authid():
             iface.messageBar().pushMessage(self.tr("Warning"),
                                            self.tr("The projection of the chosen layer is not the same as canvas projection! The selected extent might not be what was intended."),
                                            QgsMessageBar.WARNING, 8)
开发者ID:peterisb,项目名称:QGIS,代码行数:26,代码来源:ExtentSelectionPanel.py


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