本文整理汇总了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;未经允许,请勿转载。 |
请发表评论