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