⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ogrsf_frmts.h

📁 这是我已经编译好的GDAL1.4的所有文件
💻 H
字号:
/****************************************************************************** * $Id: ogrsf_frmts.h,v 1.61 2006/12/13 18:24:45 dron Exp $ * * Project:  OpenGIS Simple Features Reference Implementation * Purpose:  Classes related to format registration, and file opening. * Author:   Frank Warmerdam, warmerda@home.com * ****************************************************************************** * Copyright (c) 1999,  Les Technologies SoftMap Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. ****************************************************************************** * * $Log: ogrsf_frmts.h,v $ * Revision 1.61  2006/12/13 18:24:45  dron * Added OGRLayer::SetStyleTableDirectly(), OGRDataSource::SetStyleTable() * and OGRDataSource::SetStyleTablDirectly() methods. * * Revision 1.60  2006/12/10 04:59:19  fwarmerdam * Removed extra OGRFME register function. * * Revision 1.59  2006/11/28 15:34:41  osemykin * Added new Informix DataBlade driver (IDB) * * Revision 1.58  2006/06/07 14:39:09  mloskot * Added new KML (Beta) driver to OGR. Thanks to Christopher Condit - the * author of KML drvier. * * Revision 1.57  2006/01/27 00:09:07  fwarmerdam * added Get{FID,Geometry}Column() support * * Revision 1.56  2005/11/22 17:01:09  fwarmerdam * added SDE support * * Revision 1.55  2005/11/10 21:37:28  fwarmerdam * added DXF/DWG support * * Revision 1.54  2005/10/25 19:58:53  fwarmerdam * added driver tracking on datasource * * Revision 1.53  2005/09/05 19:31:45  fwarmerdam * Added PGeo driver. * * Revision 1.52  2005/08/05 15:34:34  fwarmerdam * added grass * * Revision 1.51  2005/07/08 22:10:56  pka * Initial import of OGR Interlis driver * * Revision 1.50  2005/02/22 12:40:37  fwarmerdam * added base OGRLayer spatial filter support * * Revision 1.49  2005/02/02 20:00:01  fwarmerdam * added SetNextByIndex support * * Revision 1.48  2005/01/19 20:29:10  fwarmerdam * added autoloaddrivers on ogrsfdriverregistrar * * Revision 1.47  2005/01/03 22:16:44  fwarmerdam * added OGRLayer::SetSpatialFilterRect() * * Revision 1.46  2004/11/21 22:08:49  fwarmerdam * added Release() and DestroyDataSource() methods on OGRDataSource * * Revision 1.45  2004/10/06 19:49:14  fwarmerdam * Added Mysql registration function. * * Revision 1.44  2004/07/20 19:18:44  warmerda * added CSV * * Revision 1.43  2004/07/10 05:03:24  warmerda * added SQLite * * Revision 1.42  2004/02/11 18:03:15  warmerda * added RegisterOGRDODS() */#ifndef _OGRSF_FRMTS_H_INCLUDED#define _OGRSF_FRMTS_H_INCLUDED#include "ogr_feature.h"#include "ogr_featurestyle.h"/** * \file ogrsf_frmts.h * * Classes related to registration of format support, and opening datasets. */class OGRLayerAttrIndex;class OGRSFDriver;/************************************************************************//*                               OGRLayer                               *//************************************************************************//** * This class represents a layer of simple features, with access methods. * */class CPL_DLL OGRLayer{  protected:    int          m_bFilterIsEnvelope;    OGRGeometry  *m_poFilterGeom;    OGREnvelope  m_sFilterEnvelope;    int          FilterGeometry( OGRGeometry * );    int          InstallFilter( OGRGeometry * );  public:    OGRLayer();    virtual     ~OGRLayer();    virtual OGRGeometry *GetSpatialFilter();    virtual void        SetSpatialFilter( OGRGeometry * );    virtual void        SetSpatialFilterRect( double dfMinX, double dfMinY,                                              double dfMaxX, double dfMaxY );    virtual OGRErr      SetAttributeFilter( const char * );    virtual void        ResetReading() = 0;    virtual OGRFeature *GetNextFeature() = 0;    virtual OGRErr      SetNextByIndex( long nIndex );    virtual OGRFeature *GetFeature( long nFID );    virtual OGRErr      SetFeature( OGRFeature *poFeature );    virtual OGRErr      CreateFeature( OGRFeature *poFeature );    virtual OGRErr      DeleteFeature( long nFID );    virtual OGRFeatureDefn *GetLayerDefn() = 0;    virtual OGRSpatialReference *GetSpatialRef() { return NULL; }    virtual int         GetFeatureCount( int bForce = TRUE );    virtual OGRErr      GetExtent(OGREnvelope *psExtent, int bForce = TRUE);    virtual int         TestCapability( const char * ) = 0;    virtual const char *GetInfo( const char * );    virtual OGRErr      CreateField( OGRFieldDefn *poField,                                     int bApproxOK = TRUE );    virtual OGRErr      SyncToDisk();    OGRStyleTable       *GetStyleTable(){ return m_poStyleTable; }    void                SetStyleTableDirectly( OGRStyleTable *poStyleTable )                            { if ( m_poStyleTable ) delete m_poStyleTable;                              m_poStyleTable = poStyleTable; }    void                SetStyleTable(OGRStyleTable *poStyleTable)                            {                                if ( m_poStyleTable ) delete m_poStyleTable;                                if ( poStyleTable )                                    m_poStyleTable = poStyleTable->Clone();                            }    virtual OGRErr      StartTransaction();    virtual OGRErr      CommitTransaction();    virtual OGRErr      RollbackTransaction();    virtual const char *GetFIDColumn();    virtual const char *GetGeometryColumn();    int                 Reference();    int                 Dereference();    int                 GetRefCount() const;    GIntBig             GetFeaturesRead();        /* consider these private */    OGRErr               InitializeIndexSupport( const char * );    OGRLayerAttrIndex   *GetIndex() { return m_poAttrIndex; } protected:    OGRStyleTable       *m_poStyleTable;    OGRFeatureQuery     *m_poAttrQuery;    OGRLayerAttrIndex   *m_poAttrIndex;    int                  m_nRefCount;    GIntBig              m_nFeaturesRead;};/************************************************************************//*                            OGRDataSource                             *//************************************************************************//** * This class represents a data source.  A data source potentially * consists of many layers (OGRLayer).  A data source normally consists * of one, or a related set of files, though the name doesn't have to be * a real item in the file system. * * When an OGRDataSource is destroyed, all it's associated OGRLayers objects * are also destroyed. */ class CPL_DLL OGRDataSource{    friend class OGRSFDriverRegistrar;  public:    OGRDataSource();    virtual     ~OGRDataSource();    static void         DestroyDataSource( OGRDataSource * );    virtual const char  *GetName() = 0;    virtual int         GetLayerCount() = 0;    virtual OGRLayer    *GetLayer(int) = 0;    virtual OGRLayer    *GetLayerByName(const char *);    virtual OGRErr      DeleteLayer(int);    virtual int         TestCapability( const char * ) = 0;    virtual OGRLayer   *CreateLayer( const char *pszName,                                      OGRSpatialReference *poSpatialRef = NULL,                                     OGRwkbGeometryType eGType = wkbUnknown,                                     char ** papszOptions = NULL );    virtual OGRLayer   *CopyLayer( OGRLayer *poSrcLayer,                                    const char *pszNewName,                                    char **papszOptions = NULL );    OGRStyleTable       *GetStyleTable(){ return m_poStyleTable; }    void                SetStyleTableDirectly( OGRStyleTable *poStyleTable )                            { if ( m_poStyleTable ) delete m_poStyleTable;                              m_poStyleTable = poStyleTable; }    void                SetStyleTable(OGRStyleTable *poStyleTable)                            {                                if ( m_poStyleTable ) delete m_poStyleTable;                                if ( poStyleTable )                                    m_poStyleTable = poStyleTable->Clone();                            }    virtual OGRLayer *  ExecuteSQL( const char *pszStatement,                                    OGRGeometry *poSpatialFilter,                                    const char *pszDialect );    virtual void        ReleaseResultSet( OGRLayer * poResultsSet );    virtual OGRErr      SyncToDisk();    int                 Reference();    int                 Dereference();    int                 GetRefCount() const;    int                 GetSummaryRefCount() const;    OGRErr              Release();    OGRSFDriver        *GetDriver() const;  protected:    OGRErr              ProcessSQLCreateIndex( const char * );    OGRErr              ProcessSQLDropIndex( const char * );    OGRStyleTable      *m_poStyleTable;    int                 m_nRefCount;    OGRSFDriver        *m_poDriver;};/************************************************************************//*                             OGRSFDriver                              *//************************************************************************//** * Represents an operational format driver. * * One OGRSFDriver derived class will normally exist for each file format * registered for use, regardless of whether a file has or will be opened. * The list of available drivers is normally managed by the * OGRSFDriverRegistrar. */class CPL_DLL OGRSFDriver{  public:    virtual     ~OGRSFDriver();    virtual const char  *GetName() = 0;    virtual OGRDataSource *Open( const char *pszName, int bUpdate=FALSE ) = 0;    virtual int         TestCapability( const char * ) = 0;    virtual OGRDataSource *CreateDataSource( const char *pszName,                                             char ** = NULL );    virtual OGRErr      DeleteDataSource( const char *pszName );    virtual OGRDataSource *CopyDataSource( OGRDataSource *poSrcDS,                                            const char *pszNewName,                                            char **papszOptions = NULL );};/************************************************************************//*                         OGRSFDriverRegistrar                         *//************************************************************************//** * Singleton manager for drivers. * */class CPL_DLL OGRSFDriverRegistrar{    int         nDrivers;    OGRSFDriver **papoDrivers;                OGRSFDriverRegistrar();    int         nOpenDSCount;    char        **papszOpenDSRawName;    OGRDataSource **papoOpenDS;    OGRSFDriver **papoOpenDSDriver;  public:                ~OGRSFDriverRegistrar();    static OGRSFDriverRegistrar *GetRegistrar();    static OGRDataSource *Open( const char *pszName, int bUpdate=FALSE,                                OGRSFDriver ** ppoDriver = NULL );    OGRDataSource *OpenShared( const char *pszName, int bUpdate=FALSE,                               OGRSFDriver ** ppoDriver = NULL );    OGRErr      ReleaseDataSource( OGRDataSource * );    void        RegisterDriver( OGRSFDriver * poDriver );    int         GetDriverCount( void );    OGRSFDriver *GetDriver( int iDriver );    OGRSFDriver *GetDriverByName( const char * );    int         GetOpenDSCount() { return nOpenDSCount; }     OGRDataSource *GetOpenDS( int );    void        AutoLoadDrivers();};/* -------------------------------------------------------------------- *//*      Various available registration methods.                         *//* -------------------------------------------------------------------- */CPL_C_STARTvoid CPL_DLL OGRRegisterAll();void CPL_DLL RegisterOGRShape();void CPL_DLL RegisterOGRNTF();void CPL_DLL RegisterOGRFME();void CPL_DLL RegisterOGRSDTS();void CPL_DLL RegisterOGRTiger();void CPL_DLL RegisterOGRS57();void CPL_DLL RegisterOGRTAB();void CPL_DLL RegisterOGRMIF();void CPL_DLL RegisterOGROGDI();void CPL_DLL RegisterOGRODBC();void CPL_DLL RegisterOGRPG();void CPL_DLL RegisterOGRMySQL();void CPL_DLL RegisterOGROCI();void CPL_DLL RegisterOGRDGN();void CPL_DLL RegisterOGRGML();void CPL_DLL RegisterOGRKML();void CPL_DLL RegisterOGRAVCBin();void CPL_DLL RegisterOGRAVCE00();void CPL_DLL RegisterOGRREC();void CPL_DLL RegisterOGRMEM();void CPL_DLL RegisterOGRVRT();void CPL_DLL RegisterOGRDODS();void CPL_DLL RegisterOGRSQLite();void CPL_DLL RegisterOGRCSV();void CPL_DLL RegisterOGRILI1();void CPL_DLL RegisterOGRILI2();void CPL_DLL RegisterOGRGRASS();void CPL_DLL RegisterOGRPGeo();void CPL_DLL RegisterOGRDXFDWG();void CPL_DLL RegisterOGRSDE();void CPL_DLL RegisterOGRIDB();CPL_C_END#endif /* ndef _OGRSF_FRMTS_H_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -