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 #ifndef _OGR_API_H_INCLUDED
00118 #define _OGR_API_H_INCLUDED
00119
00129 #include "ogr_core.h"
00130
00131 CPL_C_START
00132
00133
00134
00135
00136 typedef void *OGRGeometryH;
00137
00138 #ifndef _DEFINED_OGRSpatialReferenceH
00139 #define _DEFINED_OGRSpatialReferenceH
00140
00141 typedef void *OGRSpatialReferenceH;
00142 typedef void *OGRCoordinateTransformationH;
00143
00144 #endif
00145
00146 struct _CPLXMLNode;
00147
00148
00149
00150 OGRErr CPL_DLL OGR_G_CreateFromWkb( unsigned char *, OGRSpatialReferenceH,
00151 OGRGeometryH *, int );
00152 OGRErr CPL_DLL OGR_G_CreateFromWkt( char **, OGRSpatialReferenceH,
00153 OGRGeometryH * );
00154 void CPL_DLL OGR_G_DestroyGeometry( OGRGeometryH );
00155 OGRGeometryH CPL_DLL OGR_G_CreateGeometry( OGRwkbGeometryType );
00156
00157 int CPL_DLL OGR_G_GetDimension( OGRGeometryH );
00158 int CPL_DLL OGR_G_GetCoordinateDimension( OGRGeometryH );
00159 void CPL_DLL OGR_G_SetCoordinateDimension( OGRGeometryH, int );
00160 OGRGeometryH CPL_DLL OGR_G_Clone( OGRGeometryH );
00161 void CPL_DLL OGR_G_GetEnvelope( OGRGeometryH, OGREnvelope * );
00162 OGRErr CPL_DLL OGR_G_ImportFromWkb( OGRGeometryH, unsigned char *, int );
00163 OGRErr CPL_DLL OGR_G_ExportToWkb( OGRGeometryH, OGRwkbByteOrder, unsigned char*);
00164 int CPL_DLL OGR_G_WkbSize( OGRGeometryH hGeom );
00165 OGRErr CPL_DLL OGR_G_ImportFromWkt( OGRGeometryH, char ** );
00166 OGRErr CPL_DLL OGR_G_ExportToWkt( OGRGeometryH, char ** );
00167 OGRwkbGeometryType CPL_DLL OGR_G_GetGeometryType( OGRGeometryH );
00168 const char CPL_DLL *OGR_G_GetGeometryName( OGRGeometryH );
00169 void CPL_DLL OGR_G_DumpReadable( OGRGeometryH, FILE *, const char * );
00170 void CPL_DLL OGR_G_FlattenTo2D( OGRGeometryH );
00171 void CPL_DLL OGR_G_CloseRings( OGRGeometryH );
00172
00173 OGRGeometryH CPL_DLL OGR_G_CreateFromGML( const char * );
00174 char CPL_DLL *OGR_G_ExportToGML( OGRGeometryH );
00175
00176 #if defined(_CPL_MINIXML_H_INCLUDED)
00177 OGRGeometryH CPL_DLL OGR_G_CreateFromGMLTree( const CPLXMLNode * );
00178 CPLXMLNode CPL_DLL *OGR_G_ExportToGMLTree( OGRGeometryH );
00179 CPLXMLNode CPL_DLL *OGR_G_ExportEnvelopeToGMLTree( OGRGeometryH );
00180 #endif
00181
00182 void CPL_DLL OGR_G_AssignSpatialReference( OGRGeometryH,
00183 OGRSpatialReferenceH );
00184 OGRSpatialReferenceH CPL_DLL OGR_G_GetSpatialReference( OGRGeometryH );
00185 OGRErr CPL_DLL OGR_G_Transform( OGRGeometryH, OGRCoordinateTransformationH );
00186 OGRErr CPL_DLL OGR_G_TransformTo( OGRGeometryH, OGRSpatialReferenceH );
00187
00188 int CPL_DLL OGR_G_Intersects( OGRGeometryH, OGRGeometryH );
00189 int CPL_DLL OGR_G_Equals( OGRGeometryH, OGRGeometryH );
00190 int CPL_DLL OGR_G_Disjoint( OGRGeometryH, OGRGeometryH );
00191 int CPL_DLL OGR_G_Touches( OGRGeometryH, OGRGeometryH );
00192 int CPL_DLL OGR_G_Crosses( OGRGeometryH, OGRGeometryH );
00193 int CPL_DLL OGR_G_Within( OGRGeometryH, OGRGeometryH );
00194 int CPL_DLL OGR_G_Contains( OGRGeometryH, OGRGeometryH );
00195 int CPL_DLL OGR_G_Overlaps( OGRGeometryH, OGRGeometryH );
00196
00197 OGRGeometryH CPL_DLL OGR_G_GetBoundary( OGRGeometryH );
00198 OGRGeometryH CPL_DLL OGR_G_ConvexHull( OGRGeometryH );
00199 OGRGeometryH CPL_DLL OGR_G_Buffer( OGRGeometryH, double, int );
00200 OGRGeometryH CPL_DLL OGR_G_Intersection( OGRGeometryH, OGRGeometryH );
00201 OGRGeometryH CPL_DLL OGR_G_Union( OGRGeometryH, OGRGeometryH );
00202 OGRGeometryH CPL_DLL OGR_G_Difference( OGRGeometryH, OGRGeometryH );
00203 OGRGeometryH CPL_DLL OGR_G_SymmetricDifference( OGRGeometryH, OGRGeometryH );
00204 double CPL_DLL OGR_G_Distance( OGRGeometryH, OGRGeometryH );
00205
00206 double CPL_DLL OGR_G_GetArea( OGRGeometryH );
00207 int CPL_DLL OGR_G_Centroid( OGRGeometryH, OGRGeometryH );
00208
00209 void CPL_DLL OGR_G_Empty( OGRGeometryH );
00210
00211
00212 int CPL_DLL OGR_G_Intersect( OGRGeometryH, OGRGeometryH );
00213 int CPL_DLL OGR_G_Equal( OGRGeometryH, OGRGeometryH );
00214
00215
00216 int CPL_DLL OGR_G_GetPointCount( OGRGeometryH );
00217 double CPL_DLL OGR_G_GetX( OGRGeometryH, int );
00218 double CPL_DLL OGR_G_GetY( OGRGeometryH, int );
00219 double CPL_DLL OGR_G_GetZ( OGRGeometryH, int );
00220 void CPL_DLL OGR_G_GetPoint( OGRGeometryH, int iPoint,
00221 double *, double *, double * );
00222 void CPL_DLL OGR_G_SetPoint( OGRGeometryH, int iPoint,
00223 double, double, double );
00224 void CPL_DLL OGR_G_SetPoint_2D( OGRGeometryH, int iPoint,
00225 double, double );
00226 void CPL_DLL OGR_G_AddPoint( OGRGeometryH, double, double, double );
00227 void CPL_DLL OGR_G_AddPoint_2D( OGRGeometryH, double, double );
00228
00229
00230
00231 int CPL_DLL OGR_G_GetGeometryCount( OGRGeometryH );
00232 OGRGeometryH CPL_DLL OGR_G_GetGeometryRef( OGRGeometryH, int );
00233 OGRErr CPL_DLL OGR_G_AddGeometry( OGRGeometryH, OGRGeometryH );
00234 OGRErr CPL_DLL OGR_G_AddGeometryDirectly( OGRGeometryH, OGRGeometryH );
00235 OGRErr CPL_DLL OGR_G_RemoveGeometry( OGRGeometryH, int, int );
00236
00237 OGRGeometryH CPL_DLL OGRBuildPolygonFromEdges( OGRGeometryH hLinesAsCollection,
00238 int bBestEffort,
00239 int bAutoClose,
00240 double dfTolerance,
00241 OGRErr * peErr );
00242
00243 OGRErr CPL_DLL OGRSetGenerate_DB2_V72_BYTE_ORDER(
00244 int bGenerate_DB2_V72_BYTE_ORDER );
00245
00246 int CPL_DLL OGRGetGenerate_DB2_V72_BYTE_ORDER(void);
00247
00248
00249
00250
00251
00252 typedef void *OGRFieldDefnH;
00253 typedef void *OGRFeatureDefnH;
00254 typedef void *OGRFeatureH;
00255
00256
00257
00258 OGRFieldDefnH CPL_DLL OGR_Fld_Create( const char *, OGRFieldType );
00259 void CPL_DLL OGR_Fld_Destroy( OGRFieldDefnH );
00260
00261 void CPL_DLL OGR_Fld_SetName( OGRFieldDefnH, const char * );
00262 const char CPL_DLL *OGR_Fld_GetNameRef( OGRFieldDefnH );
00263 OGRFieldType CPL_DLL OGR_Fld_GetType( OGRFieldDefnH );
00264 void CPL_DLL OGR_Fld_SetType( OGRFieldDefnH, OGRFieldType );
00265 OGRJustification CPL_DLL OGR_Fld_GetJustify( OGRFieldDefnH );
00266 void CPL_DLL OGR_Fld_SetJustify( OGRFieldDefnH, OGRJustification );
00267 int CPL_DLL OGR_Fld_GetWidth( OGRFieldDefnH );
00268 void CPL_DLL OGR_Fld_SetWidth( OGRFieldDefnH, int );
00269 int CPL_DLL OGR_Fld_GetPrecision( OGRFieldDefnH );
00270 void CPL_DLL OGR_Fld_SetPrecision( OGRFieldDefnH, int );
00271 void CPL_DLL OGR_Fld_Set( OGRFieldDefnH, const char *, OGRFieldType,
00272 int, int, OGRJustification );
00273
00274 const char CPL_DLL *OGR_GetFieldTypeName( OGRFieldType );
00275
00276
00277
00278 OGRFeatureDefnH CPL_DLL OGR_FD_Create( const char * );
00279 void CPL_DLL OGR_FD_Destroy( OGRFeatureDefnH );
00280 void CPL_DLL OGR_FD_Release( OGRFeatureDefnH );
00281 const char CPL_DLL *OGR_FD_GetName( OGRFeatureDefnH );
00282 int CPL_DLL OGR_FD_GetFieldCount( OGRFeatureDefnH );
00283 OGRFieldDefnH CPL_DLL OGR_FD_GetFieldDefn( OGRFeatureDefnH, int );
00284 int CPL_DLL OGR_FD_GetFieldIndex( OGRFeatureDefnH, const char * );
00285 void CPL_DLL OGR_FD_AddFieldDefn( OGRFeatureDefnH, OGRFieldDefnH );
00286 OGRwkbGeometryType CPL_DLL OGR_FD_GetGeomType( OGRFeatureDefnH );
00287 void CPL_DLL OGR_FD_SetGeomType( OGRFeatureDefnH, OGRwkbGeometryType );
00288 int CPL_DLL OGR_FD_Reference( OGRFeatureDefnH );
00289 int CPL_DLL OGR_FD_Dereference( OGRFeatureDefnH );
00290 int CPL_DLL OGR_FD_GetReferenceCount( OGRFeatureDefnH );
00291
00292
00293
00294 OGRFeatureH CPL_DLL OGR_F_Create( OGRFeatureDefnH );
00295 void CPL_DLL OGR_F_Destroy( OGRFeatureH );
00296 OGRFeatureDefnH CPL_DLL OGR_F_GetDefnRef( OGRFeatureH );
00297
00298 OGRErr CPL_DLL OGR_F_SetGeometryDirectly( OGRFeatureH, OGRGeometryH );
00299 OGRErr CPL_DLL OGR_F_SetGeometry( OGRFeatureH, OGRGeometryH );
00300 OGRGeometryH CPL_DLL OGR_F_GetGeometryRef( OGRFeatureH );
00301 OGRFeatureH CPL_DLL OGR_F_Clone( OGRFeatureH );
00302 int CPL_DLL OGR_F_Equal( OGRFeatureH, OGRFeatureH );
00303
00304 int CPL_DLL OGR_F_GetFieldCount( OGRFeatureH );
00305 OGRFieldDefnH CPL_DLL OGR_F_GetFieldDefnRef( OGRFeatureH, int );
00306 int CPL_DLL OGR_F_GetFieldIndex( OGRFeatureH, const char * );
00307
00308 int CPL_DLL OGR_F_IsFieldSet( OGRFeatureH, int );
00309 void CPL_DLL OGR_F_UnsetField( OGRFeatureH, int );
00310 OGRField CPL_DLL *OGR_F_GetRawFieldRef( OGRFeatureH, int );
00311
00312 int CPL_DLL OGR_F_GetFieldAsInteger( OGRFeatureH, int );
00313 double CPL_DLL OGR_F_GetFieldAsDouble( OGRFeatureH, int );
00314 const char CPL_DLL *OGR_F_GetFieldAsString( OGRFeatureH, int );
00315 const int CPL_DLL *OGR_F_GetFieldAsIntegerList( OGRFeatureH, int, int * );
00316 const double CPL_DLL *OGR_F_GetFieldAsDoubleList( OGRFeatureH, int, int * );
00317 char CPL_DLL **OGR_F_GetFieldAsStringList( OGRFeatureH, int );
00318
00319 void CPL_DLL OGR_F_SetFieldInteger( OGRFeatureH, int, int );
00320 void CPL_DLL OGR_F_SetFieldDouble( OGRFeatureH, int, double );
00321 void CPL_DLL OGR_F_SetFieldString( OGRFeatureH, int, const char * );
00322 void CPL_DLL OGR_F_SetFieldIntegerList( OGRFeatureH, int, int, int * );
00323 void CPL_DLL OGR_F_SetFieldDoubleList( OGRFeatureH, int, int, double * );
00324 void CPL_DLL OGR_F_SetFieldStringList( OGRFeatureH, int, char ** );
00325 void CPL_DLL OGR_F_SetFieldRaw( OGRFeatureH, int, OGRField * );
00326
00327 long CPL_DLL OGR_F_GetFID( OGRFeatureH );
00328 OGRErr CPL_DLL OGR_F_SetFID( OGRFeatureH, long );
00329 void CPL_DLL OGR_F_DumpReadable( OGRFeatureH, FILE * );
00330 OGRErr CPL_DLL OGR_F_SetFrom( OGRFeatureH, OGRFeatureH, int );
00331
00332 const char CPL_DLL *OGR_F_GetStyleString( OGRFeatureH );
00333 void CPL_DLL OGR_F_SetStyleString( OGRFeatureH, const char * );
00334
00335
00336
00337
00338
00339 typedef void *OGRLayerH;
00340 typedef void *OGRDataSourceH;
00341 typedef void *OGRSFDriverH;
00342
00343
00344
00345 OGRGeometryH CPL_DLL OGR_L_GetSpatialFilter( OGRLayerH );
00346 void CPL_DLL OGR_L_SetSpatialFilter( OGRLayerH, OGRGeometryH );
00347 void CPL_DLL OGR_L_SetSpatialFilterRect( OGRLayerH,
00348 double, double, double, double );
00349 OGRErr CPL_DLL OGR_L_SetAttributeFilter( OGRLayerH, const char * );
00350 void CPL_DLL OGR_L_ResetReading( OGRLayerH );
00351 OGRFeatureH CPL_DLL OGR_L_GetNextFeature( OGRLayerH );
00352 OGRErr CPL_DLL OGR_L_SetNextByIndex( OGRLayerH, long );
00353 OGRFeatureH CPL_DLL OGR_L_GetFeature( OGRLayerH, long );
00354 OGRErr CPL_DLL OGR_L_SetFeature( OGRLayerH, OGRFeatureH );
00355 OGRErr CPL_DLL OGR_L_CreateFeature( OGRLayerH, OGRFeatureH );
00356 OGRErr CPL_DLL OGR_L_DeleteFeature( OGRLayerH, long );
00357 OGRFeatureDefnH CPL_DLL OGR_L_GetLayerDefn( OGRLayerH );
00358 OGRSpatialReferenceH CPL_DLL OGR_L_GetSpatialRef( OGRLayerH );
00359 int CPL_DLL OGR_L_GetFeatureCount( OGRLayerH, int );
00360 OGRErr CPL_DLL OGR_L_GetExtent( OGRLayerH, OGREnvelope *, int );
00361 int CPL_DLL OGR_L_TestCapability( OGRLayerH, const char * );
00362 OGRErr CPL_DLL OGR_L_CreateField( OGRLayerH, OGRFieldDefnH, int );
00363 OGRErr CPL_DLL OGR_L_StartTransaction( OGRLayerH );
00364 OGRErr CPL_DLL OGR_L_CommitTransaction( OGRLayerH );
00365 OGRErr CPL_DLL OGR_L_RollbackTransaction( OGRLayerH );
00366 int CPL_DLL OGR_L_Reference( OGRLayerH );
00367 int CPL_DLL OGR_L_Dereference( OGRLayerH );
00368 int CPL_DLL OGR_L_GetRefCount( OGRLayerH );
00369 OGRErr CPL_DLL OGR_L_SyncToDisk( OGRLayerH );
00370 GIntBig CPL_DLL OGR_L_GetFeaturesRead( OGRLayerH );
00371
00372
00373
00374 void CPL_DLL OGR_DS_Destroy( OGRDataSourceH );
00375 const char CPL_DLL *OGR_DS_GetName( OGRDataSourceH );
00376 int CPL_DLL OGR_DS_GetLayerCount( OGRDataSourceH );
00377 OGRLayerH CPL_DLL OGR_DS_GetLayer( OGRDataSourceH, int );
00378 OGRLayerH CPL_DLL OGR_DS_GetLayerByName( OGRDataSourceH, const char * );
00379 OGRErr CPL_DLL OGR_DS_DeleteLayer( OGRDataSourceH, int );
00380 OGRLayerH CPL_DLL OGR_DS_CreateLayer( OGRDataSourceH, const char *,
00381 OGRSpatialReferenceH, OGRwkbGeometryType,
00382 char ** );
00383 OGRLayerH CPL_DLL OGR_DS_CopyLayer( OGRDataSourceH, OGRLayerH, const char *,
00384 char ** );
00385 int CPL_DLL OGR_DS_TestCapability( OGRDataSourceH, const char * );
00386 OGRLayerH CPL_DLL OGR_DS_ExecuteSQL( OGRDataSourceH, const char *,
00387 OGRGeometryH, const char * );
00388 void CPL_DLL OGR_DS_ReleaseResultSet( OGRDataSourceH, OGRLayerH );
00389 int CPL_DLL OGR_DS_Reference( OGRDataSourceH );
00390 int CPL_DLL OGR_DS_Dereference( OGRDataSourceH );
00391 int CPL_DLL OGR_DS_GetRefCount( OGRDataSourceH );
00392 int CPL_DLL OGR_DS_GetSummaryRefCount( OGRDataSourceH );
00393 OGRErr CPL_DLL OGR_DS_SyncToDisk( OGRDataSourceH );
00394
00395
00396
00397 const char CPL_DLL *OGR_Dr_GetName( OGRSFDriverH );
00398 OGRDataSourceH CPL_DLL OGR_Dr_Open( OGRSFDriverH, const char *, int );
00399 int CPL_DLL OGR_Dr_TestCapability( OGRSFDriverH, const char * );
00400 OGRDataSourceH CPL_DLL OGR_Dr_CreateDataSource( OGRSFDriverH, const char *,
00401 char ** );
00402 OGRDataSourceH CPL_DLL OGR_Dr_CopyDataSource( OGRSFDriverH, OGRDataSourceH,
00403 const char *, char ** );
00404 OGRErr CPL_DLL OGR_Dr_DeleteDataSource( OGRSFDriverH, const char * );
00405
00406
00407
00408 OGRDataSourceH CPL_DLL OGROpen( const char *, int, OGRSFDriverH * );
00409 OGRDataSourceH CPL_DLL OGROpenShared( const char *, int, OGRSFDriverH * );
00410 OGRErr CPL_DLL OGRReleaseDataSource( OGRDataSourceH );
00411 void CPL_DLL OGRRegisterDriver( OGRSFDriverH );
00412 int CPL_DLL OGRGetDriverCount(void);
00413 OGRSFDriverH CPL_DLL OGRGetDriver( int );
00414 OGRSFDriverH CPL_DLL OGRGetDriverByName( const char * );
00415 int CPL_DLL OGRGetOpenDSCount(void);
00416 OGRDataSourceH CPL_DLL OGRGetOpenDS( int iDS );
00417
00418
00419
00420 void CPL_DLL OGRRegisterAll(void);
00421
00422 CPL_C_END
00423
00424 #endif
00425
00426