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

📄 ogr_feature.h

📁 用于读取TAB、MIF、SHP文件的类
💻 H
📖 第 1 页 / 共 2 页
字号:
 * * This object also can contain some other information such as a name, the * base geometry type and potentially other metadata. * * It is reasonable for different translators to derive classes from * OGRFeatureDefn with additional translator specific information.  */class CPL_DLL OGRFeatureDefn{  private:    int         nRefCount;        int         nFieldCount;    OGRFieldDefn **papoFieldDefn;    OGRwkbGeometryType eGeomType;    char        *pszFeatureClassName;      public:                OGRFeatureDefn( const char * pszName = NULL );    virtual    ~OGRFeatureDefn();    const char  *GetName() { return pszFeatureClassName; }    int         GetFieldCount() { return nFieldCount; }    OGRFieldDefn *GetFieldDefn( int i );    int         GetFieldIndex( const char * );    void        AddFieldDefn( OGRFieldDefn * );    OGRwkbGeometryType GetGeomType() { return eGeomType; }    void        SetGeomType( OGRwkbGeometryType );    OGRFeatureDefn *Clone();    int         Reference() { return ++nRefCount; }    int         Dereference() { return --nRefCount; }    int         GetReferenceCount() { return nRefCount; }    void        Release();    static OGRFeatureDefn  *CreateFeatureDefn( const char *pszName = NULL );    static void         DestroyFeatureDefn( OGRFeatureDefn * );};/************************************************************************//*                              OGRFeature                              *//************************************************************************//** * A simple feature, including geometry and attributes. */class CPL_DLL OGRFeature{  private:    long                nFID;    OGRFeatureDefn      *poDefn;    OGRGeometry         *poGeometry;    OGRField            *pauFields;  protected:     char *              m_pszStyleString;    OGRStyleTable       *m_poStyleTable;    char *              m_pszTmpFieldValue;      public:                        OGRFeature( OGRFeatureDefn * );    virtual            ~OGRFeature();                            OGRFeatureDefn     *GetDefnRef() { return poDefn; }        OGRErr              SetGeometryDirectly( OGRGeometry * );    OGRErr              SetGeometry( OGRGeometry * );    OGRGeometry        *GetGeometryRef() { return poGeometry; }    OGRGeometry        *StealGeometry();    OGRFeature         *Clone();    virtual OGRBoolean  Equal( OGRFeature * poFeature );    int                 GetFieldCount() { return poDefn->GetFieldCount(); }    OGRFieldDefn       *GetFieldDefnRef( int iField )                                      { return poDefn->GetFieldDefn(iField); }    int                 GetFieldIndex( const char * pszName)                                      { return poDefn->GetFieldIndex(pszName);}    int                 IsFieldSet( int iField ) const                        { return                              pauFields[iField].Set.nMarker1 != OGRUnsetMarker                           || pauFields[iField].Set.nMarker2 != OGRUnsetMarker;                              }        void                UnsetField( int iField );        OGRField           *GetRawFieldRef( int i ) { return pauFields + i; }    int                 GetFieldAsInteger( int i );    double              GetFieldAsDouble( int i );    const char         *GetFieldAsString( int i );    const int          *GetFieldAsIntegerList( int i, int *pnCount );    const double       *GetFieldAsDoubleList( int i, int *pnCount );    char              **GetFieldAsStringList( int i ) const;    GByte              *GetFieldAsBinary( int i, int *pnCount );    int                 GetFieldAsDateTime( int i,                                      int *pnYear, int *pnMonth, int *pnDay,                                     int *pnHour, int *pnMinute, int *pnSecond,                                      int *pnTZFlag );    int                 GetFieldAsInteger( const char *pszFName )                      { return GetFieldAsInteger( GetFieldIndex(pszFName) ); }    double              GetFieldAsDouble( const char *pszFName )                      { return GetFieldAsDouble( GetFieldIndex(pszFName) ); }    const char         *GetFieldAsString( const char *pszFName )                      { return GetFieldAsString( GetFieldIndex(pszFName) ); }    const int          *GetFieldAsIntegerList( const char *pszFName,                                               int *pnCount )                      { return GetFieldAsIntegerList( GetFieldIndex(pszFName),                                                      pnCount ); }    const double       *GetFieldAsDoubleList( const char *pszFName,                                              int *pnCount )                      { return GetFieldAsDoubleList( GetFieldIndex(pszFName),                                                     pnCount ); }    char              **GetFieldAsStringList( const char *pszFName )                      { return GetFieldAsStringList(GetFieldIndex(pszFName)); }    void                SetField( int i, int nValue );    void                SetField( int i, double dfValue );    void                SetField( int i, const char * pszValue );    void                SetField( int i, int nCount, int * panValues );    void                SetField( int i, int nCount, double * padfValues );    void                SetField( int i, char ** papszValues );    void                SetField( int i, OGRField * puValue );    void                SetField( int i, int nCount, GByte * pabyBinary );    void                SetField( int i, int nYear, int nMonth, int nDay,                                  int nHour=0, int nMinute=0, int nSecond=0,                                   int nTZFlag = 0 );    void                SetField( const char *pszFName, int nValue )                           { SetField( GetFieldIndex(pszFName), nValue ); }    void                SetField( const char *pszFName, double dfValue )                           { SetField( GetFieldIndex(pszFName), dfValue ); }    void                SetField( const char *pszFName, const char * pszValue)                           { SetField( GetFieldIndex(pszFName), pszValue ); }    void                SetField( const char *pszFName, int nCount,                                  int * panValues )                         { SetField(GetFieldIndex(pszFName),nCount,panValues);}    void                SetField( const char *pszFName, int nCount,                                  double * padfValues )                         {SetField(GetFieldIndex(pszFName),nCount,padfValues);}    void                SetField( const char *pszFName, char ** papszValues )                           { SetField( GetFieldIndex(pszFName), papszValues); }    void                SetField( const char *pszFName, OGRField * puValue )                           { SetField( GetFieldIndex(pszFName), puValue ); }    void                SetField( const char *pszFName,                                   int nYear, int nMonth, int nDay,                                  int nHour=0, int nMinute=0, int nSecond=0,                                   int nTZFlag = 0 )                           { SetField( GetFieldIndex(pszFName),                                        nYear, nMonth, nDay,                                        nHour, nMinute, nSecond, nTZFlag ); }    long                GetFID() { return nFID; }    virtual OGRErr      SetFID( long nFID );    void                DumpReadable( FILE * );    OGRErr              SetFrom( OGRFeature *, int = TRUE);    OGRErr              RemapFields( OGRFeatureDefn *poNewDefn,                                      int *panRemapSource );    virtual const char *GetStyleString();    virtual void        SetStyleString( const char * );    virtual void        SetStyleStringDirectly( char * );    virtual OGRStyleTable *GetStyleTable() { return m_poStyleTable; }    virtual void        SetStyleTable(OGRStyleTable *poStyleTable);    virtual void        SetStyleTableDirectly(OGRStyleTable *poStyleTable)                            { if ( m_poStyleTable ) delete m_poStyleTable;                              m_poStyleTable = poStyleTable; }    static OGRFeature  *CreateFeature( OGRFeatureDefn * );    static void         DestroyFeature( OGRFeature * );};/************************************************************************//*                           OGRFeatureQuery                            *//************************************************************************/class OGRLayer;class CPL_DLL OGRFeatureQuery{  private:    OGRFeatureDefn *poTargetDefn;    void           *pSWQExpr;    char          **FieldCollector( void *, char ** );      public:                OGRFeatureQuery();                ~OGRFeatureQuery();    OGRErr      Compile( OGRFeatureDefn *, const char * );    int         Evaluate( OGRFeature * );    long       *EvaluateAgainstIndices( OGRLayer *, OGRErr * );    char      **GetUsedFields();    void       *GetSWGExpr() { return pSWQExpr; }};#endif /* ndef _OGR_FEATURE_H_INCLUDED */

⌨️ 快捷键说明

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