30 #ifndef OGR_API_H_INCLUDED
31 #define OGR_API_H_INCLUDED
50 typedef struct OGRGeometryHS *OGRGeometryH;
52 typedef void *OGRGeometryH;
55 #ifndef _DEFINED_OGRSpatialReferenceH
56 #define _DEFINED_OGRSpatialReferenceH
59 typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH;
60 typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH;
62 typedef void *OGRSpatialReferenceH;
63 typedef void *OGRCoordinateTransformationH;
73 OGRGeometryH *,
int );
76 OGRErr CPL_DLL OGR_G_CreateFromFgf(
unsigned char *, OGRSpatialReferenceH,
77 OGRGeometryH *,
int,
int * );
82 double dfCenterX,
double dfCenterY,
double dfZ,
83 double dfPrimaryRadius,
double dfSecondaryAxis,
double dfRotation,
84 double dfStartAngle,
double dfEndAngle,
85 double dfMaxAngleStepSizeDegrees );
109 OGRGeometryH CPL_DLL OGR_G_CreateFromGML(
const char * );
110 char CPL_DLL *OGR_G_ExportToGML( OGRGeometryH );
111 char CPL_DLL *OGR_G_ExportToGMLEx( OGRGeometryH,
char** papszOptions );
113 #if defined(_CPL_MINIXML_H_INCLUDED)
114 OGRGeometryH CPL_DLL OGR_G_CreateFromGMLTree(
const CPLXMLNode * );
115 CPLXMLNode CPL_DLL *OGR_G_ExportToGMLTree( OGRGeometryH );
116 CPLXMLNode CPL_DLL *OGR_G_ExportEnvelopeToGMLTree( OGRGeometryH );
123 OGRGeometryH CPL_DLL OGR_G_CreateGeometryFromJson(
const char* );
126 OGRSpatialReferenceH );
128 OGRErr CPL_DLL
OGR_G_Transform( OGRGeometryH, OGRCoordinateTransformationH );
131 OGRGeometryH CPL_DLL
OGR_G_Simplify( OGRGeometryH hThis,
double tolerance );
147 OGRGeometryH CPL_DLL
OGR_G_Buffer( OGRGeometryH,
double,
int );
149 OGRGeometryH CPL_DLL
OGR_G_Union( OGRGeometryH, OGRGeometryH );
159 double CPL_DLL OGR_G_Length( OGRGeometryH );
160 double CPL_DLL OGR_G_Area( OGRGeometryH );
173 int CPL_DLL OGR_G_Intersect( OGRGeometryH, OGRGeometryH );
174 int CPL_DLL OGR_G_Equal( OGRGeometryH, OGRGeometryH );
176 double CPL_DLL OGR_G_GetArea( OGRGeometryH );
180 int CPL_DLL OGR_G_GetPointCount( OGRGeometryH );
181 int CPL_DLL OGR_G_GetPoints( OGRGeometryH hGeom,
182 void* pabyX,
int nXStride,
183 void* pabyY,
int nYStride,
184 void* pabyZ,
int nZStride);
185 double CPL_DLL OGR_G_GetX( OGRGeometryH,
int );
186 double CPL_DLL OGR_G_GetY( OGRGeometryH,
int );
187 double CPL_DLL OGR_G_GetZ( OGRGeometryH,
int );
188 void CPL_DLL OGR_G_GetPoint( OGRGeometryH,
int iPoint,
189 double *,
double *,
double * );
190 void CPL_DLL OGR_G_SetPoint( OGRGeometryH,
int iPoint,
191 double,
double,
double );
192 void CPL_DLL OGR_G_SetPoint_2D( OGRGeometryH,
int iPoint,
194 void CPL_DLL OGR_G_AddPoint( OGRGeometryH,
double,
double,
double );
195 void CPL_DLL OGR_G_AddPoint_2D( OGRGeometryH,
double,
double );
199 int CPL_DLL OGR_G_GetGeometryCount( OGRGeometryH );
200 OGRGeometryH CPL_DLL OGR_G_GetGeometryRef( OGRGeometryH,
int );
201 OGRErr CPL_DLL OGR_G_AddGeometry( OGRGeometryH, OGRGeometryH );
202 OGRErr CPL_DLL OGR_G_AddGeometryDirectly( OGRGeometryH, OGRGeometryH );
203 OGRErr CPL_DLL OGR_G_RemoveGeometry( OGRGeometryH,
int,
int );
212 int bGenerate_DB2_V72_BYTE_ORDER );
214 int CPL_DLL OGRGetGenerate_DB2_V72_BYTE_ORDER(
void);
221 typedef struct OGRFieldDefnHS *OGRFieldDefnH;
222 typedef struct OGRFeatureDefnHS *OGRFeatureDefnH;
223 typedef struct OGRFeatureHS *OGRFeatureH;
224 typedef struct OGRStyleTableHS *OGRStyleTableH;
226 typedef void *OGRFieldDefnH;
227 typedef void *OGRFeatureDefnH;
228 typedef void *OGRFeatureH;
229 typedef void *OGRStyleTableH;
235 void CPL_DLL OGR_Fld_Destroy( OGRFieldDefnH );
237 void CPL_DLL OGR_Fld_SetName( OGRFieldDefnH, const
char * );
238 const
char CPL_DLL *OGR_Fld_GetNameRef( OGRFieldDefnH );
240 void CPL_DLL OGR_Fld_SetType( OGRFieldDefnH,
OGRFieldType );
243 int CPL_DLL OGR_Fld_GetWidth( OGRFieldDefnH );
244 void CPL_DLL OGR_Fld_SetWidth( OGRFieldDefnH,
int );
245 int CPL_DLL OGR_Fld_GetPrecision( OGRFieldDefnH );
246 void CPL_DLL OGR_Fld_SetPrecision( OGRFieldDefnH,
int );
247 void CPL_DLL OGR_Fld_Set( OGRFieldDefnH, const
char *, OGRFieldType,
248 int,
int, OGRJustification );
249 int CPL_DLL OGR_Fld_IsIgnored( OGRFieldDefnH hDefn );
250 void CPL_DLL OGR_Fld_SetIgnored( OGRFieldDefnH hDefn,
int );
252 const
char CPL_DLL *OGR_GetFieldTypeName( OGRFieldType );
256 OGRFeatureDefnH CPL_DLL OGR_FD_Create( const
char * ) CPL_WARN_UNUSED_RESULT;
257 void CPL_DLL OGR_FD_Destroy( OGRFeatureDefnH );
258 void CPL_DLL OGR_FD_Release( OGRFeatureDefnH );
259 const
char CPL_DLL *OGR_FD_GetName( OGRFeatureDefnH );
260 int CPL_DLL OGR_FD_GetFieldCount( OGRFeatureDefnH );
261 OGRFieldDefnH CPL_DLL OGR_FD_GetFieldDefn( OGRFeatureDefnH,
int );
262 int CPL_DLL OGR_FD_GetFieldIndex( OGRFeatureDefnH, const
char * );
263 void CPL_DLL OGR_FD_AddFieldDefn( OGRFeatureDefnH, OGRFieldDefnH );
264 OGRErr CPL_DLL OGR_FD_DeleteFieldDefn( OGRFeatureDefnH hDefn,
int iField );
265 OGRErr CPL_DLL OGR_FD_ReorderFieldDefns( OGRFeatureDefnH hDefn,
int* panMap );
268 int CPL_DLL OGR_FD_IsGeometryIgnored( OGRFeatureDefnH );
269 void CPL_DLL OGR_FD_SetGeometryIgnored( OGRFeatureDefnH,
int );
270 int CPL_DLL OGR_FD_IsStyleIgnored( OGRFeatureDefnH );
271 void CPL_DLL OGR_FD_SetStyleIgnored( OGRFeatureDefnH,
int );
272 int CPL_DLL OGR_FD_Reference( OGRFeatureDefnH );
273 int CPL_DLL OGR_FD_Dereference( OGRFeatureDefnH );
274 int CPL_DLL OGR_FD_GetReferenceCount( OGRFeatureDefnH );
278 OGRFeatureH CPL_DLL OGR_F_Create( OGRFeatureDefnH ) CPL_WARN_UNUSED_RESULT;
279 void CPL_DLL OGR_F_Destroy( OGRFeatureH );
280 OGRFeatureDefnH CPL_DLL OGR_F_GetDefnRef( OGRFeatureH );
282 OGRErr CPL_DLL OGR_F_SetGeometryDirectly( OGRFeatureH, OGRGeometryH );
283 OGRErr CPL_DLL OGR_F_SetGeometry( OGRFeatureH, OGRGeometryH );
284 OGRGeometryH CPL_DLL OGR_F_GetGeometryRef( OGRFeatureH );
285 OGRGeometryH CPL_DLL OGR_F_StealGeometry( OGRFeatureH );
286 OGRFeatureH CPL_DLL OGR_F_Clone( OGRFeatureH );
287 int CPL_DLL OGR_F_Equal( OGRFeatureH, OGRFeatureH );
289 int CPL_DLL OGR_F_GetFieldCount( OGRFeatureH );
290 OGRFieldDefnH CPL_DLL OGR_F_GetFieldDefnRef( OGRFeatureH,
int );
291 int CPL_DLL OGR_F_GetFieldIndex( OGRFeatureH, const
char * );
293 int CPL_DLL OGR_F_IsFieldSet( OGRFeatureH,
int );
294 void CPL_DLL OGR_F_UnsetField( OGRFeatureH,
int );
295 OGRField CPL_DLL *OGR_F_GetRawFieldRef( OGRFeatureH,
int );
297 int CPL_DLL OGR_F_GetFieldAsInteger( OGRFeatureH,
int );
298 double CPL_DLL OGR_F_GetFieldAsDouble( OGRFeatureH,
int );
299 const
char CPL_DLL *OGR_F_GetFieldAsString( OGRFeatureH,
int );
300 const
int CPL_DLL *OGR_F_GetFieldAsIntegerList( OGRFeatureH,
int,
int * );
301 const
double CPL_DLL *OGR_F_GetFieldAsDoubleList( OGRFeatureH,
int,
int * );
302 char CPL_DLL **OGR_F_GetFieldAsStringList( OGRFeatureH,
int );
303 GByte CPL_DLL *OGR_F_GetFieldAsBinary( OGRFeatureH,
int,
int * );
304 int CPL_DLL OGR_F_GetFieldAsDateTime( OGRFeatureH,
int,
int *,
int *,
int *,
305 int *,
int *,
int *,
int * );
307 void CPL_DLL OGR_F_SetFieldInteger( OGRFeatureH,
int,
int );
308 void CPL_DLL OGR_F_SetFieldDouble( OGRFeatureH,
int,
double );
309 void CPL_DLL OGR_F_SetFieldString( OGRFeatureH,
int, const
char * );
310 void CPL_DLL OGR_F_SetFieldIntegerList( OGRFeatureH,
int,
int,
int * );
311 void CPL_DLL OGR_F_SetFieldDoubleList( OGRFeatureH,
int,
int,
double * );
312 void CPL_DLL OGR_F_SetFieldStringList( OGRFeatureH,
int,
char ** );
313 void CPL_DLL OGR_F_SetFieldRaw( OGRFeatureH,
int,
OGRField * );
314 void CPL_DLL OGR_F_SetFieldBinary( OGRFeatureH,
int,
int, GByte * );
315 void CPL_DLL OGR_F_SetFieldDateTime( OGRFeatureH,
int,
316 int,
int,
int,
int,
int,
int,
int );
318 long CPL_DLL OGR_F_GetFID( OGRFeatureH );
319 OGRErr CPL_DLL OGR_F_SetFID( OGRFeatureH,
long );
320 void CPL_DLL OGR_F_DumpReadable( OGRFeatureH, FILE * );
321 OGRErr CPL_DLL OGR_F_SetFrom( OGRFeatureH, OGRFeatureH,
int );
322 OGRErr CPL_DLL OGR_F_SetFromWithMap( OGRFeatureH, OGRFeatureH,
int ,
int * );
324 const
char CPL_DLL *OGR_F_GetStyleString( OGRFeatureH );
325 void CPL_DLL OGR_F_SetStyleString( OGRFeatureH, const
char * );
326 void CPL_DLL OGR_F_SetStyleStringDirectly( OGRFeatureH,
char * );
327 OGRStyleTableH CPL_DLL OGR_F_GetStyleTable( OGRFeatureH );
328 void CPL_DLL OGR_F_SetStyleTableDirectly( OGRFeatureH, OGRStyleTableH );
329 void CPL_DLL OGR_F_SetStyleTable( OGRFeatureH, OGRStyleTableH );
336 typedef struct OGRLayerHS *OGRLayerH;
337 typedef struct OGRDataSourceHS *OGRDataSourceH;
338 typedef struct OGRDriverHS *OGRSFDriverH;
340 typedef void *OGRLayerH;
341 typedef void *OGRDataSourceH;
342 typedef void *OGRSFDriverH;
352 double,
double,
double,
double );
370 OGRErr CPL_DLL
OGR_L_AlterFieldDefn( OGRLayerH,
int iField, OGRFieldDefnH hNewFieldDefn,
int nFlags );
374 int CPL_DLL OGR_L_Reference( OGRLayerH );
375 int CPL_DLL OGR_L_Dereference( OGRLayerH );
376 int CPL_DLL OGR_L_GetRefCount( OGRLayerH );
378 GIntBig CPL_DLL OGR_L_GetFeaturesRead( OGRLayerH );
381 OGRStyleTableH CPL_DLL OGR_L_GetStyleTable( OGRLayerH );
382 void CPL_DLL OGR_L_SetStyleTableDirectly( OGRLayerH, OGRStyleTableH );
383 void CPL_DLL OGR_L_SetStyleTable( OGRLayerH, OGRStyleTableH );
396 OGRSpatialReferenceH, OGRwkbGeometryType,
398 OGRLayerH CPL_DLL
OGR_DS_CopyLayer( OGRDataSourceH, OGRLayerH,
const char *,
402 OGRGeometryH,
const char * );
404 int CPL_DLL OGR_DS_Reference( OGRDataSourceH );
405 int CPL_DLL OGR_DS_Dereference( OGRDataSourceH );
406 int CPL_DLL OGR_DS_GetRefCount( OGRDataSourceH );
407 int CPL_DLL OGR_DS_GetSummaryRefCount( OGRDataSourceH );
409 OGRStyleTableH CPL_DLL OGR_DS_GetStyleTable( OGRDataSourceH );
410 void CPL_DLL OGR_DS_SetStyleTableDirectly( OGRDataSourceH, OGRStyleTableH );
411 void CPL_DLL OGR_DS_SetStyleTable( OGRDataSourceH, OGRStyleTableH );
416 OGRDataSourceH CPL_DLL
OGR_Dr_Open( OGRSFDriverH,
const char *,
int ) CPL_WARN_UNUSED_RESULT;
417 int CPL_DLL OGR_Dr_TestCapability( OGRSFDriverH, const
char * );
418 OGRDataSourceH CPL_DLL OGR_Dr_CreateDataSource( OGRSFDriverH, const
char *,
419 char ** ) CPL_WARN_UNUSED_RESULT;
420 OGRDataSourceH CPL_DLL OGR_Dr_CopyDataSource( OGRSFDriverH, OGRDataSourceH,
421 const
char *,
char ** ) CPL_WARN_UNUSED_RESULT;
422 OGRErr CPL_DLL OGR_Dr_DeleteDataSource( OGRSFDriverH, const
char * );
426 OGRDataSourceH CPL_DLL OGROpen( const
char *,
int, OGRSFDriverH * ) CPL_WARN_UNUSED_RESULT;
427 OGRDataSourceH CPL_DLL OGROpenShared( const
char *,
int, OGRSFDriverH * ) CPL_WARN_UNUSED_RESULT;
428 OGRErr CPL_DLL OGRReleaseDataSource( OGRDataSourceH );
429 void CPL_DLL OGRRegisterDriver( OGRSFDriverH );
430 void CPL_DLL OGRDeregisterDriver( OGRSFDriverH );
431 int CPL_DLL OGRGetDriverCount(
void);
432 OGRSFDriverH CPL_DLL OGRGetDriver(
int );
433 OGRSFDriverH CPL_DLL OGRGetDriverByName( const
char * );
434 int CPL_DLL OGRGetOpenDSCount(
void);
435 OGRDataSourceH CPL_DLL OGRGetOpenDS(
int iDS );
439 void CPL_DLL OGRRegisterAll(
void);
440 void CPL_DLL OGRCleanupAll(
void);
447 typedef struct OGRStyleMgrHS *OGRStyleMgrH;
448 typedef struct OGRStyleToolHS *OGRStyleToolH;
450 typedef void *OGRStyleMgrH;
451 typedef void *OGRStyleToolH;
456 OGRStyleMgrH CPL_DLL
OGR_SM_Create(OGRStyleTableH hStyleTable) CPL_WARN_UNUSED_RESULT;
462 const char *pszStyleString);
464 const char *pszStyleString);
465 OGRStyleToolH CPL_DLL
OGR_SM_GetPart(OGRStyleMgrH hSM,
int nPartId,
466 const char *pszStyleString);
468 int CPL_DLL
OGR_SM_AddStyle(OGRStyleMgrH hSM,
const char *pszStyleName,
469 const char *pszStyleString);
480 double dfGroundPaperScale);
482 const char CPL_DLL *
OGR_ST_GetParamStr(OGRStyleToolH hST,
int eParam,
int *bValueIsNull);
491 int *pnRed,
int *pnGreen,
int *pnBlue,
497 void CPL_DLL OGR_STBL_Destroy( OGRStyleTableH hSTBL );
498 int CPL_DLL OGR_STBL_SaveStyleTable( OGRStyleTableH hStyleTable,
499 const
char *pszFilename );
500 int CPL_DLL OGR_STBL_LoadStyleTable( OGRStyleTableH hStyleTable,
501 const
char *pszFilename );
502 const
char CPL_DLL *OGR_STBL_Find( OGRStyleTableH hStyleTable, const
char *pszName );
503 void CPL_DLL OGR_STBL_ResetStyleStringReading( OGRStyleTableH hStyleTable );
504 const
char CPL_DLL *OGR_STBL_GetNextStyle( OGRStyleTableH hStyleTable);
505 const
char CPL_DLL *OGR_STBL_GetLastStyleName( OGRStyleTableH hStyleTable);