30 #ifndef OGR_API_H_INCLUDED
31 #define OGR_API_H_INCLUDED
42 #include "cpl_progress.h"
51 typedef struct OGRGeometryHS *OGRGeometryH;
53 typedef void *OGRGeometryH;
56 #ifndef _DEFINED_OGRSpatialReferenceH
57 #define _DEFINED_OGRSpatialReferenceH
60 typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH;
61 typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH;
63 typedef void *OGRSpatialReferenceH;
64 typedef void *OGRCoordinateTransformationH;
74 OGRGeometryH *,
int );
77 OGRErr CPL_DLL OGR_G_CreateFromFgf(
unsigned char *, OGRSpatialReferenceH,
78 OGRGeometryH *,
int,
int * );
83 double dfCenterX,
double dfCenterY,
double dfZ,
84 double dfPrimaryRadius,
double dfSecondaryAxis,
double dfRotation,
85 double dfStartAngle,
double dfEndAngle,
86 double dfMaxAngleStepSizeDegrees );
101 OGRErr CPL_DLL
OGR_G_ExportToWkb( OGRGeometryH, OGRwkbByteOrder,
unsigned char*);
111 OGRGeometryH CPL_DLL OGR_G_CreateFromGML(
const char * );
112 char CPL_DLL *OGR_G_ExportToGML( OGRGeometryH );
113 char CPL_DLL *OGR_G_ExportToGMLEx( OGRGeometryH,
char** papszOptions );
115 #if defined(_CPL_MINIXML_H_INCLUDED)
116 OGRGeometryH CPL_DLL OGR_G_CreateFromGMLTree(
const CPLXMLNode * );
117 CPLXMLNode CPL_DLL *OGR_G_ExportToGMLTree( OGRGeometryH );
118 CPLXMLNode CPL_DLL *OGR_G_ExportEnvelopeToGMLTree( OGRGeometryH );
125 OGRGeometryH CPL_DLL OGR_G_CreateGeometryFromJson(
const char* );
128 OGRSpatialReferenceH );
130 OGRErr CPL_DLL
OGR_G_Transform( OGRGeometryH, OGRCoordinateTransformationH );
133 OGRGeometryH CPL_DLL
OGR_G_Simplify( OGRGeometryH hThis,
double tolerance );
149 OGRGeometryH CPL_DLL
OGR_G_Buffer( OGRGeometryH,
double,
int );
151 OGRGeometryH CPL_DLL
OGR_G_Union( OGRGeometryH, OGRGeometryH );
161 double CPL_DLL OGR_G_Length( OGRGeometryH );
162 double CPL_DLL OGR_G_Area( OGRGeometryH );
175 int CPL_DLL OGR_G_Intersect( OGRGeometryH, OGRGeometryH ) CPL_WARN_DEPRECATED("Non standard method. Use OGR_G_Intersects() instead");
176 int CPL_DLL OGR_G_Equal( OGRGeometryH, OGRGeometryH ) CPL_WARN_DEPRECATED("Non standard method. Use OGR_G_Equals() instead");
177 OGRGeometryH CPL_DLL OGR_G_SymmetricDifference( OGRGeometryH, OGRGeometryH ) CPL_WARN_DEPRECATED("Non standard method. Use OGR_G_SymDifference() instead");
178 double CPL_DLL OGR_G_GetArea( OGRGeometryH ) CPL_WARN_DEPRECATED("Non standard method. Use OGR_G_Area() instead");
179 OGRGeometryH CPL_DLL OGR_G_GetBoundary( OGRGeometryH ) CPL_WARN_DEPRECATED("Non standard method. Use OGR_G_Boundary() instead");
182 int CPL_DLL OGR_G_GetPointCount( OGRGeometryH );
183 int CPL_DLL OGR_G_GetPoints( OGRGeometryH hGeom,
184 void* pabyX,
int nXStride,
185 void* pabyY,
int nYStride,
186 void* pabyZ,
int nZStride);
187 double CPL_DLL OGR_G_GetX( OGRGeometryH,
int );
188 double CPL_DLL OGR_G_GetY( OGRGeometryH,
int );
189 double CPL_DLL OGR_G_GetZ( OGRGeometryH,
int );
190 void CPL_DLL OGR_G_GetPoint( OGRGeometryH,
int iPoint,
191 double *,
double *,
double * );
192 void CPL_DLL OGR_G_SetPoint( OGRGeometryH,
int iPoint,
193 double,
double,
double );
194 void CPL_DLL OGR_G_SetPoint_2D( OGRGeometryH,
int iPoint,
196 void CPL_DLL OGR_G_AddPoint( OGRGeometryH,
double,
double,
double );
197 void CPL_DLL OGR_G_AddPoint_2D( OGRGeometryH,
double,
double );
201 int CPL_DLL OGR_G_GetGeometryCount( OGRGeometryH );
202 OGRGeometryH CPL_DLL OGR_G_GetGeometryRef( OGRGeometryH,
int );
203 OGRErr CPL_DLL OGR_G_AddGeometry( OGRGeometryH, OGRGeometryH );
204 OGRErr CPL_DLL OGR_G_AddGeometryDirectly( OGRGeometryH, OGRGeometryH );
205 OGRErr CPL_DLL OGR_G_RemoveGeometry( OGRGeometryH,
int,
int );
207 OGRGeometryH CPL_DLL OGRBuildPolygonFromEdges( OGRGeometryH hLinesAsCollection,
213 OGRErr CPL_DLL OGRSetGenerate_DB2_V72_BYTE_ORDER(
214 int bGenerate_DB2_V72_BYTE_ORDER );
216 int CPL_DLL OGRGetGenerate_DB2_V72_BYTE_ORDER(
void);
223 typedef struct OGRFieldDefnHS *OGRFieldDefnH;
224 typedef struct OGRFeatureDefnHS *OGRFeatureDefnH;
225 typedef struct OGRFeatureHS *OGRFeatureH;
226 typedef struct OGRStyleTableHS *OGRStyleTableH;
228 typedef void *OGRFieldDefnH;
229 typedef void *OGRFeatureDefnH;
230 typedef void *OGRFeatureH;
231 typedef void *OGRStyleTableH;
237 void CPL_DLL OGR_Fld_Destroy( OGRFieldDefnH );
239 void CPL_DLL OGR_Fld_SetName( OGRFieldDefnH, const
char * );
240 const
char CPL_DLL *OGR_Fld_GetNameRef( OGRFieldDefnH );
242 void CPL_DLL OGR_Fld_SetType( OGRFieldDefnH,
OGRFieldType );
245 int CPL_DLL OGR_Fld_GetWidth( OGRFieldDefnH );
246 void CPL_DLL OGR_Fld_SetWidth( OGRFieldDefnH,
int );
247 int CPL_DLL OGR_Fld_GetPrecision( OGRFieldDefnH );
248 void CPL_DLL OGR_Fld_SetPrecision( OGRFieldDefnH,
int );
249 void CPL_DLL OGR_Fld_Set( OGRFieldDefnH, const
char *, OGRFieldType,
250 int,
int, OGRJustification );
251 int CPL_DLL OGR_Fld_IsIgnored( OGRFieldDefnH hDefn );
252 void CPL_DLL OGR_Fld_SetIgnored( OGRFieldDefnH hDefn,
int );
254 const
char CPL_DLL *OGR_GetFieldTypeName( OGRFieldType );
258 OGRFeatureDefnH CPL_DLL OGR_FD_Create( const
char * ) CPL_WARN_UNUSED_RESULT;
259 void CPL_DLL OGR_FD_Destroy( OGRFeatureDefnH );
260 void CPL_DLL OGR_FD_Release( OGRFeatureDefnH );
261 const
char CPL_DLL *OGR_FD_GetName( OGRFeatureDefnH );
262 int CPL_DLL OGR_FD_GetFieldCount( OGRFeatureDefnH );
263 OGRFieldDefnH CPL_DLL OGR_FD_GetFieldDefn( OGRFeatureDefnH,
int );
264 int CPL_DLL OGR_FD_GetFieldIndex( OGRFeatureDefnH, const
char * );
265 void CPL_DLL OGR_FD_AddFieldDefn( OGRFeatureDefnH, OGRFieldDefnH );
266 OGRErr CPL_DLL OGR_FD_DeleteFieldDefn( OGRFeatureDefnH hDefn,
int iField );
267 OGRErr CPL_DLL OGR_FD_ReorderFieldDefns( OGRFeatureDefnH hDefn,
int* panMap );
270 int CPL_DLL OGR_FD_IsGeometryIgnored( OGRFeatureDefnH );
271 void CPL_DLL OGR_FD_SetGeometryIgnored( OGRFeatureDefnH,
int );
272 int CPL_DLL OGR_FD_IsStyleIgnored( OGRFeatureDefnH );
273 void CPL_DLL OGR_FD_SetStyleIgnored( OGRFeatureDefnH,
int );
274 int CPL_DLL OGR_FD_Reference( OGRFeatureDefnH );
275 int CPL_DLL OGR_FD_Dereference( OGRFeatureDefnH );
276 int CPL_DLL OGR_FD_GetReferenceCount( OGRFeatureDefnH );
280 OGRFeatureH CPL_DLL OGR_F_Create( OGRFeatureDefnH ) CPL_WARN_UNUSED_RESULT;
281 void CPL_DLL OGR_F_Destroy( OGRFeatureH );
282 OGRFeatureDefnH CPL_DLL OGR_F_GetDefnRef( OGRFeatureH );
284 OGRErr CPL_DLL OGR_F_SetGeometryDirectly( OGRFeatureH, OGRGeometryH );
285 OGRErr CPL_DLL OGR_F_SetGeometry( OGRFeatureH, OGRGeometryH );
286 OGRGeometryH CPL_DLL OGR_F_GetGeometryRef( OGRFeatureH );
287 OGRGeometryH CPL_DLL OGR_F_StealGeometry( OGRFeatureH );
288 OGRFeatureH CPL_DLL OGR_F_Clone( OGRFeatureH );
289 int CPL_DLL OGR_F_Equal( OGRFeatureH, OGRFeatureH );
291 int CPL_DLL OGR_F_GetFieldCount( OGRFeatureH );
292 OGRFieldDefnH CPL_DLL OGR_F_GetFieldDefnRef( OGRFeatureH,
int );
293 int CPL_DLL OGR_F_GetFieldIndex( OGRFeatureH, const
char * );
295 int CPL_DLL OGR_F_IsFieldSet( OGRFeatureH,
int );
296 void CPL_DLL OGR_F_UnsetField( OGRFeatureH,
int );
297 OGRField CPL_DLL *OGR_F_GetRawFieldRef( OGRFeatureH,
int );
299 int CPL_DLL OGR_F_GetFieldAsInteger( OGRFeatureH,
int );
300 double CPL_DLL OGR_F_GetFieldAsDouble( OGRFeatureH,
int );
301 const
char CPL_DLL *OGR_F_GetFieldAsString( OGRFeatureH,
int );
302 const
int CPL_DLL *OGR_F_GetFieldAsIntegerList( OGRFeatureH,
int,
int * );
303 const
double CPL_DLL *OGR_F_GetFieldAsDoubleList( OGRFeatureH,
int,
int * );
304 char CPL_DLL **OGR_F_GetFieldAsStringList( OGRFeatureH,
int );
305 GByte CPL_DLL *OGR_F_GetFieldAsBinary( OGRFeatureH,
int,
int * );
306 int CPL_DLL OGR_F_GetFieldAsDateTime( OGRFeatureH,
int,
int *,
int *,
int *,
307 int *,
int *,
int *,
int * );
309 void CPL_DLL OGR_F_SetFieldInteger( OGRFeatureH,
int,
int );
310 void CPL_DLL OGR_F_SetFieldDouble( OGRFeatureH,
int,
double );
311 void CPL_DLL OGR_F_SetFieldString( OGRFeatureH,
int, const
char * );
312 void CPL_DLL OGR_F_SetFieldIntegerList( OGRFeatureH,
int,
int,
int * );
313 void CPL_DLL OGR_F_SetFieldDoubleList( OGRFeatureH,
int,
int,
double * );
314 void CPL_DLL OGR_F_SetFieldStringList( OGRFeatureH,
int,
char ** );
315 void CPL_DLL OGR_F_SetFieldRaw( OGRFeatureH,
int,
OGRField * );
316 void CPL_DLL OGR_F_SetFieldBinary( OGRFeatureH,
int,
int, GByte * );
317 void CPL_DLL OGR_F_SetFieldDateTime( OGRFeatureH,
int,
318 int,
int,
int,
int,
int,
int,
int );
320 long CPL_DLL OGR_F_GetFID( OGRFeatureH );
321 OGRErr CPL_DLL OGR_F_SetFID( OGRFeatureH,
long );
322 void CPL_DLL OGR_F_DumpReadable( OGRFeatureH, FILE * );
323 OGRErr CPL_DLL OGR_F_SetFrom( OGRFeatureH, OGRFeatureH,
int );
324 OGRErr CPL_DLL OGR_F_SetFromWithMap( OGRFeatureH, OGRFeatureH,
int ,
int * );
326 const
char CPL_DLL *OGR_F_GetStyleString( OGRFeatureH );
327 void CPL_DLL OGR_F_SetStyleString( OGRFeatureH, const
char * );
328 void CPL_DLL OGR_F_SetStyleStringDirectly( OGRFeatureH,
char * );
329 OGRStyleTableH CPL_DLL OGR_F_GetStyleTable( OGRFeatureH );
330 void CPL_DLL OGR_F_SetStyleTableDirectly( OGRFeatureH, OGRStyleTableH );
331 void CPL_DLL OGR_F_SetStyleTable( OGRFeatureH, OGRStyleTableH );
338 typedef struct OGRLayerHS *OGRLayerH;
339 typedef struct OGRDataSourceHS *OGRDataSourceH;
340 typedef struct OGRDriverHS *OGRSFDriverH;
342 typedef void *OGRLayerH;
343 typedef void *OGRDataSourceH;
344 typedef void *OGRSFDriverH;
354 double,
double,
double,
double );
372 OGRErr CPL_DLL
OGR_L_AlterFieldDefn( OGRLayerH,
int iField, OGRFieldDefnH hNewFieldDefn,
int nFlags );
376 int CPL_DLL OGR_L_Reference( OGRLayerH );
377 int CPL_DLL OGR_L_Dereference( OGRLayerH );
378 int CPL_DLL OGR_L_GetRefCount( OGRLayerH );
380 GIntBig CPL_DLL OGR_L_GetFeaturesRead( OGRLayerH );
383 OGRStyleTableH CPL_DLL OGR_L_GetStyleTable( OGRLayerH );
384 void CPL_DLL OGR_L_SetStyleTableDirectly( OGRLayerH, OGRStyleTableH );
385 void CPL_DLL OGR_L_SetStyleTable( OGRLayerH, OGRStyleTableH );
387 OGRErr CPL_DLL
OGR_L_Intersection( OGRLayerH, OGRLayerH, OGRLayerH,
char**, GDALProgressFunc,
void * );
388 OGRErr CPL_DLL
OGR_L_Union( OGRLayerH, OGRLayerH, OGRLayerH,
char**, GDALProgressFunc,
void * );
389 OGRErr CPL_DLL
OGR_L_SymDifference( OGRLayerH, OGRLayerH, OGRLayerH,
char**, GDALProgressFunc,
void * );
390 OGRErr CPL_DLL
OGR_L_Identity( OGRLayerH, OGRLayerH, OGRLayerH,
char**, GDALProgressFunc,
void * );
391 OGRErr CPL_DLL
OGR_L_Update( OGRLayerH, OGRLayerH, OGRLayerH,
char**, GDALProgressFunc,
void * );
392 OGRErr CPL_DLL
OGR_L_Clip( OGRLayerH, OGRLayerH, OGRLayerH,
char**, GDALProgressFunc,
void * );
393 OGRErr CPL_DLL
OGR_L_Erase( OGRLayerH, OGRLayerH, OGRLayerH,
char**, GDALProgressFunc,
void * );
405 OGRSpatialReferenceH, OGRwkbGeometryType,
407 OGRLayerH CPL_DLL
OGR_DS_CopyLayer( OGRDataSourceH, OGRLayerH,
const char *,
411 OGRGeometryH,
const char * );
413 int CPL_DLL OGR_DS_Reference( OGRDataSourceH );
414 int CPL_DLL OGR_DS_Dereference( OGRDataSourceH );
415 int CPL_DLL OGR_DS_GetRefCount( OGRDataSourceH );
416 int CPL_DLL OGR_DS_GetSummaryRefCount( OGRDataSourceH );
418 OGRStyleTableH CPL_DLL OGR_DS_GetStyleTable( OGRDataSourceH );
419 void CPL_DLL OGR_DS_SetStyleTableDirectly( OGRDataSourceH, OGRStyleTableH );
420 void CPL_DLL OGR_DS_SetStyleTable( OGRDataSourceH, OGRStyleTableH );
425 OGRDataSourceH CPL_DLL
OGR_Dr_Open( OGRSFDriverH,
const char *,
int ) CPL_WARN_UNUSED_RESULT;
426 int CPL_DLL OGR_Dr_TestCapability( OGRSFDriverH, const
char * );
427 OGRDataSourceH CPL_DLL OGR_Dr_CreateDataSource( OGRSFDriverH, const
char *,
428 char ** ) CPL_WARN_UNUSED_RESULT;
429 OGRDataSourceH CPL_DLL OGR_Dr_CopyDataSource( OGRSFDriverH, OGRDataSourceH,
430 const
char *,
char ** ) CPL_WARN_UNUSED_RESULT;
431 OGRErr CPL_DLL OGR_Dr_DeleteDataSource( OGRSFDriverH, const
char * );
435 OGRDataSourceH CPL_DLL OGROpen( const
char *,
int, OGRSFDriverH * ) CPL_WARN_UNUSED_RESULT;
436 OGRDataSourceH CPL_DLL OGROpenShared( const
char *,
int, OGRSFDriverH * ) CPL_WARN_UNUSED_RESULT;
437 OGRErr CPL_DLL OGRReleaseDataSource( OGRDataSourceH );
438 void CPL_DLL OGRRegisterDriver( OGRSFDriverH );
439 void CPL_DLL OGRDeregisterDriver( OGRSFDriverH );
440 int CPL_DLL OGRGetDriverCount(
void);
441 OGRSFDriverH CPL_DLL OGRGetDriver(
int );
442 OGRSFDriverH CPL_DLL OGRGetDriverByName( const
char * );
443 int CPL_DLL OGRGetOpenDSCount(
void);
444 OGRDataSourceH CPL_DLL OGRGetOpenDS(
int iDS );
448 void CPL_DLL OGRRegisterAll(
void);
449 void CPL_DLL OGRCleanupAll(
void);
456 typedef struct OGRStyleMgrHS *OGRStyleMgrH;
457 typedef struct OGRStyleToolHS *OGRStyleToolH;
459 typedef void *OGRStyleMgrH;
460 typedef void *OGRStyleToolH;
465 OGRStyleMgrH CPL_DLL
OGR_SM_Create(OGRStyleTableH hStyleTable) CPL_WARN_UNUSED_RESULT;
471 const char *pszStyleString);
473 const char *pszStyleString);
474 OGRStyleToolH CPL_DLL
OGR_SM_GetPart(OGRStyleMgrH hSM,
int nPartId,
475 const char *pszStyleString);
477 int CPL_DLL
OGR_SM_AddStyle(OGRStyleMgrH hSM,
const char *pszStyleName,
478 const char *pszStyleString);
489 double dfGroundPaperScale);
491 const char CPL_DLL *
OGR_ST_GetParamStr(OGRStyleToolH hST,
int eParam,
int *bValueIsNull);
500 int *pnRed,
int *pnGreen,
int *pnBlue,
506 void CPL_DLL OGR_STBL_Destroy( OGRStyleTableH hSTBL );
507 int CPL_DLL OGR_STBL_SaveStyleTable( OGRStyleTableH hStyleTable,
508 const
char *pszFilename );
509 int CPL_DLL OGR_STBL_LoadStyleTable( OGRStyleTableH hStyleTable,
510 const
char *pszFilename );
511 const
char CPL_DLL *OGR_STBL_Find( OGRStyleTableH hStyleTable, const
char *pszName );
512 void CPL_DLL OGR_STBL_ResetStyleStringReading( OGRStyleTableH hStyleTable );
513 const
char CPL_DLL *OGR_STBL_GetNextStyle( OGRStyleTableH hStyleTable);
514 const
char CPL_DLL *OGR_STBL_GetLastStyleName( OGRStyleTableH hStyleTable);