30 #ifndef _OGRSF_FRMTS_H_INCLUDED
31 #define _OGRSF_FRMTS_H_INCLUDED
33 #include "ogr_feature.h"
34 #include "ogr_featurestyle.h"
57 int m_bFilterIsEnvelope;
58 OGRGeometry *m_poFilterGeom;
59 OGREnvelope m_sFilterEnvelope;
61 int FilterGeometry( OGRGeometry * );
62 int InstallFilter( OGRGeometry * );
68 virtual OGRGeometry *GetSpatialFilter();
69 virtual void SetSpatialFilter( OGRGeometry * );
70 virtual void SetSpatialFilterRect(
double dfMinX,
double dfMinY,
71 double dfMaxX,
double dfMaxY );
73 virtual OGRErr SetAttributeFilter(
const char * );
75 virtual void ResetReading() = 0;
76 virtual OGRFeature *GetNextFeature() = 0;
77 virtual OGRErr SetNextByIndex(
long nIndex );
78 virtual OGRFeature *GetFeature(
long nFID );
79 virtual OGRErr SetFeature( OGRFeature *poFeature );
80 virtual OGRErr CreateFeature( OGRFeature *poFeature );
81 virtual OGRErr DeleteFeature(
long nFID );
83 virtual const char *GetName();
84 virtual OGRwkbGeometryType GetGeomType();
85 virtual OGRFeatureDefn *GetLayerDefn() = 0;
89 virtual int GetFeatureCount(
int bForce = TRUE );
90 virtual OGRErr GetExtent(OGREnvelope *psExtent,
int bForce = TRUE);
92 virtual int TestCapability(
const char * ) = 0;
94 virtual const char *GetInfo(
const char * );
96 virtual OGRErr CreateField( OGRFieldDefn *poField,
97 int bApproxOK = TRUE );
98 virtual OGRErr DeleteField(
int iField );
99 virtual OGRErr ReorderFields(
int* panMap );
100 virtual OGRErr AlterFieldDefn(
int iField, OGRFieldDefn* poNewFieldDefn,
int nFlags );
102 virtual OGRErr SyncToDisk();
104 virtual OGRStyleTable *GetStyleTable();
105 virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable );
107 virtual void SetStyleTable(OGRStyleTable *poStyleTable);
109 virtual OGRErr StartTransaction();
110 virtual OGRErr CommitTransaction();
111 virtual OGRErr RollbackTransaction();
113 virtual const char *GetFIDColumn();
114 virtual const char *GetGeometryColumn();
116 virtual OGRErr SetIgnoredFields(
const char **papszFields );
120 int GetRefCount()
const;
122 GIntBig GetFeaturesRead();
125 OGRErr ReorderField(
int iOldFieldPos,
int iNewFieldPos );
127 int AttributeFilterEvaluationNeedsGeometry();
130 OGRErr InitializeIndexSupport(
const char * );
134 OGRStyleTable *m_poStyleTable;
135 OGRFeatureQuery *m_poAttrQuery;
140 GIntBig m_nFeaturesRead;
170 virtual const char *GetName() = 0;
172 virtual int GetLayerCount() = 0;
173 virtual OGRLayer *GetLayer(
int) = 0;
174 virtual OGRLayer *GetLayerByName(
const char *);
175 virtual OGRErr DeleteLayer(
int);
177 virtual int TestCapability(
const char * ) = 0;
179 virtual OGRLayer *CreateLayer(
const char *pszName,
180 OGRSpatialReference *poSpatialRef = NULL,
181 OGRwkbGeometryType eGType = wkbUnknown,
182 char ** papszOptions = NULL );
184 const char *pszNewName,
185 char **papszOptions = NULL );
187 virtual OGRStyleTable *GetStyleTable();
188 virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable );
190 virtual void SetStyleTable(OGRStyleTable *poStyleTable);
192 virtual OGRLayer * ExecuteSQL(
const char *pszStatement,
193 OGRGeometry *poSpatialFilter,
194 const char *pszDialect );
195 virtual void ReleaseResultSet(
OGRLayer * poResultsSet );
197 virtual OGRErr SyncToDisk();
201 int GetRefCount()
const;
202 int GetSummaryRefCount()
const;
210 OGRErr ProcessSQLCreateIndex(
const char * );
211 OGRErr ProcessSQLDropIndex(
const char * );
212 OGRErr ProcessSQLDropTable(
const char * );
213 OGRErr ProcessSQLAlterTableAddColumn(
const char * );
214 OGRErr ProcessSQLAlterTableDropColumn(
const char * );
215 OGRErr ProcessSQLAlterTableAlterColumn(
const char * );
216 OGRErr ProcessSQLAlterTableRenameColumn(
const char * );
218 OGRStyleTable *m_poStyleTable;
241 virtual const char *GetName() = 0;
243 virtual OGRDataSource *Open(
const char *pszName,
int bUpdate=FALSE ) = 0;
245 virtual int TestCapability(
const char * ) = 0;
247 virtual OGRDataSource *CreateDataSource(
const char *pszName,
249 virtual OGRErr DeleteDataSource(
const char *pszName );
252 const char *pszNewName,
253 char **papszOptions = NULL );
277 char **papszOpenDSRawName;
280 GIntBig *panOpenDSPID;
287 static OGRDataSource *Open(
const char *pszName,
int bUpdate=FALSE,
290 OGRDataSource *OpenShared(
const char *pszName,
int bUpdate=FALSE,
297 int GetDriverCount(
void );
304 void AutoLoadDrivers();
313 void CPL_DLL RegisterOGRFileGDB();
314 void CPL_DLL RegisterOGRShape();
315 void CPL_DLL RegisterOGRNTF();
316 void CPL_DLL RegisterOGRFME();
317 void CPL_DLL RegisterOGRSDTS();
318 void CPL_DLL RegisterOGRTiger();
319 void CPL_DLL RegisterOGRS57();
320 void CPL_DLL RegisterOGRTAB();
321 void CPL_DLL RegisterOGRMIF();
322 void CPL_DLL RegisterOGROGDI();
323 void CPL_DLL RegisterOGRODBC();
324 void CPL_DLL RegisterOGRPG();
325 void CPL_DLL RegisterOGRMSSQLSpatial();
326 void CPL_DLL RegisterOGRMySQL();
327 void CPL_DLL RegisterOGROCI();
328 void CPL_DLL RegisterOGRDGN();
329 void CPL_DLL RegisterOGRGML();
330 void CPL_DLL RegisterOGRLIBKML();
331 void CPL_DLL RegisterOGRKML();
332 void CPL_DLL RegisterOGRGeoJSON();
333 void CPL_DLL RegisterOGRAVCBin();
334 void CPL_DLL RegisterOGRAVCE00();
335 void CPL_DLL RegisterOGRREC();
336 void CPL_DLL RegisterOGRMEM();
337 void CPL_DLL RegisterOGRVRT();
338 void CPL_DLL RegisterOGRDODS();
339 void CPL_DLL RegisterOGRSQLite();
340 void CPL_DLL RegisterOGRCSV();
341 void CPL_DLL RegisterOGRILI1();
342 void CPL_DLL RegisterOGRILI2();
343 void CPL_DLL RegisterOGRGRASS();
344 void CPL_DLL RegisterOGRPGeo();
345 void CPL_DLL RegisterOGRDXFDWG();
346 void CPL_DLL RegisterOGRDXF();
347 void CPL_DLL RegisterOGRDWG();
348 void CPL_DLL RegisterOGRSDE();
349 void CPL_DLL RegisterOGRIDB();
350 void CPL_DLL RegisterOGRGMT();
351 void CPL_DLL RegisterOGRBNA();
352 void CPL_DLL RegisterOGRGPX();
353 void CPL_DLL RegisterOGRGeoconcept();
354 void CPL_DLL RegisterOGRIngres();
355 void CPL_DLL RegisterOGRPCIDSK();
356 void CPL_DLL RegisterOGRXPlane();
357 void CPL_DLL RegisterOGRNAS();
358 void CPL_DLL RegisterOGRGeoRSS();
359 void CPL_DLL RegisterOGRGTM();
360 void CPL_DLL RegisterOGRVFK();
361 void CPL_DLL RegisterOGRPGDump();
362 void CPL_DLL RegisterOGRGPSBabel();
363 void CPL_DLL RegisterOGRSUA();
364 void CPL_DLL RegisterOGROpenAir();
365 void CPL_DLL RegisterOGRPDS();
366 void CPL_DLL RegisterOGRWFS();
367 void CPL_DLL RegisterOGRSOSI();
368 void CPL_DLL RegisterOGRHTF();
369 void CPL_DLL RegisterOGRAeronavFAA();
370 void CPL_DLL RegisterOGRGeomedia();
371 void CPL_DLL RegisterOGRMDB();
372 void CPL_DLL RegisterOGREDIGEO();
373 void CPL_DLL RegisterOGRGFT();
374 void CPL_DLL RegisterOGRSVG();
375 void CPL_DLL RegisterOGRCouchDB();
376 void CPL_DLL RegisterOGRIdrisi();
377 void CPL_DLL RegisterOGRARCGEN();
378 void CPL_DLL RegisterOGRSEGUKOOA();
379 void CPL_DLL RegisterOGRSEGY();
380 void CPL_DLL RegisterOGRXLS();