本文整理汇总了Python中qgis.core.QgsVectorFileWriter.ogrDriverList方法的典型用法代码示例。如果您正苦于以下问题:Python QgsVectorFileWriter.ogrDriverList方法的具体用法?Python QgsVectorFileWriter.ogrDriverList怎么用?Python QgsVectorFileWriter.ogrDriverList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsVectorFileWriter
的用法示例。
在下文中一共展示了QgsVectorFileWriter.ogrDriverList方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testOgrDriverList
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import ogrDriverList [as 别名]
def testOgrDriverList(self):
# test with drivers in recommended order
drivers = QgsVectorFileWriter.ogrDriverList(QgsVectorFileWriter.SortRecommended)
self.assertEqual(drivers[0].longName, 'GeoPackage')
self.assertEqual(drivers[0].driverName, 'GPKG')
self.assertEqual(drivers[1].longName, 'ESRI Shapefile')
self.assertEqual(drivers[1].driverName, 'ESRI Shapefile')
self.assertTrue('ODS' in [f.driverName for f in drivers])
# ensure that XLSX comes before SQLite, because we should sort on longName, not driverName!
ms_xlsx_index = next(i for i, v in enumerate(drivers) if v.driverName == 'XLSX')
sqlite_index = next(i for i, v in enumerate(drivers) if v.driverName == 'SQLite')
self.assertLess(ms_xlsx_index, sqlite_index)
self.assertIn('[XLSX]', drivers[ms_xlsx_index].longName)
# alphabetical sorting
drivers2 = QgsVectorFileWriter.ogrDriverList(QgsVectorFileWriter.VectorFormatOptions())
self.assertTrue(drivers2[0].longName < drivers2[1].longName)
self.assertCountEqual([d.driverName for d in drivers], [d.driverName for d in drivers2])
self.assertNotEqual(drivers2[0].driverName, 'GPKG')
# skip non-spatial
formats = QgsVectorFileWriter.ogrDriverList(QgsVectorFileWriter.SkipNonSpatialFormats)
self.assertFalse('ODS' in [f.driverName for f in formats])
示例2: __init__
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import ogrDriverList [as 别名]
def __init__(self, parent=None):
super(DirectoryWriterWidget, self).__init__(parent)
self.setupUi(self)
drivers = QgsVectorFileWriter.ogrDriverList()
self.cmbVectorFormat.blockSignals(True)
for driver in drivers:
self.cmbVectorFormat.addItem(driver.longName, driver.driverName)
self.cmbVectorFormat.blockSignals(False)
topPriority = []
lowPriority = []
gdal.AllRegister()
driverCount = gdal.GetDriverCount()
for i in range(driverCount):
driver = gdal.GetDriver(i)
metadata = driver.GetMetadata()
if ('DCAP_CREATE' in metadata and metadata['DCAP_CREATE'] == 'YES') and ('DCAP_RASTER' in metadata and metadata['DCAP_RASTER'] == 'YES'):
shortName = driver.ShortName
longName = driver.LongName
if shortName in ('MEM', 'VRT'):
continue
elif shortName == 'GTiff':
topPriority.insert(1, (longName, shortName))
elif shortName == 'GPKG':
topPriority.insert(2, (longName, shortName))
else:
lowPriority.append((longName, shortName))
topPriority.extend(sorted(lowPriority))
self.cmbRasterFormat.blockSignals(True)
for driver in topPriority:
self.cmbRasterFormat.addItem(driver[0], driver[1])
self.cmbRasterFormat.blockSignals(False)
示例3: defaultVectorFileExtension
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import ogrDriverList [as 别名]
def defaultVectorFileExtension(self, hasGeometry=True):
# By default,'gpkg', but if OGR has not been compiled with sqlite3, then
# we take "SHP"
if 'GPKG' in [o.driverName for o in
QgsVectorFileWriter.ogrDriverList()]:
return 'gpkg'
else:
return 'shp' if hasGeometry else 'dbf'
示例4: on_file_browse
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import ogrDriverList [as 别名]
def on_file_browse(self):
settings = QSettings()
# look for directory
path = QgsProject.instance().homePath()
if path == '':
path = settings.value("mask/file_dir", '')
if path == '':
path = QDir.homePath()
drivers = QgsVectorFileWriter.ogrDriverList()
filterList = []
filterMap = {}
for ln, n in drivers.items():
# grrr, driverMetadata is not really consistent
if n == "ESRI Shapefile":
ext = "shp"
glob = "*.shp"
else:
md = QgsVectorFileWriter.MetaData()
if QgsVectorFileWriter.driverMetadata(n, md):
ext = md.ext
glob = md.glob
else:
continue
fn = "%s (%s)" % (ln, glob)
filterMap[fn] = (n, ext, glob)
filterList += [fn]
fileFilters = ';;'.join(filterList)
fd = QFileDialog(None, self.tr("Select a filename to save the mask layer to"),
path, fileFilters)
save_format_name = self.parameters.file_format
self.save_format = None
for k, v in filterMap.items():
if v[0] == save_format_name:
self.save_format = v
fd.selectNameFilter(k)
break
def on_filter_selected(ff):
self.save_format = filterMap[ff]
fd.filterSelected.connect(on_filter_selected)
fd.setAcceptMode(QFileDialog.AcceptSave)
r = fd.exec_()
if r == 1:
fn = fd.selectedFiles()[0]
driver, ext, glob = self.save_format
if not fn.endswith("." + ext):
fn += "." + ext
self.ui.filePath.setText(fn)
self.ui.formatLbl.setText(self.save_format[0])
self.parameters.file_format = self.save_format[0]
self.parameters.file_path = fn
示例5: populateFileFilters
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import ogrDriverList [as 别名]
def populateFileFilters(self):
# populate the combo with supported vector file formats
for name, filt in QgsVectorFileWriter.ogrDriverList().items():
self.cboFileFormat.addItem(name, filt)
# set the last used filter
settings = QSettings()
filt = settings.value(self.lastUsedVectorFilterSettingsKey, "ESRI Shapefile")
idx = self.cboFileFormat.findText(filt)
if idx < 0:
idx = 0
self.cboFileFormat.setCurrentIndex(idx)
示例6: populateFileFilters
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import ogrDriverList [as 别名]
def populateFileFilters(self):
# populate the combo with supported vector file formats
for driver in QgsVectorFileWriter.ogrDriverList():
self.cboFileFormat.addItem(driver.longName, driver.driverName)
# set the last used filter
settings = QgsSettings()
filt = settings.value(self.lastUsedVectorFilterSettingsKey, "GPKG")
idx = self.cboFileFormat.findText(filt)
if idx < 0:
idx = 0
self.cboFileFormat.setCurrentIndex(idx)