00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132 #ifndef _OGR_API_H_INCLUDED
00133 #define _OGR_API_H_INCLUDED
00134
00144 #include "ogr_core.h"
00145
00146 CPL_C_START
00147
00148
00149
00150
00151 typedef void *OGRGeometryH;
00152
00153 #ifndef _DEFINED_OGRSpatialReferenceH
00154 #define _DEFINED_OGRSpatialReferenceH
00155
00156 typedef void *OGRSpatialReferenceH;
00157 typedef void *OGRCoordinateTransformationH;
00158
00159 #endif
00160
00161 struct _CPLXMLNode;
00162
00163
00164
00165 OGRErr CPL_DLL OGR_G_CreateFromWkb( unsigned char *, OGRSpatialReferenceH,
00166 OGRGeometryH *, int );
00167 OGRErr CPL_DLL OGR_G_CreateFromWkt( char **, OGRSpatialReferenceH,
00168 OGRGeometryH * );
00169 void CPL_DLL OGR_G_DestroyGeometry( OGRGeometryH );
00170 OGRGeometryH CPL_DLL OGR_G_CreateGeometry( OGRwkbGeometryType );
00171
00172 int CPL_DLL OGR_G_GetDimension( OGRGeometryH );
00173 int CPL_DLL OGR_G_GetCoordinateDimension( OGRGeometryH );
00174 void CPL_DLL OGR_G_SetCoordinateDimension( OGRGeometryH, int );
00175 OGRGeometryH CPL_DLL OGR_G_Clone( OGRGeometryH );
00176 void CPL_DLL OGR_G_GetEnvelope( OGRGeometryH, OGREnvelope * );
00177 OGRErr CPL_DLL OGR_G_ImportFromWkb( OGRGeometryH, unsigned char *, int );
00178 OGRErr CPL_DLL OGR_G_ExportToWkb( OGRGeometryH, OGRwkbByteOrder, unsigned char*);
00179 int CPL_DLL OGR_G_WkbSize( OGRGeometryH hGeom );
00180 OGRErr CPL_DLL OGR_G_ImportFromWkt( OGRGeometryH, char ** );
00181 OGRErr CPL_DLL OGR_G_ExportToWkt( OGRGeometryH, char ** );
00182 OGRwkbGeometryType CPL_DLL OGR_G_GetGeometryType( OGRGeometryH );
00183 const char CPL_DLL *OGR_G_GetGeometryName( OGRGeometryH );
00184 void CPL_DLL OGR_G_DumpReadable( OGRGeometryH, FILE *, const char * );
00185 void CPL_DLL OGR_G_FlattenTo2D( OGRGeometryH );
00186 void CPL_DLL OGR_G_CloseRings( OGRGeometryH );
00187
00188 OGRGeometryH CPL_DLL OGR_G_CreateFromGML( const char * );
00189 char CPL_DLL *OGR_G_ExportToGML( OGRGeometryH );
00190
00191 #if defined(_CPL_MINIXML_H_INCLUDED)
00192 OGRGeometryH CPL_DLL OGR_G_CreateFromGMLTree( const CPLXMLNode * );
00193 CPLXMLNode CPL_DLL *OGR_G_ExportToGMLTree( OGRGeometryH );
00194 CPLXMLNode CPL_DLL *OGR_G_ExportEnvelopeToGMLTree( OGRGeometryH );
00195 #endif
00196
00197 void CPL_DLL OGR_G_AssignSpatialReference( OGRGeometryH,
00198 OGRSpatialReferenceH );
00199 OGRSpatialReferenceH CPL_DLL OGR_G_GetSpatialReference( OGRGeometryH );
00200 OGRErr CPL_DLL OGR_G_Transform( OGRGeometryH, OGRCoordinateTransformationH );
00201 OGRErr CPL_DLL OGR_G_TransformTo( OGRGeometryH, OGRSpatialReferenceH );
00202
00203 int CPL_DLL OGR_G_Intersects( OGRGeometryH, OGRGeometryH );
00204 int CPL_DLL OGR_G_Equals( OGRGeometryH, OGRGeometryH );
00205 int CPL_DLL OGR_G_Disjoint( OGRGeometryH, OGRGeometryH );
00206 int CPL_DLL OGR_G_Touches( OGRGeometryH, OGRGeometryH );
00207 int CPL_DLL OGR_G_Crosses( OGRGeometryH, OGRGeometryH );
00208 int CPL_DLL OGR_G_Within( OGRGeometryH, OGRGeometryH );
00209 int CPL_DLL OGR_G_Contains( OGRGeometryH, OGRGeometryH );
00210 int CPL_DLL OGR_G_Overlaps( OGRGeometryH, OGRGeometryH );
00211
00212 OGRGeometryH CPL_DLL OGR_G_GetBoundary( OGRGeometryH );
00213 OGRGeometryH CPL_DLL OGR_G_ConvexHull( OGRGeometryH );
00214 OGRGeometryH CPL_DLL OGR_G_Buffer( OGRGeometryH, double, int );
00215 OGRGeometryH CPL_DLL OGR_G_Intersection( OGRGeometryH, OGRGeometryH );
00216 OGRGeometryH CPL_DLL OGR_G_Union( OGRGeometryH, OGRGeometryH );
00217 OGRGeometryH CPL_DLL OGR_G_Difference( OGRGeometryH, OGRGeometryH );
00218 OGRGeometryH CPL_DLL OGR_G_SymmetricDifference( OGRGeometryH, OGRGeometryH );
00219 double CPL_DLL OGR_G_Distance( OGRGeometryH, OGRGeometryH );
00220
00221 double CPL_DLL OGR_G_GetArea( OGRGeometryH );
00222 int CPL_DLL OGR_G_Centroid( OGRGeometryH, OGRGeometryH );
00223
00224 void CPL_DLL OGR_G_Empty( OGRGeometryH );
00225
00226
00227 int CPL_DLL OGR_G_Intersect( OGRGeometryH, OGRGeometryH );
00228 int CPL_DLL OGR_G_Equal( OGRGeometryH, OGRGeometryH );
00229
00230
00231 int CPL_DLL OGR_G_GetPointCount( OGRGeometryH );
00232 double CPL_DLL OGR_G_GetX( OGRGeometryH, int );
00233 double CPL_DLL OGR_G_GetY( OGRGeometryH, int );
00234 double CPL_DLL OGR_G_GetZ( OGRGeometryH, int );
00235 void CPL_DLL OGR_G_GetPoint( OGRGeometryH, int iPoint,
00236 double *, double *, double * );
00237 void CPL_DLL OGR_G_SetPoint( OGRGeometryH, int iPoint,
00238 double, double, double );
00239 void CPL_DLL OGR_G_SetPoint_2D( OGRGeometryH, int iPoint,
00240 double, double );
00241 void CPL_DLL OGR_G_AddPoint( OGRGeometryH, double, double, double );
00242 void CPL_DLL OGR_G_AddPoint_2D( OGRGeometryH, double, double );
00243
00244
00245
00246 int CPL_DLL OGR_G_GetGeometryCount( OGRGeometryH );
00247 OGRGeometryH CPL_DLL OGR_G_GetGeometryRef( OGRGeometryH, int );
00248 OGRErr CPL_DLL OGR_G_AddGeometry( OGRGeometryH, OGRGeometryH );
00249 OGRErr CPL_DLL OGR_G_AddGeometryDirectly( OGRGeometryH, OGRGeometryH );
00250 OGRErr CPL_DLL OGR_G_RemoveGeometry( OGRGeometryH, int, int );
00251
00252 OGRGeometryH CPL_DLL OGRBuildPolygonFromEdges( OGRGeometryH hLinesAsCollection,
00253 int bBestEffort,
00254 int bAutoClose,
00255 double dfTolerance,
00256 OGRErr * peErr );
00257
00258 OGRErr CPL_DLL OGRSetGenerate_DB2_V72_BYTE_ORDER(
00259 int bGenerate_DB2_V72_BYTE_ORDER );
00260
00261 int CPL_DLL OGRGetGenerate_DB2_V72_BYTE_ORDER(void);
00262
00263
00264
00265
00266
00267 typedef void *OGRFieldDefnH;
00268 typedef void *OGRFeatureDefnH;
00269 typedef void *OGRFeatureH;
00270
00271
00272
00273 OGRFieldDefnH CPL_DLL OGR_Fld_Create( const char *, OGRFieldType );
00274 void CPL_DLL OGR_Fld_Destroy( OGRFieldDefnH );
00275
00276 void CPL_DLL OGR_Fld_SetName( OGRFieldDefnH, const char * );
00277 const char CPL_DLL *OGR_Fld_GetNameRef( OGRFieldDefnH );
00278 OGRFieldType CPL_DLL OGR_Fld_GetType( OGRFieldDefnH );
00279 void CPL_DLL OGR_Fld_SetType( OGRFieldDefnH, OGRFieldType );
00280 OGRJustification CPL_DLL OGR_Fld_GetJustify( OGRFieldDefnH );
00281 void CPL_DLL OGR_Fld_SetJustify( OGRFieldDefnH, OGRJustification );
00282 int CPL_DLL OGR_Fld_GetWidth( OGRFieldDefnH );
00283 void CPL_DLL OGR_Fld_SetWidth( OGRFieldDefnH, int );
00284 int CPL_DLL OGR_Fld_GetPrecision( OGRFieldDefnH );
00285 void CPL_DLL OGR_Fld_SetPrecision( OGRFieldDefnH, int );
00286 void CPL_DLL OGR_Fld_Set( OGRFieldDefnH, const char *, OGRFieldType,
00287 int, int, OGRJustification );
00288
00289 const char CPL_DLL *OGR_GetFieldTypeName( OGRFieldType );
00290
00291
00292
00293 OGRFeatureDefnH CPL_DLL OGR_FD_Create( const char * );
00294 void CPL_DLL OGR_FD_Destroy( OGRFeatureDefnH );
00295 void CPL_DLL OGR_FD_Release( OGRFeatureDefnH );
00296 const char CPL_DLL *OGR_FD_GetName( OGRFeatureDefnH );
00297 int CPL_DLL OGR_FD_GetFieldCount( OGRFeatureDefnH );
00298 OGRFieldDefnH CPL_DLL OGR_FD_GetFieldDefn( OGRFeatureDefnH, int );
00299 int CPL_DLL OGR_FD_GetFieldIndex( OGRFeatureDefnH, const char * );
00300 void CPL_DLL OGR_FD_AddFieldDefn( OGRFeatureDefnH, OGRFieldDefnH );
00301 OGRwkbGeometryType CPL_DLL OGR_FD_GetGeomType( OGRFeatureDefnH );
00302 void CPL_DLL OGR_FD_SetGeomType( OGRFeatureDefnH, OGRwkbGeometryType );
00303 int CPL_DLL OGR_FD_Reference( OGRFeatureDefnH );
00304 int CPL_DLL OGR_FD_Dereference( OGRFeatureDefnH );
00305 int CPL_DLL OGR_FD_GetReferenceCount( OGRFeatureDefnH );
00306
00307
00308
00309 OGRFeatureH CPL_DLL OGR_F_Create( OGRFeatureDefnH );
00310 void CPL_DLL OGR_F_Destroy( OGRFeatureH );
00311 OGRFeatureDefnH CPL_DLL OGR_F_GetDefnRef( OGRFeatureH );
00312
00313 OGRErr CPL_DLL OGR_F_SetGeometryDirectly( OGRFeatureH, OGRGeometryH );
00314 OGRErr CPL_DLL OGR_F_SetGeometry( OGRFeatureH, OGRGeometryH );
00315 OGRGeometryH CPL_DLL OGR_F_GetGeometryRef( OGRFeatureH );
00316 OGRFeatureH CPL_DLL OGR_F_Clone( OGRFeatureH );
00317 int CPL_DLL OGR_F_Equal( OGRFeatureH, OGRFeatureH );
00318
00319 int CPL_DLL OGR_F_GetFieldCount( OGRFeatureH );
00320 OGRFieldDefnH CPL_DLL OGR_F_GetFieldDefnRef( OGRFeatureH, int );
00321 int CPL_DLL OGR_F_GetFieldIndex( OGRFeatureH, const char * );
00322
00323 int CPL_DLL OGR_F_IsFieldSet( OGRFeatureH, int );
00324 void CPL_DLL OGR_F_UnsetField( OGRFeatureH, int );
00325 OGRField CPL_DLL *OGR_F_GetRawFieldRef( OGRFeatureH, int );
00326
00327 int CPL_DLL OGR_F_GetFieldAsInteger( OGRFeatureH, int );
00328 double CPL_DLL OGR_F_GetFieldAsDouble( OGRFeatureH, int );
00329 const char CPL_DLL *OGR_F_GetFieldAsString( OGRFeatureH, int );
00330 const int CPL_DLL *OGR_F_GetFieldAsIntegerList( OGRFeatureH, int, int * );
00331 const double CPL_DLL *OGR_F_GetFieldAsDoubleList( OGRFeatureH, int, int * );
00332 char CPL_DLL **OGR_F_GetFieldAsStringList( OGRFeatureH, int );
00333 GByte CPL_DLL *OGR_F_GetFieldAsBinary( OGRFeatureH, int, int * );
00334 int CPL_DLL OGR_F_GetFieldAsDateTime( OGRFeatureH, int, int *, int *, int *,
00335 int *, int *, int *, int * );
00336
00337 void CPL_DLL OGR_F_SetFieldInteger( OGRFeatureH, int, int );
00338 void CPL_DLL OGR_F_SetFieldDouble( OGRFeatureH, int, double );
00339 void CPL_DLL OGR_F_SetFieldString( OGRFeatureH, int, const char * );
00340 void CPL_DLL OGR_F_SetFieldIntegerList( OGRFeatureH, int, int, int * );
00341 void CPL_DLL OGR_F_SetFieldDoubleList( OGRFeatureH, int, int, double * );
00342 void CPL_DLL OGR_F_SetFieldStringList( OGRFeatureH, int, char ** );
00343 void CPL_DLL OGR_F_SetFieldRaw( OGRFeatureH, int, OGRField * );
00344 void CPL_DLL OGR_F_SetFieldBinary( OGRFeatureH, int, int, GByte * );
00345 void CPL_DLL OGR_F_SetFieldDateTime( OGRFeatureH, int,
00346 int, int, int, int, int, int, int );
00347
00348 long CPL_DLL OGR_F_GetFID( OGRFeatureH );
00349 OGRErr CPL_DLL OGR_F_SetFID( OGRFeatureH, long );
00350 void CPL_DLL OGR_F_DumpReadable( OGRFeatureH, FILE * );
00351 OGRErr CPL_DLL OGR_F_SetFrom( OGRFeatureH, OGRFeatureH, int );
00352
00353 const char CPL_DLL *OGR_F_GetStyleString( OGRFeatureH );
00354 void CPL_DLL OGR_F_SetStyleString( OGRFeatureH, const char * );
00355
00356
00357
00358
00359
00360 typedef void *OGRLayerH;
00361 typedef void *OGRDataSourceH;
00362 typedef void *OGRSFDriverH;
00363
00364
00365
00366 OGRGeometryH CPL_DLL OGR_L_GetSpatialFilter( OGRLayerH );
00367 void CPL_DLL OGR_L_SetSpatialFilter( OGRLayerH, OGRGeometryH );
00368 void CPL_DLL OGR_L_SetSpatialFilterRect( OGRLayerH,
00369 double, double, double, double );
00370 OGRErr CPL_DLL OGR_L_SetAttributeFilter( OGRLayerH, const char * );
00371 void CPL_DLL OGR_L_ResetReading( OGRLayerH );
00372 OGRFeatureH CPL_DLL OGR_L_GetNextFeature( OGRLayerH );
00373 OGRErr CPL_DLL OGR_L_SetNextByIndex( OGRLayerH, long );
00374 OGRFeatureH CPL_DLL OGR_L_GetFeature( OGRLayerH, long );
00375 OGRErr CPL_DLL OGR_L_SetFeature( OGRLayerH, OGRFeatureH );
00376 OGRErr CPL_DLL OGR_L_CreateFeature( OGRLayerH, OGRFeatureH );
00377 OGRErr CPL_DLL OGR_L_DeleteFeature( OGRLayerH, long );
00378 OGRFeatureDefnH CPL_DLL OGR_L_GetLayerDefn( OGRLayerH );
00379 OGRSpatialReferenceH CPL_DLL OGR_L_GetSpatialRef( OGRLayerH );
00380 int CPL_DLL OGR_L_GetFeatureCount( OGRLayerH, int );
00381 OGRErr CPL_DLL OGR_L_GetExtent( OGRLayerH, OGREnvelope *, int );
00382 int CPL_DLL OGR_L_TestCapability( OGRLayerH, const char * );
00383 OGRErr CPL_DLL OGR_L_CreateField( OGRLayerH, OGRFieldDefnH, int );
00384 OGRErr CPL_DLL OGR_L_StartTransaction( OGRLayerH );
00385 OGRErr CPL_DLL OGR_L_CommitTransaction( OGRLayerH );
00386 OGRErr CPL_DLL OGR_L_RollbackTransaction( OGRLayerH );
00387 int CPL_DLL OGR_L_Reference( OGRLayerH );
00388 int CPL_DLL OGR_L_Dereference( OGRLayerH );
00389 int CPL_DLL OGR_L_GetRefCount( OGRLayerH );
00390 OGRErr CPL_DLL OGR_L_SyncToDisk( OGRLayerH );
00391 GIntBig CPL_DLL OGR_L_GetFeaturesRead( OGRLayerH );
00392 const char CPL_DLL *OGR_L_GetFIDColumn( OGRLayerH );
00393 const char CPL_DLL *OGR_L_GetGeometryColumn( OGRLayerH );
00394
00395
00396 void CPL_DLL OGR_DS_Destroy( OGRDataSourceH );
00397 const char CPL_DLL *OGR_DS_GetName( OGRDataSourceH );
00398 int CPL_DLL OGR_DS_GetLayerCount( OGRDataSourceH );
00399 OGRLayerH CPL_DLL OGR_DS_GetLayer( OGRDataSourceH, int );
00400 OGRLayerH CPL_DLL OGR_DS_GetLayerByName( OGRDataSourceH, const char * );
00401 OGRErr CPL_DLL OGR_DS_DeleteLayer( OGRDataSourceH, int );
00402 OGRSFDriverH CPL_DLL OGR_DS_GetDriver( OGRDataSourceH );
00403 OGRLayerH CPL_DLL OGR_DS_CreateLayer( OGRDataSourceH, const char *,
00404 OGRSpatialReferenceH, OGRwkbGeometryType,
00405 char ** );
00406 OGRLayerH CPL_DLL OGR_DS_CopyLayer( OGRDataSourceH, OGRLayerH, const char *,
00407 char ** );
00408 int CPL_DLL OGR_DS_TestCapability( OGRDataSourceH, const char * );
00409 OGRLayerH CPL_DLL OGR_DS_ExecuteSQL( OGRDataSourceH, const char *,
00410 OGRGeometryH, const char * );
00411 void CPL_DLL OGR_DS_ReleaseResultSet( OGRDataSourceH, OGRLayerH );
00412 int CPL_DLL OGR_DS_Reference( OGRDataSourceH );
00413 int CPL_DLL OGR_DS_Dereference( OGRDataSourceH );
00414 int CPL_DLL OGR_DS_GetRefCount( OGRDataSourceH );
00415 int CPL_DLL OGR_DS_GetSummaryRefCount( OGRDataSourceH );
00416 OGRErr CPL_DLL OGR_DS_SyncToDisk( OGRDataSourceH );
00417
00418
00419
00420 const char CPL_DLL *OGR_Dr_GetName( OGRSFDriverH );
00421 OGRDataSourceH CPL_DLL OGR_Dr_Open( OGRSFDriverH, const char *, int );
00422 int CPL_DLL OGR_Dr_TestCapability( OGRSFDriverH, const char * );
00423 OGRDataSourceH CPL_DLL OGR_Dr_CreateDataSource( OGRSFDriverH, const char *,
00424 char ** );
00425 OGRDataSourceH CPL_DLL OGR_Dr_CopyDataSource( OGRSFDriverH, OGRDataSourceH,
00426 const char *, char ** );
00427 OGRErr CPL_DLL OGR_Dr_DeleteDataSource( OGRSFDriverH, const char * );
00428
00429
00430
00431 OGRDataSourceH CPL_DLL OGROpen( const char *, int, OGRSFDriverH * );
00432 OGRDataSourceH CPL_DLL OGROpenShared( const char *, int, OGRSFDriverH * );
00433 OGRErr CPL_DLL OGRReleaseDataSource( OGRDataSourceH );
00434 void CPL_DLL OGRRegisterDriver( OGRSFDriverH );
00435 int CPL_DLL OGRGetDriverCount(void);
00436 OGRSFDriverH CPL_DLL OGRGetDriver( int );
00437 OGRSFDriverH CPL_DLL OGRGetDriverByName( const char * );
00438 int CPL_DLL OGRGetOpenDSCount(void);
00439 OGRDataSourceH CPL_DLL OGRGetOpenDS( int iDS );
00440
00441
00442
00443 void CPL_DLL OGRRegisterAll(void);
00444 void CPL_DLL OGRCleanupAll(void);
00445
00446 CPL_C_END
00447
00448 #endif
00449
00450