31 #ifndef OGRSF_FRMTS_H_INCLUDED 32 #define OGRSF_FRMTS_H_INCLUDED 34 #include "cpl_progress.h" 35 #include "ogr_feature.h" 36 #include "ogr_featurestyle.h" 37 #include "gdal_priv.h" 45 #if !defined(GDAL_COMPILATION) && !defined(SUPPRESS_DEPRECATION_WARNINGS) 47 #define OGR_DEPRECATED(x) CPL_WARN_DEPRECATED(x) 49 #define OGR_DEPRECATED(x) 53 class OGRLayerAttrIndex;
68 class CPL_DLL
OGRLayer :
public GDALMajorObject
71 void ConvertGeomsIfNecessary( OGRFeature *poFeature );
75 int m_bFilterIsEnvelope;
76 OGRGeometry *m_poFilterGeom;
77 OGRPreparedGeometry *m_pPreparedFilterGeom;
78 OGREnvelope m_sFilterEnvelope;
79 int m_iGeomFieldFilter;
82 int FilterGeometry( OGRGeometry * );
84 int InstallFilter( OGRGeometry * );
86 OGRErr GetExtentInternal(
int iGeomField, OGREnvelope *psExtent,
int bForce );
89 virtual OGRErr ISetFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
90 virtual OGRErr ICreateFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
96 virtual OGRGeometry *GetSpatialFilter();
97 virtual void SetSpatialFilter( OGRGeometry * );
98 virtual void SetSpatialFilterRect(
double dfMinX,
double dfMinY,
99 double dfMaxX,
double dfMaxY );
101 virtual void SetSpatialFilter(
int iGeomField, OGRGeometry * );
102 virtual void SetSpatialFilterRect(
int iGeomField,
103 double dfMinX,
double dfMinY,
104 double dfMaxX,
double dfMaxY );
106 virtual OGRErr SetAttributeFilter(
const char * );
108 virtual void ResetReading() = 0;
109 virtual OGRFeature *GetNextFeature() CPL_WARN_UNUSED_RESULT = 0;
110 virtual OGRErr SetNextByIndex( GIntBig nIndex );
111 virtual OGRFeature *GetFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT;
113 OGRErr SetFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
114 OGRErr CreateFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
116 virtual OGRErr DeleteFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT;
118 virtual const char *GetName();
119 virtual OGRwkbGeometryType GetGeomType();
120 virtual OGRFeatureDefn *GetLayerDefn() = 0;
121 virtual int FindFieldIndex(
const char *pszFieldName,
int bExactMatch );
123 virtual OGRSpatialReference *GetSpatialRef();
125 virtual GIntBig GetFeatureCount(
int bForce = TRUE );
126 virtual OGRErr GetExtent(OGREnvelope *psExtent,
int bForce = TRUE) CPL_WARN_UNUSED_RESULT;
127 virtual OGRErr GetExtent(
int iGeomField, OGREnvelope *psExtent,
128 int bForce = TRUE) CPL_WARN_UNUSED_RESULT;
130 virtual int TestCapability(
const char * ) = 0;
132 virtual OGRErr CreateField( OGRFieldDefn *poField,
133 int bApproxOK = TRUE );
134 virtual OGRErr DeleteField(
int iField );
135 virtual OGRErr ReorderFields(
int* panMap );
136 virtual OGRErr AlterFieldDefn(
int iField, OGRFieldDefn* poNewFieldDefn,
int nFlagsIn );
138 virtual OGRErr CreateGeomField( OGRGeomFieldDefn *poField,
139 int bApproxOK = TRUE );
141 virtual OGRErr SyncToDisk();
143 virtual OGRStyleTable *GetStyleTable();
144 virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable );
146 virtual void SetStyleTable(OGRStyleTable *poStyleTable);
148 virtual OGRErr StartTransaction() CPL_WARN_UNUSED_RESULT;
149 virtual OGRErr CommitTransaction() CPL_WARN_UNUSED_RESULT;
150 virtual OGRErr RollbackTransaction();
152 virtual const char *GetFIDColumn();
153 virtual const char *GetGeometryColumn();
155 virtual OGRErr SetIgnoredFields(
const char **papszFields );
157 OGRErr Intersection(
OGRLayer *pLayerMethod,
159 char** papszOptions = NULL,
160 GDALProgressFunc pfnProgress = NULL,
161 void * pProgressArg = NULL );
162 OGRErr Union(
OGRLayer *pLayerMethod,
164 char** papszOptions = NULL,
165 GDALProgressFunc pfnProgress = NULL,
166 void * pProgressArg = NULL );
167 OGRErr SymDifference(
OGRLayer *pLayerMethod,
170 GDALProgressFunc pfnProgress,
171 void * pProgressArg );
172 OGRErr Identity(
OGRLayer *pLayerMethod,
174 char** papszOptions = NULL,
175 GDALProgressFunc pfnProgress = NULL,
176 void * pProgressArg = NULL );
177 OGRErr Update(
OGRLayer *pLayerMethod,
179 char** papszOptions = NULL,
180 GDALProgressFunc pfnProgress = NULL,
181 void * pProgressArg = NULL );
182 OGRErr Clip(
OGRLayer *pLayerMethod,
184 char** papszOptions = NULL,
185 GDALProgressFunc pfnProgress = NULL,
186 void * pProgressArg = NULL );
187 OGRErr Erase(
OGRLayer *pLayerMethod,
189 char** papszOptions = NULL,
190 GDALProgressFunc pfnProgress = NULL,
191 void * pProgressArg = NULL );
195 int GetRefCount()
const;
197 GIntBig GetFeaturesRead();
201 OGRErr ReorderField(
int iOldFieldPos,
int iNewFieldPos );
204 int AttributeFilterEvaluationNeedsGeometry();
207 OGRErr InitializeIndexSupport(
const char * );
208 OGRLayerAttrIndex *GetIndex() {
return m_poAttrIndex; }
213 OGRStyleTable *m_poStyleTable;
214 OGRFeatureQuery *m_poAttrQuery;
215 char *m_pszAttrQueryString;
216 OGRLayerAttrIndex *m_poAttrIndex;
220 GIntBig m_nFeaturesRead;
252 virtual const char *GetName() OGR_DEPRECATED(
"Use GDALDataset class instead") = 0;
254 static void DestroyDataSource(
OGRDataSource * ) OGR_DEPRECATED(
"Use GDALDataset class instead");
286 virtual const char *GetName() OGR_DEPRECATED(
"Use GDALDriver class instead") = 0;
288 virtual OGRDataSource *Open(
const char *pszName,
int bUpdate=FALSE ) OGR_DEPRECATED(
"Use GDALDriver class instead") = 0;
290 virtual int TestCapability(
const char *pszCap ) OGR_DEPRECATED(
"Use GDALDriver class instead") = 0;
292 virtual OGRDataSource *CreateDataSource(
const char *pszName,
293 char ** = NULL ) OGR_DEPRECATED(
"Use GDALDriver class instead");
294 virtual OGRErr DeleteDataSource(
const char *pszName ) OGR_DEPRECATED(
"Use GDALDriver class instead");
321 static GDALDataset* OpenWithDriverArg(GDALDriver* poDriver,
322 GDALOpenInfo* poOpenInfo);
323 static GDALDataset* CreateVectorOnly( GDALDriver* poDriver,
324 const char * pszName,
325 char ** papszOptions );
326 static CPLErr DeleteDataSource( GDALDriver* poDriver,
327 const char * pszName );
331 static OGRSFDriverRegistrar *GetRegistrar() OGR_DEPRECATED(
"Use GDALDriverManager class instead");
334 void RegisterDriver(
OGRSFDriver * poDriver ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
337 int GetDriverCount(
void ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
339 GDALDriver *GetDriver(
int iDriver ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
341 GDALDriver *GetDriverByName(
const char * ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
344 int GetOpenDSCount() OGR_DEPRECATED(
"Use GDALDriverManager class instead");
346 OGRDataSource *GetOpenDS(
int ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
357 void OGRRegisterAllInternal();
359 void CPL_DLL RegisterOGRFileGDB();
360 void CPL_DLL RegisterOGRShape();
361 void CPL_DLL RegisterOGRDB2();
362 void CPL_DLL RegisterOGRNTF();
363 void CPL_DLL RegisterOGRFME();
364 void CPL_DLL RegisterOGRSDTS();
365 void CPL_DLL RegisterOGRTiger();
366 void CPL_DLL RegisterOGRS57();
367 void CPL_DLL RegisterOGRTAB();
368 void CPL_DLL RegisterOGRMIF();
369 void CPL_DLL RegisterOGROGDI();
370 void CPL_DLL RegisterOGRODBC();
371 void CPL_DLL RegisterOGRWAsP();
372 void CPL_DLL RegisterOGRPG();
373 void CPL_DLL RegisterOGRMSSQLSpatial();
374 void CPL_DLL RegisterOGRMySQL();
375 void CPL_DLL RegisterOGROCI();
376 void CPL_DLL RegisterOGRDGN();
377 void CPL_DLL RegisterOGRGML();
378 void CPL_DLL RegisterOGRLIBKML();
379 void CPL_DLL RegisterOGRKML();
380 void CPL_DLL RegisterOGRGeoJSON();
381 void CPL_DLL RegisterOGRAVCBin();
382 void CPL_DLL RegisterOGRAVCE00();
383 void CPL_DLL RegisterOGRREC();
384 void CPL_DLL RegisterOGRMEM();
385 void CPL_DLL RegisterOGRVRT();
386 void CPL_DLL RegisterOGRDODS();
387 void CPL_DLL RegisterOGRSQLite();
388 void CPL_DLL RegisterOGRCSV();
389 void CPL_DLL RegisterOGRILI1();
390 void CPL_DLL RegisterOGRILI2();
391 void CPL_DLL RegisterOGRGRASS();
392 void CPL_DLL RegisterOGRPGeo();
393 void CPL_DLL RegisterOGRDXF();
394 void CPL_DLL RegisterOGRCAD();
395 void CPL_DLL RegisterOGRDWG();
396 void CPL_DLL RegisterOGRDGNV8();
397 void CPL_DLL RegisterOGRSDE();
398 void CPL_DLL RegisterOGRIDB();
399 void CPL_DLL RegisterOGRGMT();
400 void CPL_DLL RegisterOGRBNA();
401 void CPL_DLL RegisterOGRGPX();
402 void CPL_DLL RegisterOGRGeoconcept();
403 void CPL_DLL RegisterOGRIngres();
404 void CPL_DLL RegisterOGRXPlane();
405 void CPL_DLL RegisterOGRNAS();
406 void CPL_DLL RegisterOGRGeoRSS();
407 void CPL_DLL RegisterOGRGTM();
408 void CPL_DLL RegisterOGRVFK();
409 void CPL_DLL RegisterOGRPGDump();
410 void CPL_DLL RegisterOGROSM();
411 void CPL_DLL RegisterOGRGPSBabel();
412 void CPL_DLL RegisterOGRSUA();
413 void CPL_DLL RegisterOGROpenAir();
414 void CPL_DLL RegisterOGRPDS();
415 void CPL_DLL RegisterOGRWFS();
416 void CPL_DLL RegisterOGRSOSI();
417 void CPL_DLL RegisterOGRHTF();
418 void CPL_DLL RegisterOGRAeronavFAA();
419 void CPL_DLL RegisterOGRGeomedia();
420 void CPL_DLL RegisterOGRMDB();
421 void CPL_DLL RegisterOGREDIGEO();
422 void CPL_DLL RegisterOGRGFT();
423 void CPL_DLL RegisterOGRSVG();
424 void CPL_DLL RegisterOGRCouchDB();
425 void CPL_DLL RegisterOGRCloudant();
426 void CPL_DLL RegisterOGRIdrisi();
427 void CPL_DLL RegisterOGRARCGEN();
428 void CPL_DLL RegisterOGRSEGUKOOA();
429 void CPL_DLL RegisterOGRSEGY();
430 void CPL_DLL RegisterOGRXLS();
431 void CPL_DLL RegisterOGRODS();
432 void CPL_DLL RegisterOGRXLSX();
433 void CPL_DLL RegisterOGRElastic();
434 void CPL_DLL RegisterOGRGeoPackage();
435 void CPL_DLL RegisterOGRWalk();
436 void CPL_DLL RegisterOGRCarto();
437 void CPL_DLL RegisterOGRAmigoCloud();
438 void CPL_DLL RegisterOGRSXF();
439 void CPL_DLL RegisterOGROpenFileGDB();
440 void CPL_DLL RegisterOGRSelafin();
441 void CPL_DLL RegisterOGRJML();
442 void CPL_DLL RegisterOGRPLSCENES();
443 void CPL_DLL RegisterOGRCSW();
444 void CPL_DLL RegisterOGRMongoDB();
445 void CPL_DLL RegisterOGRVDV();
446 void CPL_DLL RegisterOGRGMLAS();
Definition: ogrsf_frmts.h:247
CPL_C_START void CPL_DLL OGRRegisterAll()
Register all drivers.
Definition: ogrsf_frmts.h:315
Definition: ogrsf_frmts.h:68
Definition: ogrsf_frmts.h:280