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