30 #ifndef _OGRSF_FRMTS_H_INCLUDED
31 #define _OGRSF_FRMTS_H_INCLUDED
33 #include "cpl_progress.h"
61 int m_bFilterIsEnvelope;
63 OGRPreparedGeometry *m_pPreparedFilterGeom;
76 virtual void SetSpatialFilterRect(
double dfMinX,
double dfMinY,
77 double dfMaxX,
double dfMaxY );
79 virtual OGRErr SetAttributeFilter(
const char * );
81 virtual void ResetReading() = 0;
83 virtual OGRErr SetNextByIndex(
long nIndex );
85 virtual OGRErr SetFeature(
OGRFeature *poFeature );
86 virtual OGRErr CreateFeature(
OGRFeature *poFeature );
87 virtual OGRErr DeleteFeature(
long nFID );
89 virtual const char *GetName();
95 virtual int GetFeatureCount(
int bForce = TRUE );
96 virtual OGRErr GetExtent(
OGREnvelope *psExtent,
int bForce = TRUE);
98 virtual int TestCapability(
const char * ) = 0;
100 virtual const char *GetInfo(
const char * );
103 int bApproxOK = TRUE );
104 virtual OGRErr DeleteField(
int iField );
105 virtual OGRErr ReorderFields(
int* panMap );
106 virtual OGRErr AlterFieldDefn(
int iField,
OGRFieldDefn* poNewFieldDefn,
int nFlags );
108 virtual OGRErr SyncToDisk();
111 virtual void SetStyleTableDirectly(
OGRStyleTable *poStyleTable );
115 virtual OGRErr StartTransaction();
116 virtual OGRErr CommitTransaction();
117 virtual OGRErr RollbackTransaction();
119 virtual const char *GetFIDColumn();
120 virtual const char *GetGeometryColumn();
122 virtual OGRErr SetIgnoredFields(
const char **papszFields );
124 OGRErr Intersection(
OGRLayer *pLayerMethod,
126 char** papszOptions = NULL,
127 GDALProgressFunc pfnProgress = NULL,
128 void * pProgressArg = NULL );
129 OGRErr Union(
OGRLayer *pLayerMethod,
131 char** papszOptions = NULL,
132 GDALProgressFunc pfnProgress = NULL,
133 void * pProgressArg = NULL );
134 OGRErr SymDifference(
OGRLayer *pLayerMethod,
137 GDALProgressFunc pfnProgress,
138 void * pProgressArg );
139 OGRErr Identity(
OGRLayer *pLayerMethod,
141 char** papszOptions = NULL,
142 GDALProgressFunc pfnProgress = NULL,
143 void * pProgressArg = NULL );
144 OGRErr Update(
OGRLayer *pLayerMethod,
146 char** papszOptions = NULL,
147 GDALProgressFunc pfnProgress = NULL,
148 void * pProgressArg = NULL );
149 OGRErr Clip(
OGRLayer *pLayerMethod,
151 char** papszOptions = NULL,
152 GDALProgressFunc pfnProgress = NULL,
153 void * pProgressArg = NULL );
154 OGRErr Erase(
OGRLayer *pLayerMethod,
156 char** papszOptions = NULL,
157 GDALProgressFunc pfnProgress = NULL,
158 void * pProgressArg = NULL );
162 int GetRefCount()
const;
164 GIntBig GetFeaturesRead();
167 OGRErr ReorderField(
int iOldFieldPos,
int iNewFieldPos );
169 int AttributeFilterEvaluationNeedsGeometry();
172 OGRErr InitializeIndexSupport(
const char * );
182 GIntBig m_nFeaturesRead;
206 OGRLayer* BuildLayerFromSelectInfo(
void* psSelectInfo,
208 const char *pszDialect);
216 virtual const char *GetName() = 0;
218 virtual int GetLayerCount() = 0;
219 virtual OGRLayer *GetLayer(
int) = 0;
220 virtual OGRLayer *GetLayerByName(
const char *);
221 virtual OGRErr DeleteLayer(
int);
223 virtual int TestCapability(
const char * ) = 0;
225 virtual OGRLayer *CreateLayer(
const char *pszName,
228 char ** papszOptions = NULL );
230 const char *pszNewName,
231 char **papszOptions = NULL );
234 virtual void SetStyleTableDirectly(
OGRStyleTable *poStyleTable );
238 virtual OGRLayer * ExecuteSQL(
const char *pszStatement,
240 const char *pszDialect );
241 virtual void ReleaseResultSet(
OGRLayer * poResultsSet );
243 virtual OGRErr SyncToDisk();
247 int GetRefCount()
const;
248 int GetSummaryRefCount()
const;
256 OGRErr ProcessSQLCreateIndex(
const char * );
257 OGRErr ProcessSQLDropIndex(
const char * );
258 OGRErr ProcessSQLDropTable(
const char * );
259 OGRErr ProcessSQLAlterTableAddColumn(
const char * );
260 OGRErr ProcessSQLAlterTableDropColumn(
const char * );
261 OGRErr ProcessSQLAlterTableAlterColumn(
const char * );
262 OGRErr ProcessSQLAlterTableRenameColumn(
const char * );
287 virtual const char *GetName() = 0;
289 virtual OGRDataSource *Open(
const char *pszName,
int bUpdate=FALSE ) = 0;
291 virtual int TestCapability(
const char * ) = 0;
293 virtual OGRDataSource *CreateDataSource(
const char *pszName,
295 virtual OGRErr DeleteDataSource(
const char *pszName );
298 const char *pszNewName,
299 char **papszOptions = NULL );
323 char **papszOpenDSRawName;
326 GIntBig *panOpenDSPID;
333 static OGRDataSource *Open(
const char *pszName,
int bUpdate=FALSE,
336 OGRDataSource *OpenShared(
const char *pszName,
int bUpdate=FALSE,
343 int GetDriverCount(
void );
350 void AutoLoadDrivers();
359 void CPL_DLL RegisterOGRFileGDB();
360 void CPL_DLL RegisterOGRShape();
361 void CPL_DLL RegisterOGRNTF();
362 void CPL_DLL RegisterOGRFME();
363 void CPL_DLL RegisterOGRSDTS();
364 void CPL_DLL RegisterOGRTiger();
365 void CPL_DLL RegisterOGRS57();
366 void CPL_DLL RegisterOGRTAB();
367 void CPL_DLL RegisterOGRMIF();
368 void CPL_DLL RegisterOGROGDI();
369 void CPL_DLL RegisterOGRODBC();
370 void CPL_DLL RegisterOGRPG();
371 void CPL_DLL RegisterOGRMSSQLSpatial();
372 void CPL_DLL RegisterOGRMySQL();
373 void CPL_DLL RegisterOGROCI();
374 void CPL_DLL RegisterOGRDGN();
375 void CPL_DLL RegisterOGRGML();
376 void CPL_DLL RegisterOGRLIBKML();
377 void CPL_DLL RegisterOGRKML();
378 void CPL_DLL RegisterOGRGeoJSON();
379 void CPL_DLL RegisterOGRAVCBin();
380 void CPL_DLL RegisterOGRAVCE00();
381 void CPL_DLL RegisterOGRREC();
382 void CPL_DLL RegisterOGRMEM();
383 void CPL_DLL RegisterOGRVRT();
384 void CPL_DLL RegisterOGRDODS();
385 void CPL_DLL RegisterOGRSQLite();
386 void CPL_DLL RegisterOGRCSV();
387 void CPL_DLL RegisterOGRILI1();
388 void CPL_DLL RegisterOGRILI2();
389 void CPL_DLL RegisterOGRGRASS();
390 void CPL_DLL RegisterOGRPGeo();
391 void CPL_DLL RegisterOGRDXFDWG();
392 void CPL_DLL RegisterOGRDXF();
393 void CPL_DLL RegisterOGRDWG();
394 void CPL_DLL RegisterOGRSDE();
395 void CPL_DLL RegisterOGRIDB();
396 void CPL_DLL RegisterOGRGMT();
397 void CPL_DLL RegisterOGRBNA();
398 void CPL_DLL RegisterOGRGPX();
399 void CPL_DLL RegisterOGRGeoconcept();
400 void CPL_DLL RegisterOGRIngres();
401 void CPL_DLL RegisterOGRPCIDSK();
402 void CPL_DLL RegisterOGRXPlane();
403 void CPL_DLL RegisterOGRNAS();
404 void CPL_DLL RegisterOGRGeoRSS();
405 void CPL_DLL RegisterOGRGTM();
406 void CPL_DLL RegisterOGRVFK();
407 void CPL_DLL RegisterOGRPGDump();
408 void CPL_DLL RegisterOGROSM();
409 void CPL_DLL RegisterOGRGPSBabel();
410 void CPL_DLL RegisterOGRSUA();
411 void CPL_DLL RegisterOGROpenAir();
412 void CPL_DLL RegisterOGRPDS();
413 void CPL_DLL RegisterOGRWFS();
414 void CPL_DLL RegisterOGRSOSI();
415 void CPL_DLL RegisterOGRHTF();
416 void CPL_DLL RegisterOGRAeronavFAA();
417 void CPL_DLL RegisterOGRGeomedia();
418 void CPL_DLL RegisterOGRMDB();
419 void CPL_DLL RegisterOGREDIGEO();
420 void CPL_DLL RegisterOGRGFT();
421 void CPL_DLL RegisterOGRSVG();
422 void CPL_DLL RegisterOGRCouchDB();
423 void CPL_DLL RegisterOGRIdrisi();
424 void CPL_DLL RegisterOGRARCGEN();
425 void CPL_DLL RegisterOGRSEGUKOOA();
426 void CPL_DLL RegisterOGRSEGY();
427 void CPL_DLL RegisterOGRXLS();
428 void CPL_DLL RegisterOGRODS();
429 void CPL_DLL RegisterOGRXLSX();
430 void CPL_DLL RegisterOGRElastic();
431 void CPL_DLL RegisterOGRPDF();
Definition: ogrsf_frmts.h:200
void OGRRegisterAll()
Register all drivers.
Definition: ogrregisterall.cpp:38
Definition: ogr_feature.h:120
Definition: ogr_core.h:299
Definition: ogr_feature.h:51
OGRwkbGeometryType
Definition: ogr_core.h:297
Definition: ogr_geometry.h:77
Definition: ogr_feature.h:315
Definition: ogr_spatialref.h:128
Definition: ogrsf_frmts.h:315
OGRSFDriver * GetDriver(int iDriver)
Fetch the indicated driver.
Definition: ogrsfdriverregistrar.cpp:692
Definition: ogr_core.h:47
Definition: ogrsf_frmts.h:58
Definition: ogr_feature.h:178
Definition: ogr_featurestyle.h:81
int GetOpenDSCount()
Return the number of opened datasources.
Definition: ogrsf_frmts.h:347
virtual OGRSpatialReference * GetSpatialRef()
Fetch the spatial reference system for this layer.
Definition: ogrsf_frmts.h:93
Definition: ogr_attrind.h:66
Definition: ogrsf_frmts.h:282