• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python core.edit函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: _createConflict

 def _createConflict(self):
     repo = _createSimpleTestRepo(True)
     log = repo.log()
     filename = tempFilename("gpkg")
     repo.checkoutlayer(filename, "points", ref = log[0].commitid)
     layer = loadLayerNoCrsDialog(filename, "points", "ogr")
     idx = layer.dataProvider().fieldNameIndex("n")
     filename2 = tempFilename("gpkg")
     repo.checkoutlayer(filename2, "points", ref = log[0].commitid)
     layer2 = loadLayerNoCrsDialog(filename2, "points", "ogr")
     features = list(layer.getFeatures())
     with edit(layer):
         layer.changeAttributeValue(features[0].id(), idx, 1000)
         layer.changeAttributeValue(features[1].id(), idx, 2000)
     _, _, conflicts, _ = repo.importgeopkg(layer, "master", "message", "me", "[email protected]", True)
     self.assertEqual(0, len(conflicts))
     features2 = list(layer2.getFeatures())
     with edit(layer2):
         layer2.changeAttributeValue(features2[0].id(), idx, 1001)
         layer2.changeAttributeValue(features2[1].id(), idx, 2001)
     layer3 = loadLayerNoCrsDialog(filename2, "points", "ogr")
     feature = next(layer3.getFeatures(QgsFeatureRequest(features2[0].id())))
     self.assertEquals(1001, feature["n"])
     _, _, conflicts, _ = repo.importgeopkg(layer2, "master", "another message", "me", "[email protected]", True)
     self.assertEqual(2, len(conflicts))
     self.assertEqual(conflicts[0].localFeature['n'], 1001)
     return repo, conflicts
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:27,代码来源:testwebapilib.py


示例2: testPullWithConflicts

 def testPullWithConflicts(self):
     repo = _createSimpleTestRepo(True)
     repo2 = _createEmptyTestRepo(True)
     repo.addremote("myremote", repo2.url)
     repo2.addremote("myremote", repo.url)
     repo.push("myremote", "master")
     filename = tempFilename("gpkg")
     repo.checkoutlayer(filename, "points", ref = repo.HEAD)
     layer = loadLayerNoCrsDialog(filename, "points", "ogr")
     idx = layer.dataProvider().fieldNameIndex("n")
     features = list(layer.getFeatures())
     with edit(layer):
         layer.changeAttributeValue(features[0].id(), idx, 1000)
         layer.changeAttributeValue(features[1].id(), idx, 2000)
     _, _, conflicts, _ = repo.importgeopkg(layer, "master", "message", "me", "[email protected]", True)
     filename2 = tempFilename("gpkg")
     repo2.checkoutlayer(filename2, "points", ref = repo.HEAD)
     layer2 = loadLayerNoCrsDialog(filename2, "points", "ogr")
     features = list(layer2.getFeatures())
     with edit(layer2):
         layer2.changeAttributeValue(features[0].id(), idx, 1001)
         layer2.changeAttributeValue(features[1].id(), idx, 2001)
     _, _, conflicts, _ = repo2.importgeopkg(layer2, "master", "message2", "me", "[email protected]", True)
     conflicts = repo2.pull("myremote", "master")
     self.assertEqual(2, len(conflicts))
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:25,代码来源:testwebapilib.py


示例3: testConflictsWithDeleteAndModify

 def testConflictsWithDeleteAndModify(self):
     repo = _createSimpleTestRepo(True)
     log = repo.log()
     origCommit = log[0].commitid
     filename = tempFilename("gpkg")
     repo.checkoutlayer(filename, "points", ref = log[0].commitid)
     layer = loadLayerNoCrsDialog(filename, "points", "ogr")
     idx = layer.dataProvider().fieldNameIndex("n")
     filename2 = tempFilename("gpkg")
     repo.checkoutlayer(filename2, "points", ref = log[0].commitid)
     layer2 = loadLayerNoCrsDialog(filename2, "points", "ogr")
     features = list(layer.getFeatures())
     with edit(layer):
         layer.changeAttributeValue(features[0].id(), idx, 1000)
         layer.changeAttributeValue(features[1].id(), idx, 2000)
     _, _, conflicts, _ = repo.importgeopkg(layer, "master", "message", "me", "[email protected]", True)
     self.assertEqual(0, len(conflicts))
     features2 = list(layer2.getFeatures())
     with edit(layer2):
         layer2.deleteFeatures([features2[0].id()])
         layer2.deleteFeatures([features2[1].id()])
     _, _, conflicts, _ = repo.importgeopkg(layer2, "master", "another message", "me", "[email protected]", True)
     self.assertEqual(2, len(conflicts))
     diff = repo.diff(repo.log()[0].commitid, repo.log()[1].commitid)
     self.assertEqual(diff[0].path, conflicts[0].path)
     self.assertEqual(origCommit, conflicts[0].originCommit)
     self.assertEqual(diff[1].path, conflicts[1].path)
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:27,代码来源:testwebapilib.py


示例4: _exportAndCreateConflictWithRemoveAndModify

def _exportAndCreateConflictWithRemoveAndModify():
    layer = checkoutLayer(tests._lastRepo, "points", None)
    idx = layer.dataProvider().fieldNameIndex("n")
    features = list(layer.getFeatures())
    with edit(layer):
        layer.deleteFeatures([features[0].id()])
    filename = tempFilename("gpkg")
    tests._lastRepo.checkoutlayer(filename, "points")
    layer2 = loadLayerNoCrsDialog(filename, "points2", "ogr")
    features2 = list(layer2.getFeatures())
    with edit(layer2):
        layer2.changeAttributeValue(features[0].id(), idx, 1000)
    _, _, conflicts, _ = tests._lastRepo.importgeopkg(layer2, "master", "message", "me", "[email protected]", True)
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:13,代码来源:testplugin.py


示例5: _exportAndCreateConflictWithNulls

def _exportAndCreateConflictWithNulls():
    layer = checkoutLayer(tests._lastRepo, "points", None)
    idx = layer.dataProvider().fieldNameIndex("n")
    features = list(layer.getFeatures())
    with edit(layer):
        layer.changeGeometry(features[0].id(), QgsGeometry.fromPoint(QgsPoint(123, 456)))
        layer.changeAttributeValue(features[0].id(), idx, None)
    filename = tempFilename("gpkg")
    tests._lastRepo.checkoutlayer(filename, "points")
    layer2 = loadLayerNoCrsDialog(filename, "points2", "ogr")
    features2 = list(layer2.getFeatures())
    with edit(layer2):
        layer2.changeGeometry(features[0].id(), QgsGeometry.fromPoint(QgsPoint(124, 457)))
        layer2.changeAttributeValue(features2[0].id(), idx, None)
    _, _, conflicts, _ = tests._lastRepo.importgeopkg(layer2, "master", "message", "me", "[email protected]", True)
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:15,代码来源:testplugin.py


示例6: testEdit

    def testEdit(self):
        """Test `with edit(layer):` code"""

        ml = QgsVectorLayer("Point?crs=epsg:4236&field=id:integer&field=value:double",
                            "test_data", "memory")
        # Data as list of x, y, id, value
        self.assertTrue(ml.isValid())
        fields = ml.fields()

        # Check insert
        with edit(ml):
            feat = QgsFeature(fields)
            feat['id'] = 1
            feat['value'] = 0.9
            self.assertTrue(ml.addFeature(feat))

        self.assertEqual(next(ml.dataProvider().getFeatures())['value'], 0.9)

        # Check update
        with edit(ml):
            f = next(ml.getFeatures())
            f['value'] = 9.9
            self.assertTrue(ml.updateFeature(f))

        self.assertEqual(next(ml.dataProvider().getFeatures())['value'], 9.9)

        # Check for rollBack after exceptions
        with self.assertRaises(NameError):
            with edit(ml):
                f = next(ml.getFeatures())
                f['value'] = 3.8
                crashycrash()  # NOQA

        self.assertEqual(next(ml.dataProvider().getFeatures())['value'], 9.9)
        self.assertEqual(next(ml.getFeatures())['value'], 9.9)

        # Check for `as`
        with edit(ml) as l:
            f = next(l.getFeatures())
            f['value'] = 10
            self.assertTrue(l.updateFeature(f))

        self.assertEqual(next(ml.dataProvider().getFeatures())['value'], 10)

        # Check that we get a QgsEditError exception when the commit fails
        with self.assertRaises(QgsEditError):
            with edit(ml) as l:
                l.rollBack()
开发者ID:jonnyforestGIS,项目名称:QGIS,代码行数:48,代码来源:test_syntactic_sugar.py


示例7: _doConflictImport

def _doConflictImport(layername = "points"):
    filename = tempFilename("gpkg")
    tests._lastRepo.checkoutlayer(filename, layername)
    layer = loadLayerNoCrsDialog(filename, layername, "ogr")
    idx = layer.dataProvider().fieldNameIndex("n")
    features = list(layer.getFeatures())
    with edit(layer):
        layer.changeAttributeValue(features[0].id(), idx, 1001)
    tests._lastRepo.importgeopkg(layer, "master", "changed_%s_2" % layername, "me", "[email protected]", True)
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:9,代码来源:testplugin.py


示例8: _createCannotPushScenario

def _createCannotPushScenario():
    _createPushScenario()
    filename = tempFilename("gpkg")
    _remoteRepo.checkoutlayer(filename, "points")
    layer = loadLayerNoCrsDialog(filename, "points", "ogr")
    idx = layer.dataProvider().fieldNameIndex("n")
    features  = list(layer.getFeatures())
    with edit(layer):
        layer.changeAttributeValue(features[1].id(), idx, 1001)
    _remoteRepo.importgeopkg(layer, "master", "message", "me", "[email protected]", True)
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:10,代码来源:testplugin.py


示例9: _exportAndEditLayer

def _exportAndEditLayer():
    layer = checkoutLayer(tests._lastRepo, "points", None)
    idx = layer.dataProvider().fieldNameIndex("n")
    features = list(layer.getFeatures())
    with edit(layer):
        layer.changeAttributeValue(features[0].id(), idx, 1000)
        layer.deleteFeatures([features[1].id()])
        feat = QgsFeature(layer.pendingFields())
        feat.setAttributes(["5", 5])
        feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456)))
        layer.addFeatures([feat])
    return layer
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:12,代码来源:testplugin.py


示例10: delete_feature

def delete_feature(map_canvas, temp_mem_layer):
    """
    Deletes feature from a layer
    :param map_canvas: QGIS map canvas object
    :param temp_mem_layer: Input layer
    :return: None
    :rtype: None
    """
    with q_core.edit(temp_mem_layer):
        feature_ids = [feature.id() for feature in temp_mem_layer.getFeatures()]
        temp_mem_layer.deleteFeatures(feature_ids)
    map_canvas.refresh()
开发者ID:gltn,项目名称:stdm,代码行数:12,代码来源:gps_tool_data_view_utils.py


示例11: _exportChangetoFirstVersionAndEditLayer

def _exportChangetoFirstVersionAndEditLayer():
    log = tests._lastRepo.log()
    assert len(log) == 3
    commitid = log[-1].commitid
    layer = checkoutLayer(tests._lastRepo, "points", None, commitid)
    idx = layer.dataProvider().fieldNameIndex("n")
    features = list(layer.getFeatures())
    with edit(layer):
        layer.changeAttributeValue(features[0].id(), idx, 1000)
        feat = QgsFeature(layer.pendingFields())
        feat.setAttributes(["5", 5])
        feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456)))
        layer.addFeatures([feat])
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:13,代码来源:testplugin.py


示例12: __onFieldsOk

 def __onFieldsOk(self):
     """
     When the Ok button in Fields Settings Dialog is pushed
     """
     self.__fieldsDlg.accept()
     with edit(self.__linesLayer):
         if "distance" not in self.__fieldnames:
             self.__linesLayer.addAttribute(QgsField("distance", QVariant.Double))
         if "x" not in self.__fieldnames:
             self.__linesLayer.addAttribute(QgsField("x", QVariant.Double))
         if "y" not in self.__fieldnames:
             self.__linesLayer.addAttribute(QgsField("y", QVariant.Double))
         self.reallySetLinesLayer()
开发者ID:gusthiot,项目名称:VDLTools,代码行数:13,代码来源:show_settings.py


示例13: _exportAndAddFeatureToLayer

def _exportAndAddFeatureToLayer():
    layer = checkoutLayer(tests._lastRepo, "points", None)
    log = tests._lastRepo.log()
    assert len(log) == 3
    commitid = log[-1].commitid
    applyLayerChanges(tests._lastRepo, layer, tests._lastRepo.HEAD, commitid)
    updateInfoActions(layer)
    with edit(layer):
        feat = QgsFeature(layer.pendingFields())
        feat.setAttributes(["5", 5])
        feat.setGeometry(QgsGeometry.fromPoint(QgsPoint(123, 456)))
        layer.addFeatures([feat])
    layer.reload()
    layer.triggerRepaint()
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:14,代码来源:testplugin.py


示例14: _createPullScenario

def _createPullScenario():
    global _remoteRepo
    _remoteRepo = _createEmptyTestRepo(True)
    global _localRepo
    _localRepo = _createSimpleTestRepo(True)
    _localRepo.addremote("myremote", _remoteRepo.url)
    _remoteRepo.addremote("myremote", _localRepo.url)
    _localRepo.push("myremote", "master")
    filename = tempFilename("gpkg")
    _remoteRepo.checkoutlayer(filename, "points")
    layer = loadLayerNoCrsDialog(filename, "points", "ogr")
    idx = layer.dataProvider().fieldNameIndex("n")
    features  = list(layer.getFeatures())
    with edit(layer):
        layer.changeAttributeValue(features[0].id(), idx, 1001)
    _remoteRepo.importgeopkg(layer, "master", "message2", "me", "[email protected]", True)
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:16,代码来源:testplugin.py


示例15: testImportWithNullValue

 def testImportWithNullValue(self):
     repo = _createSimpleTestRepo(True)
     filename = tempFilename("gpkg")
     repo.checkoutlayer(filename, "points")
     layer = loadLayerNoCrsDialog(filename, "points", "ogr")
     self.assertTrue(layer.isValid())
     features = list(layer.getFeatures())
     self.assertEqual(2, len(features))
     idx = layer.dataProvider().fieldNameIndex("n")
     features = list(layer.getFeatures())
     with edit(layer):
         layer.changeGeometry(features[0].id(), QgsGeometry.fromPoint(QgsPoint(123, 456)))
         layer.changeAttributeValue(features[0].id(), idx, None)
     repo.importgeopkg(layer, "master", "message", "me", "[email protected]", True)
     log = repo.log()
     self.assertEqual("message", log[0].message)
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:16,代码来源:testwebapilib.py


示例16: testImportInterchangeFormat

 def testImportInterchangeFormat(self):
     repo = _createSimpleTestRepo(True)
     filename = tempFilename("gpkg")
     repo.checkoutlayer(filename, "points")
     layer = loadLayerNoCrsDialog(filename, "points", "ogr")
     self.assertTrue(layer.isValid())
     features = list(layer.getFeatures())
     self.assertEqual(2, len(features))
     with edit(layer):
         layer.deleteFeatures([features[0].id()])
     features = list(layer.getFeatures())
     self.assertEqual(1, len(features))
     repo.importgeopkg(layer, "master", "message", "me", "[email protected]", True)
     log = repo.log()
     self.assertEqual("message", log[0].message)
     self.assertEqual(["points"], repo.trees())
     filename2 = tempFilename("gpkg")
     repo.checkoutlayer(filename2, "points")
     layer2 = loadLayerNoCrsDialog(filename, "points2", "ogr")
     self.assertTrue(layer2.isValid())
     features2 = list(layer2.getFeatures())
     self.assertEqual(1, len(features2))
开发者ID:boundlessgeo,项目名称:qgis-geogiglight-plugin,代码行数:22,代码来源:testwebapilib.py


示例17: on_importButton_clicked


#.........这里部分代码省略.........

                                # create maintenance/examination event
                                df = QgsFeature()
                                initFields = damage_layer.dataProvider().fields()
                                df.setFields(initFields)
                                df.initAttributes(initFields.size())
                                df['obj_id'] = damage_layer.dataProvider().defaultValue(damage_layer.fieldNameIndex('obj_id'))
                                df['damage_type'] = 'channel'
                                df['comments'] = observation['Text']
                                df['single_damage_class'] = damageLevel2vl(observation['Rate'])
                                df['channel_damage_code'] = int(damageCode2vl(observation['OpCode']))
                                df['distance'] = distance
                                df['video_counter'] = observation['MPEGPosition']
                                # pictures
                                pics = observation['PhotoFilename']
                                # get wastewater structure id
                                ws_obj_id = reach_features[reach_index]['ws_obj_id']
                                features[ws_obj_id]['damages'].append(df)
                                features[ws_obj_id]['pictures'].append(pics)
                                structure_condition = min(structure_condition, observation['Rate'])
                                features[ws_obj_id]['structure_condition'] = structure_condition
                self.progressBar.setValue(i)
                i += 1

        self.progressBar.setMaximum(len(features))
        self.progressBar.setMinimum(0)
        self.progressBar.setValue(0)
        self.progressBar.setFormat(u'Import des données %v/%m')
        self.progressBar.show()
        self.cancelButton.show()
        self.importButton.hide()
        self.cancel = False

        with edit(maintenance_layer):
            i = 0
            for ws_obj_id, elements in features.iteritems():
                QCoreApplication.processEvents()
                if self.cancel:
                    break

                maintenance = elements['maintenance']
                damages = elements['damages']
                pictures = elements['pictures']
                structure_condition = elements['structure_condition']

                if len(damages) == 0:
                    continue

                # write maintenance feature
                maintenance_layer.addFeature(maintenance)

                # write video
                layer_id = MySettings().value("file_layer")
                file_layer = QgsMapLayerRegistry.instance().mapLayer(layer_id)
                of = QgsFeature()
                init_fields = file_layer.dataProvider().fields()
                of.setFields(init_fields)
                of.initAttributes(init_fields.size())
                of['obj_id'] = file_layer.dataProvider().defaultValue(file_layer.fieldNameIndex('obj_id'))
                of['class'] = 3825  # i.e. maintenance event
                of['kind'] = 3771  # i.e. video
                of['object'] = maintenance['obj_id']
                of['identifier'] = maintenance['videonumber']
                of['path_relative'] = self.data_path_line_edit.text() + '\Video'
                file_layer.addFeature(of)
开发者ID:3nids,项目名称:wincan2qgep,代码行数:66,代码来源:databrowserdialog.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python core.QgsAction类代码示例发布时间:2022-05-26
下一篇:
Python analysis.QgsZonalStatistics类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap