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


Python QgsRelation.setRelationId方法代码示例

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


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

示例1: test_fieldPairs

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_fieldPairs(self):
        rel = QgsRelation()

        rel.setRelationId("rel1")
        rel.setRelationName("Relation Number One")
        rel.setReferencingLayer(self.referencingLayer.id())
        rel.setReferencedLayer(self.referencedLayer.id())
        rel.addFieldPair("foreignkey", "y")

        assert rel.fieldPairs() == {"foreignkey": "y"}
开发者ID:Cracert,项目名称:Quantum-GIS,代码行数:12,代码来源:test_qgsrelation.py

示例2: test_fieldPairs

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_fieldPairs(self):
        rel = QgsRelation()

        rel.setRelationId('rel1')
        rel.setRelationName('Relation Number One')
        rel.setReferencingLayer(self.referencingLayer.id())
        rel.setReferencedLayer(self.referencedLayer.id())
        rel.addFieldPair('foreignkey', 'y')

        assert (rel.fieldPairs() == {'foreignkey': 'y'})
开发者ID:Geoneer,项目名称:QGIS,代码行数:12,代码来源:test_qgsrelation.py

示例3: test_getReferencedFeature

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_getReferencedFeature(self):
        rel = QgsRelation()
        rel.setRelationId("rel1")
        rel.setRelationName("Relation Number One")
        rel.setReferencingLayer(self.referencingLayer.id())
        rel.setReferencedLayer(self.referencedLayer.id())
        rel.addFieldPair("foreignkey", "y")

        feat = next(self.referencingLayer.getFeatures())

        f = rel.getReferencedFeature(feat)

        assert f.isValid()
        assert f[0] == "foo"
开发者ID:Cracert,项目名称:Quantum-GIS,代码行数:16,代码来源:test_qgsrelation.py

示例4: test_getReferencedFeature

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_getReferencedFeature(self):
        rel = QgsRelation()
        rel.setRelationId('rel1')
        rel.setRelationName('Relation Number One')
        rel.setReferencingLayer(self.referencingLayer.id())
        rel.setReferencedLayer(self.referencedLayer.id())
        rel.addFieldPair('foreignkey', 'y')

        feat = self.referencingLayer.getFeatures().next()

        f = rel.getReferencedFeature(feat)

        assert f.isValid()
        assert f[0] == 'foo'
开发者ID:Geoneer,项目名称:QGIS,代码行数:16,代码来源:test_qgsrelation.py

示例5: test_getRelatedFeatures

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_getRelatedFeatures(self):
        rel = QgsRelation()

        rel.setRelationId('rel1')
        rel.setRelationName('Relation Number One')
        rel.setReferencingLayer(self.referencingLayer.id())
        rel.setReferencedLayer(self.referencedLayer.id())
        rel.addFieldPair('foreignkey', 'y')

        feat = self.referencedLayer.getFeatures().next()

        it = rel.getRelatedFeatures(feat)

        assert [a.attributes() for a in it] == [[u'test1', 123], [u'test2', 123]]
开发者ID:Geoneer,项目名称:QGIS,代码行数:16,代码来源:test_qgsrelation.py

示例6: test_getRelatedFeatures

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_getRelatedFeatures(self):
        rel = QgsRelation()

        rel.setRelationId("rel1")
        rel.setRelationName("Relation Number One")
        rel.setReferencingLayer(self.referencingLayer.id())
        rel.setReferencedLayer(self.referencedLayer.id())
        rel.addFieldPair("foreignkey", "y")

        feat = next(self.referencedLayer.getFeatures())

        self.assertEqual(rel.getRelatedFeaturesFilter(feat), '"foreignkey" = 123')

        it = rel.getRelatedFeatures(feat)
        assert [a.attributes() for a in it] == [["test1", 123], ["test2", 123]]
开发者ID:Cracert,项目名称:Quantum-GIS,代码行数:17,代码来源:test_qgsrelation.py

示例7: test_fieldPairs

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_fieldPairs(self):
        referencedLayer = createReferencedLayer()
        referencingLayer = createReferencingLayer()
        QgsMapLayerRegistry.instance().addMapLayers([referencedLayer,referencingLayer])

        rel = QgsRelation()

        rel.setRelationId( 'rel1' )
        rel.setRelationName( 'Relation Number One' )
        rel.setReferencingLayer( referencingLayer.id() )
        rel.setReferencedLayer( referencedLayer.id() )
        rel.addFieldPair( 'foreignkey', 'y' )

        assert( rel.fieldPairs() == { 'foreignkey': 'y'} )

        QgsMapLayerRegistry.instance().removeAllMapLayers()
开发者ID:ACorradini,项目名称:QGIS,代码行数:18,代码来源:test_qgsrelation.py

示例8: test_isValid

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_isValid(self):
        rel = QgsRelation()
        assert not rel.isValid()

        rel.setRelationId("rel1")
        assert not rel.isValid()

        rel.setRelationName("Relation Number One")
        assert not rel.isValid()

        rel.setReferencingLayer(self.referencingLayer.id())
        assert not rel.isValid()

        rel.setReferencedLayer(self.referencedLayer.id())
        assert not rel.isValid()

        rel.addFieldPair("foreignkey", "y")
        assert rel.isValid()
开发者ID:Cracert,项目名称:Quantum-GIS,代码行数:20,代码来源:test_qgsrelation.py

示例9: test_getRelatedFeatures

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
    def test_getRelatedFeatures(self):
        referencedLayer = createReferencedLayer()
        referencingLayer = createReferencingLayer()
        QgsMapLayerRegistry.instance().addMapLayers([referencedLayer,referencingLayer])

        rel = QgsRelation()

        rel.setRelationId( 'rel1' )
        rel.setRelationName( 'Relation Number One' )
        rel.setReferencingLayer( referencingLayer.id() )
        rel.setReferencedLayer( referencedLayer.id() )
        rel.addFieldPair( 'foreignkey', 'y' )

        feat = referencedLayer.getFeatures().next()

        it = rel.getRelatedFeatures( feat )

        [ a.attributes() for a in it ] == [[u'test1', 123], [u'test2', 123]]

        QgsMapLayerRegistry.instance().removeAllMapLayers()
开发者ID:ACorradini,项目名称:QGIS,代码行数:22,代码来源:test_qgsrelation.py

示例10: open_db

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]

#.........这里部分代码省略.........
        geom_table_column_dict = dict(GEOMETRY_TABLES_COLUMNS)
        for table in TABLES:
            if not table_in_db(self.cur, table):
                iface.messageBar().pushMessage(
                    "Warning",
                    "Table %s not found in edb" % table,
                    level=QgsMessageBar.WARNING,
                    duration=3
                )
                continue
            geom_col = geom_table_column_dict.get(table, None)
            self.db_uri.setDataSource(
                schema,
                table,
                geom_col or ''
            )
            layer_uri = self.db_uri.uri()  # + "&crs=EPSG:4326"
            layer = QgsVectorLayer(layer_uri, table, 'spatialite')
            layer.setCrs(QgsCoordinateReferenceSystem(
                self.epsg,
                QgsCoordinateReferenceSystem.EpsgCrsId)
            )
            if not layer.isValid():
                raise ValueError(edb_filename)
            map_layer = QgsMapLayerRegistry.instance().addMapLayer(
                layer, False
            )
                        
            if 'timevar' in table:
                group = timevar_group
            elif 'emission_function' in table:
                group = emis_func_group
            elif 'searchkey' in table:
                group = searchkey_group
            elif 'unit' in table:
                group = unit_group
            elif 'subgrp' in table:
                group = subgrp_group
            elif table == 'substances':
                group = subtable_group
            elif table.endswith('_emis'):
                group = emis_group
            elif table == 'points':
                group = point_group
            elif 'point_' in table:
                group = point_support_group
            elif table == 'areas':
                group = area_group
            elif 'area_' in table:
                group = area_support_group
            elif table == 'roads':
                group = road_group
            elif table in ('road_vehicle_link', 'road_alobs'):
                group = road_support_group
            elif 'road_' in table:
                group = road_vehicle_group
            elif 'roadtype' in table:
                group = roadtype_group
            elif table == 'facilties':
                group = facility_group
            elif 'facility' in table:
                group = facility_support_group
            elif 'companies' == table:
                group = company_group
            elif 'company' in table:
                group = company_support_group
            elif 'traffic_situation' in table:
                group = road_vehicle_support_group

            group.setVisible(False)
            group.setExpanded(False)
            group.addLayer(map_layer)
            self.layers[table] = map_layer.id()

        for table in TABLES:
            foreign_keys = get_foreign_keys(self.con, table)
            referencing_layer = self.layers[table]
            for row in foreign_keys:
                referenced_layer = self.layers[row['table']]
                from_column = row['from']
                to_column = row['to']
                
                rel = QgsRelation()
                rel.setReferencingLayer(referencing_layer)
                rel.setReferencedLayer(referenced_layer)
                rel.addFieldPair(from_column, to_column)
                rel_name = 'fk_%s_%s-%s_%s' % (
                    table, from_column, row['table'], to_column
                )
                rel.setRelationId(rel_name)
                rel.setRelationName(
                    'fk_%s_%s-%s_%s' % (
                        table, from_column, row['table'], to_column)
                )
                
                if not rel.isValid():
                    raise ValueError(
                        'Reference %s is invalid' % rel_name
                    )
                QgsProject.instance().relationManager().addRelation(rel)
开发者ID:dsegerss,项目名称:AirviroOfflineEdb,代码行数:104,代码来源:qgis_edb_dockwidget.py

示例11: applyJoin

# 需要导入模块: from qgis.core import QgsRelation [as 别名]
# 或者: from qgis.core.QgsRelation import setRelationId [as 别名]
 def applyJoin(self):
     self.dlg.show()
     selectedFields = self.getSelFieldList() or []
     if self.dlg.targetLayerCombo.currentText()[:6] != 'Select' and self.dlg.joinLayerCombo.currentText()[:6] != 'Select' and self.dlg.spatialTypeCombo.currentText()[:6] != 'Select':
         targetLayer = self.layerSet[self.dlg.targetLayerCombo.currentText()]
         joinLayer = self.layerSet[self.dlg.joinLayerCombo.currentText()]
         joinLayerFields = [field.name() for field in joinLayer.pendingFields()]
         #targetLayerFields = [field.name() for field in targetLayer.pendingFields()]
         targetLayerFields = []
         for field in targetLayer.pendingFields():
             if field.name()[0:7] == 'spjoin_':
                 idx = targetLayer.pendingFields().fieldNameIndex(field.name())
                 self.tra.ce("removing:"+field.name()+str(idx))
                 targetLayer.dataProvider().deleteAttributes([idx])
                 targetLayer.removeExpressionField(idx)
             else:
                 targetLayerFields.append(field.name())
         self.tra.ce(targetLayerFields)
         targetLayer.updateFields()
         joinField = 'spjoin_rif'
         exp = "geom"+self.dlg.spatialTypeCombo.currentText()+"('"+joinLayer.name()+"','$id')"
         self.tra.ce( exp)
         #add a rif field if build relation requested
         if self.dlg.checkBuildRelation.checkState() == Qt.Checked:
             #joinLayer.addExpressionField('$id', QgsField('spjoin_rif', QVariant.Int))
             joinLayer.dataProvider().addAttributes([QgsField(joinField, QVariant.Int)])
             #joinLayer.updateFields()
             idx = joinLayer.dataProvider().fields().fieldNameIndex(joinField)
             expObj = QgsExpression('$id')
             changes = {}
             for feature in joinLayer.getFeatures():
                 value = expObj.evaluate(feature)
                 #joinLayer.dataProvider().changeAttributeValues({feature.id():{idx:value}})
                 changes[feature.id()] = {idx:value}
             joinLayer.dataProvider().changeAttributeValues(changes)
         if self.dlg.checkDynamicJoin.checkState() == Qt.Checked:
             targetLayer.addExpressionField(exp, QgsField(joinField, QVariant.Int))
         else:
             #Create static rif field
             targetLayer.dataProvider().addAttributes([QgsField(joinField, QVariant.Int)])
             #targetLayer.updateFields()
             F = [field.name() for field in targetLayer.dataProvider().fields()]
             self.tra.ce(F)
             #Compile spatial expression to get feature rifs
             expObj = QgsExpression(exp)
             expObj.prepare(targetLayer.pendingFields())
             idx = targetLayer.dataProvider().fields().fieldNameIndex(joinField)
             self.tra.ce( "new " + joinField + str(idx))
             changes = {}
             #init progress bar
             self.dlg.progressBar.setMinimum(0)
             self.dlg.progressBar.setMaximum(targetLayer.featureCount())
             #cicle into feature to build mod vector
             for count, feature in enumerate(targetLayer.getFeatures()):
                 self.dlg.progressBar.setValue(count)
                 value = expObj.evaluate(feature)
                 changes[feature.id()] = {idx:value}
             self.tra.ce(changes)
             #apply mod vector
             targetLayer.dataProvider().changeAttributeValues(changes)
         targetLayer.updateFields()
         #build expression fields to connect to join field rif
         for f in selectedFields:
             fieldType = joinLayer.pendingFields().field(f).type()
             exp = """dbvaluebyid('%s','%s',"%s")""" %(joinLayer.name(),f,joinField)
             self.tra.ce(exp)
             targetLayer.addExpressionField(exp, QgsField('spjoin_'+f, fieldType))
         targetLayer.updateFields()
         if self.dlg.checkBuildRelation.checkState() == Qt.Checked:
             jRel = 	QgsRelation()
             jRel.setRelationId(targetLayer.name()+"_"+str(uuid.uuid1()))
             jRel.setRelationName("%s_%s-rif_%s" % (targetLayer.name(),self.dlg.spatialTypeCombo.currentText(),joinLayer.name()))
             jRel.setReferencedLayer(joinLayer.id())
             jRel.setReferencingLayer(targetLayer.id())
             jRel.addFieldPair('spjoin_rif','spjoin_rif')
             QgsProject.instance().relationManager().addRelation(jRel)
         self.dlg.hide()
开发者ID:enricofer,项目名称:spatialJoin,代码行数:79,代码来源:spatialjoin.py


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