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


Python QgsVectorFileWriter.ogrDriverList方法代码示例

本文整理汇总了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])
开发者ID:boundlessgeo,项目名称:QGIS,代码行数:27,代码来源:test_qgsvectorfilewriter.py

示例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)
开发者ID:alexbruy,项目名称:qconsolidate,代码行数:36,代码来源:directorywriterwidget.py

示例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'
开发者ID:tomkralidis,项目名称:QGIS,代码行数:10,代码来源:Grass7AlgorithmProvider.py

示例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
开发者ID:aeag,项目名称:mask,代码行数:59,代码来源:maindialog.py

示例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)
开发者ID:volaya,项目名称:QGIS,代码行数:15,代码来源:dlg_export_vector.py

示例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)
开发者ID:AlisterH,项目名称:Quantum-GIS,代码行数:15,代码来源:dlg_export_vector.py


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