[gdal-dev] Best vector driver?

Even Rouault even.rouault at spatialys.com
Wed Feb 15 08:33:41 PST 2017


On mercredi 15 février 2017 08:27:06 CET Kurt Schwehr wrote:
> Even,
> 
> Thanks for the pointers.  I will do touchups on the driver tutorial as I go.
> 
> Maybe more specifically, with the initial setup of the driver and the
> datasource:
> 
> I only see two drivers that use GDALDriver.
> 
> grep class */*.{cpp,h} | grep GDALDriver
> db2/ogr_db2.h:class OGRDB2Driver : public GDALDriver
> s57/ogr_s57.h:class OGRS57Driver : public GDALDriver
> 
> Most OGR drivers do:
> 
> GDALDriver *poDriver = new GDALDriver();
> 
> But others do:
> 
> gmt/ogrgmtdriver.cpp:    OGRSFDriver* poDriver = new OGRGmtDriver;
> idb/ogridbdriver.cpp:
>  OGRSFDriverRegistrar::GetRegistrar()->RegisterDriver(new OGRIDBDriver);
> 
> What's the cleanest way to setup the driver registration?

The OGRSFDriver way is clearly deprecated. For the others, this is a matter of taste.

> 
> Should I be deriving from GDALDataset?

Yes

> 
> And a few do:
> 
> egrep class */*.{cpp,h} | grep public | egrep -i GDALDataset | head -7
> geojson/ogrgeojsondriver.cpp:class OGRESRIFeatureServiceDataset: public
> GDALDataset
> gmlas/ogrgmlaswriter.cpp:class GMLASFakeDataset : public GDALDataset
> mongodb/ogrmongodbdriver.cpp:class OGRMongoDBDataSource: public GDALDataset
> cad/ogr_cad.h:class GDALCADDataset : public GDALDataset
> elastic/ogr_elastic.h:class OGRElasticDataSource : public GDALDataset
> gmlas/ogr_gmlas.h:class OGRGMLASDataSource: public GDALDataset
> jml/ogr_jml.h:class OGRJMLDataset : public GDALDataset
> 
> But most do:
> 
> egrep class */*.{cpp,h} | grep public | egrep -i OGRDataSource | head -5
> csw/ogrcswdataset.cpp:class OGRCSWDataSource : public OGRDataSource
> generic/ogremulatedtransaction.cpp:class OGRDataSourceWithTransaction :
> public OGRDataSource
> null/ogrnulldriver.cpp:class OGRNULLDataSource : public OGRDataSource
> aeronavfaa/ogr_aeronavfaa.h:class OGRAeronavFAADataSource : public
> OGRDataSource
> amigocloud/ogr_amigocloud.h:class OGRAmigoCloudDataSource : public
> OGRDataSource
> 
> egrep class */*.{cpp,h} | grep public | egrep -i OGRDataSource | wc -l
>      80
> 
> OGRDataSource is deprecated and new drivers should derive from GDALDataset,
> yes?

Yes, not everything has been converted from OGRDataSource to GDALDataset given that we 
have a compatibility layer.

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20170215/0ec965ef/attachment-0001.html>


More information about the gdal-dev mailing list