本文整理汇总了Python中qgis.core.QgsVectorFileWriter.targetLayerExists方法的典型用法代码示例。如果您正苦于以下问题:Python QgsVectorFileWriter.targetLayerExists方法的具体用法?Python QgsVectorFileWriter.targetLayerExists怎么用?Python QgsVectorFileWriter.targetLayerExists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsVectorFileWriter
的用法示例。
在下文中一共展示了QgsVectorFileWriter.targetLayerExists方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testOverwriteLayer
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import targetLayerExists [as 别名]
def testOverwriteLayer(self):
"""Tests writing a layer with a field value converter."""
ml = QgsVectorLayer('Point?field=firstfield:int', 'test', 'memory')
provider = ml.dataProvider()
ft = QgsFeature()
ft.setAttributes([1])
provider.addFeatures([ft])
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = 'GPKG'
options.layerName = 'test'
filename = '/vsimem/out.gpkg'
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
ml,
filename,
options)
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
ds = ogr.Open(filename, update=1)
lyr = ds.GetLayerByName('test')
self.assertIsNotNone(lyr)
f = lyr.GetNextFeature()
self.assertEqual(f['firstfield'], 1)
ds.CreateLayer('another_layer')
del f
del lyr
del ds
caps = QgsVectorFileWriter.editionCapabilities(filename)
self.assertTrue((caps & QgsVectorFileWriter.CanAddNewLayer))
self.assertTrue((caps & QgsVectorFileWriter.CanAppendToExistingLayer))
self.assertTrue((caps & QgsVectorFileWriter.CanAddNewFieldsToExistingLayer))
self.assertTrue((caps & QgsVectorFileWriter.CanDeleteLayer))
self.assertTrue(QgsVectorFileWriter.targetLayerExists(filename, 'test'))
self.assertFalse(QgsVectorFileWriter.areThereNewFieldsToCreate(filename, 'test', ml, [0]))
# Test CreateOrOverwriteLayer
ml = QgsVectorLayer('Point?field=firstfield:int', 'test', 'memory')
provider = ml.dataProvider()
ft = QgsFeature()
ft.setAttributes([2])
provider.addFeatures([ft])
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = 'GPKG'
options.layerName = 'test'
options.actionOnExistingFile = QgsVectorFileWriter.CreateOrOverwriteLayer
filename = '/vsimem/out.gpkg'
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
ml,
filename,
options)
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
ds = ogr.Open(filename)
lyr = ds.GetLayerByName('test')
self.assertIsNotNone(lyr)
f = lyr.GetNextFeature()
self.assertEqual(f['firstfield'], 2)
# another_layer should still exist
self.assertIsNotNone(ds.GetLayerByName('another_layer'))
del f
del lyr
del ds
# Test CreateOrOverwriteFile
ml = QgsVectorLayer('Point?field=firstfield:int', 'test', 'memory')
provider = ml.dataProvider()
ft = QgsFeature()
ft.setAttributes([3])
provider.addFeatures([ft])
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = 'GPKG'
options.layerName = 'test'
filename = '/vsimem/out.gpkg'
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
ml,
filename,
options)
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
ds = ogr.Open(filename)
lyr = ds.GetLayerByName('test')
self.assertIsNotNone(lyr)
f = lyr.GetNextFeature()
self.assertEqual(f['firstfield'], 3)
# another_layer should no longer exist
self.assertIsNone(ds.GetLayerByName('another_layer'))
del f
del lyr
del ds
# Test AppendToLayerNoNewFields
#.........这里部分代码省略.........
示例2: testOverwriteLayer
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import targetLayerExists [as 别名]
def testOverwriteLayer(self):
"""Tests writing a layer with a field value converter."""
ml = QgsVectorLayer("Point?field=firstfield:int", "test", "memory")
provider = ml.dataProvider()
ft = QgsFeature()
ft.setAttributes([1])
provider.addFeatures([ft])
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = "GPKG"
options.layerName = "test"
filename = "/vsimem/out.gpkg"
write_result = QgsVectorFileWriter.writeAsVectorFormat(ml, filename, options)
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
ds = ogr.Open(filename, update=1)
lyr = ds.GetLayerByName("test")
self.assertIsNotNone(lyr)
f = lyr.GetNextFeature()
self.assertEqual(f["firstfield"], 1)
ds.CreateLayer("another_layer")
del f
del lyr
del ds
caps = QgsVectorFileWriter.editionCapabilities(filename)
self.assertTrue((caps & QgsVectorFileWriter.CanAddNewLayer))
self.assertTrue((caps & QgsVectorFileWriter.CanAppendToExistingLayer))
self.assertTrue((caps & QgsVectorFileWriter.CanAddNewFieldsToExistingLayer))
self.assertTrue((caps & QgsVectorFileWriter.CanDeleteLayer))
self.assertTrue(QgsVectorFileWriter.targetLayerExists(filename, "test"))
self.assertFalse(QgsVectorFileWriter.areThereNewFieldsToCreate(filename, "test", ml, [0]))
# Test CreateOrOverwriteLayer
ml = QgsVectorLayer("Point?field=firstfield:int", "test", "memory")
provider = ml.dataProvider()
ft = QgsFeature()
ft.setAttributes([2])
provider.addFeatures([ft])
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = "GPKG"
options.layerName = "test"
options.actionOnExistingFile = QgsVectorFileWriter.CreateOrOverwriteLayer
filename = "/vsimem/out.gpkg"
write_result = QgsVectorFileWriter.writeAsVectorFormat(ml, filename, options)
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
ds = ogr.Open(filename)
lyr = ds.GetLayerByName("test")
self.assertIsNotNone(lyr)
f = lyr.GetNextFeature()
self.assertEqual(f["firstfield"], 2)
# another_layer should still exist
self.assertIsNotNone(ds.GetLayerByName("another_layer"))
del f
del lyr
del ds
# Test CreateOrOverwriteFile
ml = QgsVectorLayer("Point?field=firstfield:int", "test", "memory")
provider = ml.dataProvider()
ft = QgsFeature()
ft.setAttributes([3])
provider.addFeatures([ft])
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = "GPKG"
options.layerName = "test"
filename = "/vsimem/out.gpkg"
write_result = QgsVectorFileWriter.writeAsVectorFormat(ml, filename, options)
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
ds = ogr.Open(filename)
lyr = ds.GetLayerByName("test")
self.assertIsNotNone(lyr)
f = lyr.GetNextFeature()
self.assertEqual(f["firstfield"], 3)
# another_layer should no longer exist
self.assertIsNone(ds.GetLayerByName("another_layer"))
del f
del lyr
del ds
# Test AppendToLayerNoNewFields
ml = QgsVectorLayer("Point?field=firstfield:int&field=secondfield:int", "test", "memory")
provider = ml.dataProvider()
ft = QgsFeature()
ft.setAttributes([4, -10])
provider.addFeatures([ft])
self.assertTrue(QgsVectorFileWriter.areThereNewFieldsToCreate(filename, "test", ml, [0, 1]))
#.........这里部分代码省略.........