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


Python QgsVectorJoinInfo.memoryCache方法代码示例

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


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

示例1: test_join

# 需要导入模块: from qgis.core import QgsVectorJoinInfo [as 别名]
# 或者: from qgis.core.QgsVectorJoinInfo import memoryCache [as 别名]
    def test_join(self):

        joinLayer = createJoinLayer()
        joinLayer2 = createJoinLayer()
        QgsMapLayerRegistry.instance().addMapLayers([joinLayer, joinLayer2])

        layer = createLayerWithOnePoint()

        join = QgsVectorJoinInfo()
        join.targetFieldName = "fldint"
        join.joinLayerId = joinLayer.id()
        join.joinFieldName = "y"
        join.memoryCache = True

        layer.addJoin(join)

        join2 = QgsVectorJoinInfo()
        join2.targetFieldName = "fldint"
        join2.joinLayerId = joinLayer2.id()
        join2.joinFieldName = "y"
        join2.memoryCache = True
        join2.prefix = "custom-prefix_"

        layer.addJoin(join2)

        flds = layer.pendingFields()
        self.assertEquals(len(flds), 6)
        self.assertEquals(flds[2].name(), "joinlayer_x")
        self.assertEquals(flds[3].name(), "joinlayer_z")
        self.assertEquals(flds[4].name(), "custom-prefix_x")
        self.assertEquals(flds[5].name(), "custom-prefix_z")
        self.assertEquals(flds.fieldOrigin(0), QgsFields.OriginProvider)
        self.assertEquals(flds.fieldOrigin(2), QgsFields.OriginJoin)
        self.assertEquals(flds.fieldOrigin(3), QgsFields.OriginJoin)
        self.assertEquals(flds.fieldOriginIndex(0), 0)
        self.assertEquals(flds.fieldOriginIndex(2), 0)
        self.assertEquals(flds.fieldOriginIndex(3), 2)

        f = QgsFeature()
        fi = layer.getFeatures()
        self.assertTrue(fi.nextFeature(f))
        attrs = f.attributes()
        self.assertEquals(len(attrs), 6)
        self.assertEquals(attrs[0], "test")
        self.assertEquals(attrs[1], 123)
        self.assertEquals(attrs[2], "foo")
        self.assertEquals(attrs[3], 321)
        self.assertFalse(fi.nextFeature(f))

        f2 = layer.getFeatures(QgsFeatureRequest(f.id())).next()
        self.assertEquals(len(f2.attributes()), 6)
        self.assertEquals(f2[2], "foo")
        self.assertEquals(f2[3], 321)
开发者ID:Clayton-Davis,项目名称:QGIS,代码行数:55,代码来源:test_qgsvectorlayer.py

示例2: test_join

# 需要导入模块: from qgis.core import QgsVectorJoinInfo [as 别名]
# 或者: from qgis.core.QgsVectorJoinInfo import memoryCache [as 别名]
    def test_join(self):

        joinLayer = createJoinLayer()
        joinLayer2 = createJoinLayer()
        QgsMapLayerRegistry.instance().addMapLayers([joinLayer, joinLayer2])

        layer = createLayerWithOnePoint()

        join = QgsVectorJoinInfo()
        join.targetFieldName = "fldint"
        join.joinLayerId = joinLayer.id()
        join.joinFieldName = "y"
        join.memoryCache = True

        layer.addJoin(join)

        join2 = QgsVectorJoinInfo()
        join2.targetFieldName = "fldint"
        join2.joinLayerId = joinLayer2.id()
        join2.joinFieldName = "y"
        join2.memoryCache = True
        join2.prefix = "custom-prefix_"

        layer.addJoin(join2)

        flds = layer.pendingFields()
        assert len(flds) == 6
        assert flds[2].name() == "joinlayer_x"
        assert flds[3].name() == "joinlayer_z"
        assert flds[4].name() == "custom-prefix_x"
        assert flds[5].name() == "custom-prefix_z"
        assert flds.fieldOrigin(0) == QgsFields.OriginProvider
        assert flds.fieldOrigin(2) == QgsFields.OriginJoin
        assert flds.fieldOrigin(3) == QgsFields.OriginJoin
        assert flds.fieldOriginIndex(0) == 0
        assert flds.fieldOriginIndex(2) == 0
        assert flds.fieldOriginIndex(3) == 2

        f = QgsFeature()
        fi = layer.getFeatures()
        assert fi.nextFeature(f)
        attrs = f.attributes()
        assert len(attrs) == 6
        assert attrs[0] == "test"
        assert attrs[1] == 123
        assert attrs[2] == "foo"
        assert attrs[3] == 321
        assert not fi.nextFeature(f)

        f2 = layer.getFeatures(QgsFeatureRequest(f.id())).next()
        assert len(f2.attributes()) == 6
        assert f2[2] == "foo"
        assert f2[3] == 321
开发者ID:lidi100,项目名称:QGIS,代码行数:55,代码来源:test_qgsvectorlayer.py

示例3: applySymbology

# 需要导入模块: from qgis.core import QgsVectorJoinInfo [as 别名]
# 或者: from qgis.core.QgsVectorJoinInfo import memoryCache [as 别名]
    def applySymbology(self):
        self.getConnection()
        vlayer = qgis.utils.iface.mapCanvas().currentLayer()
        if vlayer == None:
            return

        fields = vlayer.dataProvider().fields()
        classField = None
        for f in fields:
            if f.name() == "classtype":
                classField = 'classtype'
            elif f.name() == "result":
                classField = 'result'
        print classField

        class_loaded = False
        for layer in QgsMapLayerRegistry.instance().mapLayers().values():
            if  layer.name() == "class":
                vlayerClass = layer
                class_loaded = True
        if not class_loaded:
            uriSubClass = QgsDataSourceURI()
            uriSubClass.setConnection(self.serverName, "5432", self.database, self.usr , self.pw)
            uriSubClass.setDataSource("classification", "class", None, "", "id")
            vlayerClass = QgsVectorLayer(uriSubClass.uri(), "class", "postgres")
            QgsMapLayerRegistry.instance().addMapLayer(vlayerClass)

        for field in fields:
            index = vlayer.fieldNameIndex(field.name())
            if field.name() == classField:
                vlayer.editFormConfig().setWidgetType(index, 'ValueRelation')
                vlayer.editFormConfig().setWidgetConfig(index, {'Layer': vlayerClass.id(), 'Key': 'id', 'Value': 'classname'})

        useJoin = True
        if useJoin:
            joinObject = QgsVectorJoinInfo()
            joinObject.joinLayerId = vlayerClass.id()
            joinObject.joinFieldName = 'id'
            joinObject.targetFieldName = classField
            joinObject.memoryCache = True
            vlayer.addJoin(joinObject)
            self.join.append(joinObject)
            categories = []
            iter = vlayerClass.getFeatures()
            for feature in iter:
                classname = feature['classname']
                color = QColor(feature['red'], feature['green'], feature['blue'])
                sym = QgsSymbolV2.defaultSymbol(vlayer.geometryType())
                sym.setColor(QColor(color))
                category = QgsRendererCategoryV2(classname, sym, classname)
                categories.append(category)
            field = "class_classname"
            renderer = QgsCategorizedSymbolRendererV2(field, categories)
            vlayer.setRendererV2(renderer)

        qgis.utils.iface.messageBar().pushMessage("Information", "Editor widget set", level = qgis.gui.QgsMessageBar.INFO, duration = 5)
        qgis.utils.iface.setActiveLayer(vlayer)
开发者ID:gilliM,项目名称:wallace,代码行数:59,代码来源:willian_wallace.py

示例4: test_join

# 需要导入模块: from qgis.core import QgsVectorJoinInfo [as 别名]
# 或者: from qgis.core.QgsVectorJoinInfo import memoryCache [as 别名]
 def test_join(self):
   
     joinLayer = createJoinLayer()
     QgsMapLayerRegistry.instance().addMapLayers([joinLayer])
   
     layer = createLayerWithOnePoint()
     
     join = QgsVectorJoinInfo()
     join.targetFieldName = "fldint"
     join.joinLayerId = joinLayer.id()
     join.joinFieldName = "y"
     join.memoryCache = True
     
     layer.addJoin(join)
     
     flds = layer.pendingFields()
     assert len(flds) == 4
     assert flds[2].name() == "joinlayer_x"
     assert flds[3].name() == "joinlayer_z"
     assert flds.fieldOrigin(0) == QgsFields.OriginProvider
     assert flds.fieldOrigin(2) == QgsFields.OriginJoin
     assert flds.fieldOrigin(3) == QgsFields.OriginJoin
     assert flds.fieldOriginIndex(0) == 0
     assert flds.fieldOriginIndex(2) == 0
     assert flds.fieldOriginIndex(3) == 2
     
     f = QgsFeature()
     fi = layer.getFeatures()
     assert fi.nextFeature(f) == True
     attrs = f.attributes()
     assert len(attrs) == 4
     assert attrs[0].toString() == "test"
     assert attrs[1].toInt()[0] == 123
     assert attrs[2].toString() == "foo"
     assert attrs[3].toInt()[0] == 321
     assert fi.nextFeature(f) == False
     
     f2 = QgsFeature()
     assert layer.featureAtId(f.id(), f2)
     assert len(f2.attributes()) == 4
     assert f2[2].toString() == "foo"
     assert f2[3].toInt()[0] == 321
开发者ID:tomyun,项目名称:Quantum-GIS,代码行数:44,代码来源:test_qgsvectorlayer.py

示例5: execute_layers_join

# 需要导入模块: from qgis.core import QgsVectorJoinInfo [as 别名]
# 或者: from qgis.core.QgsVectorJoinInfo import memoryCache [as 别名]
    def execute_layers_join(layer, layer_field, column_header, fk_layer, fk_field):
        """
        Joins two layers with specified field.
        :param layer: The destination layer of the merge.
        :type layer: QgsVectorLayer
        :param layer_field: The source layer of the merge.
        :type layer_field: String
        :param fk_layer: The foreign key layer object.
        :type fk_layer: QgsVectorLayer
        :param fk_field: The foreign key layer field name.
        :type fk_field: String
        :return:
        :rtype:
        """
        join = QgsVectorJoinInfo()
        join.joinLayerId = fk_layer.id()
        join.joinFieldName = 'id'

        join.setJoinFieldNamesSubset([fk_field])
        join.targetFieldName = layer_field
        join.memoryCache = True
        join.prefix = u'{} '.format(column_header)
        layer.addJoin(join)
开发者ID:gltn,项目名称:stdm,代码行数:25,代码来源:spatial_unit_manager.py

示例6: test_join

# 需要导入模块: from qgis.core import QgsVectorJoinInfo [as 别名]
# 或者: from qgis.core.QgsVectorJoinInfo import memoryCache [as 别名]
        assert f["fldint"] == 123

        assert fi.nextFeature(f) == False

    def test_join(self):

        joinLayer = createJoinLayer()
        QgsMapLayerRegistry.instance().addMapLayers([joinLayer])

        layer = createLayerWithOnePoint()

        join = QgsVectorJoinInfo()
        join.targetFieldName = "fldint"
        join.joinLayerId = joinLayer.id()
        join.joinFieldName = "y"
        join.memoryCache = True

        layer.addJoin(join)

        flds = layer.pendingFields()
        assert len(flds) == 4
        assert flds[2].name() == "joinlayer_x"
        assert flds[3].name() == "joinlayer_z"
        assert flds.fieldOrigin(0) == QgsFields.OriginProvider
        assert flds.fieldOrigin(2) == QgsFields.OriginJoin
        assert flds.fieldOrigin(3) == QgsFields.OriginJoin
        assert flds.fieldOriginIndex(0) == 0
        assert flds.fieldOriginIndex(2) == 0
        assert flds.fieldOriginIndex(3) == 2

        f = QgsFeature()
开发者ID:gavinmacaulay,项目名称:Quantum-GIS,代码行数:33,代码来源:test_qgsvectorlayer.py


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