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