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


Python QgsMapLayerRegistry.instance方法代码示例

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


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

示例1: addRefTables

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def addRefTables(self, uri, table, attr_name, tableGroup):
        """Create a datasource for a referenced layer and add it to the map layer registry."""
        foreign_uri = QgsDataSourceURI()
        foreign_uri.setConnection(uri.host(), uri.port(), uri.database(), uri.username(), uri.password())
        foreign_uri.setDataSource(uri.schema(), table, None, "", attr_name)
        new_layer = QgsVectorLayer(foreign_uri.uri(), table, "postgres")

        if new_layer.isValid():
            layer_exists = False

            for layers in QgsMapLayerRegistry.instance().mapLayers().values():
                layer_data = layers.dataProvider()
                if foreign_uri.uri() == layer_data.dataSourceUri():
                    layer_exists = True

            if not layer_exists:
                QgsMapLayerRegistry.instance().addMapLayer(new_layer, False)
                tableGroup.addLayer(new_layer)
                return new_layer
            else:
                return False 
开发者ID:sourcepole,项目名称:AutoForm,代码行数:23,代码来源:autoform.py

示例2: testRoundTripPoints

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def testRoundTripPoints():
    projectFile = os.path.join(os.path.dirname(__file__), "data", "testpoints.qgs")
    iface.addProject(projectFile)
    layerA = processing.getObject("points")
    folder = tempfile.mkdtemp()
    styles = mapboxgl.projectToMapbox(folder)
    layerA2 =dataobjects.load(layerA.source(), "points2")
    mapboxgl.setLayerSymbologyFromMapboxStyle(layerA2, styles["layers"][0])
    mapboxgl.setLayerLabelingFromMapboxStyle(layerA2, styles["layers"][1])
    layerB2 =dataobjects.load(layerA.source(), "pointsb2")
    mapboxgl.setLayerSymbologyFromMapboxStyle(layerB2, styles["layers"][2])
    shutil.rmtree(folder, ignore_errors=True)
    '''
    QgsMapLayerRegistry.instance().removeMapLayer(layerA)
    layerB = processing.getObject("pointsb")
    QgsMapLayerRegistry.instance().removeMapLayer(layerB)
    stylesB = mapboxgl.projectToMapbox("d:\\mapbox")
    self.assertEqual(styles, stylesB)
    ''' 
开发者ID:boundlessgeo,项目名称:lib-mapboxgl-qgis,代码行数:21,代码来源:tests.py

示例3: __init__

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = abc_main_ui.Ui_Dialog()
        self.ui.setupUi(self)

        # Button's handlers
        self.connect(self.ui.runButton, QtCore.SIGNAL("clicked()"), self.run)
        self.connect(self.ui.cancelButton, QtCore.SIGNAL("clicked()"), self.cancel)
        self.connect(self.ui.addFieldButton, QtCore.SIGNAL("clicked()"), self.addField)
        self.connect(self.ui.deleteSelectedButton, QtCore.SIGNAL("clicked()"), self.deleteSelectedFields)
        self.connect(self.ui.deleteAllButton, QtCore.SIGNAL("clicked()"), self.deleteAllFields)

        self.connect(self.ui.vectorLayerComboBox, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.layerChanged)

        self.activateInterface()

        # Fill vector layers combobox
        vectorLayers = [layer.name() for layer in QgsMapLayerRegistry.instance().mapLayers().values() if
                          (layer.type() == QgsMapLayer.VectorLayer)]
        self.ui.vectorLayerComboBox.addItems(vectorLayers)




    ### INTERFACE MANIPULATIONS 
开发者ID:silenteddie,项目名称:attributeBasedClustering,代码行数:27,代码来源:abc_main.py

示例4: __init__

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def __init__(self, iface):
        """Constructor.

        :param iface: An interface instance that will be passed to this class
            which provides the hook by which you can manipulate the QGIS
            application at run time.
        :type iface: QgsInterface
        """
        # Save reference to the QGIS interface
        self.iface = iface
        # initialize plugin directory
        self.plugin_dir = os.path.dirname(__file__)
        # initialize locale
        locale = QSettings().value('locale/userLocale')[0:2]
        locale_path = os.path.join(
            self.plugin_dir,
            'i18n',
            'GeometryWrapper_{}.qm'.format(locale))

        if os.path.exists(locale_path):
            self.translator = QTranslator()
            self.translator.load(locale_path)

            if qVersion() > '4.3.3':
                QCoreApplication.installTranslator(self.translator)


        # Declare instance attributes
        self.actions = []
        self.menu = self.tr(u'&Geometry Wrapper')
        # TODO: We are going to let the user set this up in a future iteration
        self.toolbar = self.iface.addToolBar(u'GeometryWrapper')
        self.toolbar.setObjectName(u'GeometryWrapper')
        
        # listen for browse button 
        self.dlg = GeometryWrapperDialog()
        self.dlg.inButton.clicked.connect(self.setInDataset) 

    # noinspection PyMethodMayBeStatic 
开发者ID:MACBIO,项目名称:GeoWrap,代码行数:41,代码来源:geometry_wrapper.py

示例5: __init__

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def __init__(self, canvas):
        """Constructor
        :param canvas:
        """
        QObject.__init__(self)
        self.canvas = canvas
        # Set up slots so we can mimic the behaviour of QGIS when layers
        # are added.
        LOGGER.debug('Initialising canvas...')
        # noinspection PyArgumentList
        QgsMapLayerRegistry.instance().layersAdded.connect(self.addLayers)
        # noinspection PyArgumentList
        QgsMapLayerRegistry.instance().layerWasAdded.connect(self.addLayer)
        # noinspection PyArgumentList
        QgsMapLayerRegistry.instance().removeAll.connect(self.removeAllLayers)

        # For processing module
        self.destCrs = None 
开发者ID:MACBIO,项目名称:GeoWrap,代码行数:20,代码来源:qgis_interface.py

示例6: __init__

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def __init__(self, canvas):
        """
        Constructor.

        :param canvas: Map canvas.
        :type canvas: QgsMapCanvas
        """

        QObject.__init__(self)
        self.canvas = canvas

        # set up slots to mimic the behaviour of QGIS
        QgsMapLayerRegistry.instance().layersAdded.connect(self.addLayers)
        QgsMapLayerRegistry.instance().layerWasAdded.connect(self.addLayer)
        QgsMapLayerRegistry.instance().removeAll.connect(self.removeAllLayers)

        # for processing module
        self.destCrs = None 
开发者ID:NINAnor,项目名称:NOFAInsert,代码行数:20,代码来源:qgis_interface.py

示例7: addAutoFieldToAutoFieldsTable

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def addAutoFieldToAutoFieldsTable( self, autoFieldId, autoField ):
        """ Add a whole row to the AutoFields table """
        row = self.tblAutoFields.rowCount()
        self.tblAutoFields.insertRow( row )
        name = autoField['layer']
        if 'layerId' in autoField:
            lyr = QgsMapLayerRegistry.instance().mapLayer( autoField['layerId'] )
            name = lyr.name()
        item = QTableWidgetItem( name )
        item.setData( Qt.UserRole, autoFieldId )
        item.setData( Qt.ToolTipRole, autoField['layer'] )
        self.tblAutoFields.setItem( row, 0, item )
        item = QTableWidgetItem( autoField['field'] )
        self.tblAutoFields.setItem( row, 1, item )
        item = QTableWidgetItem( autoField['expression'] )
        self.tblAutoFields.setItem( row, 2, item )
        item = QTableWidgetItem( QApplication.translate( "ExportAutoFields",
            "Enabled" ) if autoField['enabled'] else QApplication.translate( "ExportAutoFields", "Disabled" ) )
        self.tblAutoFields.setItem( row, 3, item ) 
开发者ID:gacarrillor,项目名称:AutoFields,代码行数:21,代码来源:ExportAutoFieldsDialog.py

示例8: __init__

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def __init__( self, parent, autoFieldManager, messageManager, listAutoFields, filePath, bCalculateOnExisting ):
        QDialog.__init__( self, parent )
        self.setupUi( self )
        self.setModal( True )
        self.parent = parent
        self.autoFieldManager = autoFieldManager
        self.messageManager = messageManager
        self.listAutoFields = listAutoFields
        self.filePath = filePath
        self.bCalculateOnExisting = bCalculateOnExisting
        self.listCandidates = self.getCandidates( listAutoFields )
        self.layers = []
        layers = QgsMapLayerRegistry.instance().mapLayers().values()
        for layer in layers:
            if layer.type() == QgsMapLayer.VectorLayer:
                if layer.dataProvider().capabilities() & QgsVectorDataProvider.AddFeatures:
                    self.layers.append( layer )

        self.tblAutoFields.setColumnWidth( 0, 120 )
        self.tblAutoFields.setColumnWidth( 3, 80 )
        self.tblAutoFields.setColumnWidth( 4, 150 )
        self.tblAutoFields.setColumnWidth( 5, 120 )

        self.populateAutoFieldsTable() 
开发者ID:gacarrillor,项目名称:AutoFields,代码行数:26,代码来源:ImportAutoFieldsDialog.py

示例9: removeAutoField

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def removeAutoField( self, autoFieldId ):
        """ Get rid of AutoField from both QSettings and dictAutoFields """
        if not autoFieldId in self.dictAutoFields:
            self.msg.show( QApplication.translate( "AutoFieldManager",
                "[Warning] AutoField with Id " ) + autoFieldId + \
                QApplication.translate( "AutoFieldManager",
                    " was not found, so it couldn't be removed." ), 'warning' )
            return False
        
        self.settings.beginGroup( self.settingsPrefix + "/data" )
        self.settings.remove( autoFieldId )
        self.settings.endGroup()
        self.settings.sync()
        
        # Disconnect SIGNAL/SLOTS for this AutoField
        if 'layerId' in self.dictAutoFields[autoFieldId]:
            if self.dictAutoFields[autoFieldId]['enabled']:
                layer = QgsMapLayerRegistry.instance().mapLayer( self.dictAutoFields[autoFieldId]['layerId'] )
                self.eventManager.removeEventsForAutoField( autoFieldId, layer, self.dictAutoFields[autoFieldId]['expression'] )
        
        del self.dictAutoFields[autoFieldId]
        self.autoFieldRemoved.emit( autoFieldId ) 
开发者ID:gacarrillor,项目名称:AutoFields,代码行数:24,代码来源:AutoFieldManager.py

示例10: validateAutoField

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def validateAutoField( self, dictProperties ):
        """ Check whether this AutoField is ready or if there is something missing """
        if not 'layerId' in dictProperties:
            self.msg.show( "[Warning] A layer that is part of an AutoField was not found in QGIS registry.", 'warning', True )
            return False
            
        layer = QgsMapLayerRegistry.instance().mapLayer( dictProperties['layerId'] )
        if not layer:
            self.msg.show( "[Warning] Layer id " + dictProperties['layerId'] + " was not found in QGIS registry.", 'warning', True )
            return False
            
        if layer.fieldNameIndex( dictProperties['field'] ) == -1:
            self.msg.show( "[Warning] Field was not found in layer "+layer.name()+".", 'warning', True )
            return False
            
        # TODO add checks for layer2 and field2
            
        return True 
开发者ID:gacarrillor,项目名称:AutoFields,代码行数:20,代码来源:AutoFieldManager.py

示例11: checkAndDisableAutoFieldsForLayer

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def checkAndDisableAutoFieldsForLayer( self, layerId ):
        """ After a notification on fields being removed, check and disable AutoFields if needed.
            1. Check if any field is missing in AutoFields set for this layer.
            2. Disable it in Dict
            3. Disable it in QSettings
            4. Disconnect its SIGNAL / SLOTS   
         """
        for autoFieldId in self.dictAutoFields:
            if self.dictAutoFields[autoFieldId]['enabled'] == True: # Don't check disabled AutoFields
                if layerId == self.dictAutoFields[autoFieldId]['layerId']:       
                    layer = QgsMapLayerRegistry.instance().mapLayer( layerId )    
                    if layer.fieldNameIndex( self.dictAutoFields[autoFieldId]['field'] ) == -1: #1
                        self.dictAutoFields[autoFieldId]['enabled'] = False #2
                        self.writeAutoField( autoFieldId, self.dictAutoFields[autoFieldId] ) #3
                        self.eventManager.removeEventsForAutoField( autoFieldId, layer, self.dictAutoFields[autoFieldId]['expression'] ) #4
                        self.autoFieldDisabled.emit( autoFieldId ) 
开发者ID:gacarrillor,项目名称:AutoFields,代码行数:18,代码来源:AutoFieldManager.py

示例12: from_file

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def from_file(cls, filename, canvas, relative_base=None):
        """
        Load a project file from a path.
        :param filename: The path to the project file.
        :param canvas: (optional) Passing a canvas will auto add layers to the canvas when the load is
        loaded.
        :param relative_base_path: (optional) Relative base path for the project file to load layers from
        :return: A Project object which wraps QgsProject.instance()
        """
        QgsProject.instance().clear()
        bridge = None
        if canvas:
            bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), canvas)
        if relative_base is None:
            relative_base = os.path.dirname(filename)
        QDir.setCurrent(relative_base)
        QgsProject.instance().read(QFileInfo(filename))
        if bridge:
            bridge.setCanvasLayers()
        return cls(bridge) 
开发者ID:NathanW2,项目名称:ascii_qgis,代码行数:22,代码来源:projects.py

示例13: __init__

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def __init__(self, iface):
        self.iface = iface
        config.iface = iface
        readSettings()
        config.initConfigParams()

        layers = list(QgsMapLayerRegistry.instance().mapLayers().values())
        for layer in layers:
            trackLayer(layer)
        try:
            from qgistester.tests import addTestModule
            from geogig.tests import testplugin
            addTestModule(testplugin, "GeoGig Light")
        except Exception as e:
            pass

        QSettings().setValue("/qgis/walForSqlite3", False) 
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:19,代码来源:plugin.py

示例14: newProject

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def newProject(self):
        """Creates a new project."""

        QgsMapLayerRegistry.instance().removeAllMapLayers()

    # ---------------- API Mock for QgsInterface follows ------------------- 
开发者ID:NINAnor,项目名称:NOFAInsert,代码行数:8,代码来源:qgis_interface.py

示例15: functionalTests

# 需要导入模块: from qgis.core import QgsMapLayerRegistry [as 别名]
# 或者: from qgis.core.QgsMapLayerRegistry import instance [as 别名]
def functionalTests():
    try:
        from qgistester.test import Test

    except:
        return []

    def _loadLayer():
        layerfile = os.path.join(os.path.dirname(__file__), "w3w.shp")
        layer = loadLayer(layerfile, provider="ogr")
        QgsMapLayerRegistry.instance().addMapLayer(layer)

    def _setTool():
        plugins["what3words"].setTool()

    def _zoomTo():
        plugins["what3words"].zoomTo()

    w3wTest = Test("Test w3w")
    w3wTest.addStep("Load layer", _loadLayer)
    w3wTest.addStep("Select map tool", _setTool)
    w3wTest.addStep("Click within the layer polygon and verify that the computed 3 coords are 'healings.distorting.harsher'", isVerifyStep=True)
    w3wTest.addStep("Move map canvas", lambda: iface.mapCanvas().setCenter(QgsPoint(0, 0)))
    w3wTest.addStep("Open panel", _zoomTo)
    w3wTest.addStep("Enter 'healings.distorting.harsher' and click on 'zoom to'. Verify it zooms to the polygon layer")
    w3wTest.addStep("Click on 'remove marker' and verify it removes the marker")
    return [w3wTest] 
开发者ID:boundlessgeo,项目名称:qgis-what3words-plugin,代码行数:29,代码来源:testerplugin.py


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