亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ogr_feature.h

?? mitab,讀取MapInfo的地圖文件
?? H
字號:
/******************************************************************************
 * $Id: ogr_feature.h 10646 2007-01-18 02:38:10Z warmerdam $
 *
 * Project:  OpenGIS Simple Features Reference Implementation
 * Purpose:  Class for representing a whole feature, and layer schemas.
 * Author:   Frank Warmerdam, warmerdam@pobox.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.
 ****************************************************************************/

#ifndef _OGR_FEATURE_H_INCLUDED
#define _OGR_FEATURE_H_INCLUDED

#include "ogr_geometry.h"
#include "ogr_featurestyle.h"

/**
 * \file ogr_feature.h
 *
 * Simple feature classes.
 */

/************************************************************************/
/*                             OGRFieldDefn                             */
/************************************************************************/

/**
 * Definition of an attribute of an OGRFeatureDefn.
 */

class CPL_DLL OGRFieldDefn
{
  private:
    char                *pszName;
    OGRFieldType        eType;                  
    OGRJustification    eJustify;               
    int                 nWidth;                 /* zero is variable */
    int                 nPrecision;
    OGRField            uDefault;

    void                Initialize( const char *, OGRFieldType );
    
  public:
                        OGRFieldDefn( const char *, OGRFieldType );
                        OGRFieldDefn( OGRFieldDefn * );
                        ~OGRFieldDefn();

    void                SetName( const char * );
    const char         *GetNameRef() { return pszName; }

    OGRFieldType        GetType() { return eType; }
    void                SetType( OGRFieldType eTypeIn ) { eType = eTypeIn;}
    static const char  *GetFieldTypeName( OGRFieldType );

    OGRJustification    GetJustify() { return eJustify; }
    void                SetJustify( OGRJustification eJustifyIn )
                                                { eJustify = eJustifyIn; }

    int                 GetWidth() { return nWidth; }
    void                SetWidth( int nWidthIn ) { nWidth = MAX(0,nWidthIn); }

    int                 GetPrecision() { return nPrecision; }
    void                SetPrecision( int nPrecisionIn )
                                                { nPrecision = nPrecisionIn; }

    void                Set( const char *, OGRFieldType, int = 0, int = 0,
                             OGRJustification = OJUndefined );

    void                SetDefault( const OGRField * );
    const OGRField     *GetDefaultRef() { return &uDefault; }
};

/************************************************************************/
/*                            OGRFeatureDefn                            */
/************************************************************************/

/**
 * Definition of a feature class or feature layer.
 *
 * This object contains schema information for a set of OGRFeatures.  In
 * table based systems, an OGRFeatureDefn is essentially a layer.  In more
 * object oriented approaches (such as SF CORBA) this can represent a class
 * of features but doesn't necessarily relate to all of a layer, or just one
 * layer.
 *
 * 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 + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国精品自拍自在线| 91浏览器在线视频| 亚洲精品自拍动漫在线| 国产亚洲欧美中文| 精品美女在线观看| 欧美va亚洲va| 精品剧情v国产在线观看在线| 6080日韩午夜伦伦午夜伦| 欧美三片在线视频观看 | 亚洲bt欧美bt精品777| 一区二区在线看| 夜夜夜精品看看| 日日欢夜夜爽一区| 麻豆传媒一区二区三区| 麻豆精品视频在线观看免费| 久久精品国产精品青草| 久久精品99国产精品日本| 国产一区二区三区四区五区入口| 国产一区二区三区在线观看免费视频| 国内精品久久久久影院薰衣草| 久久超级碰视频| 国产乱子轮精品视频| 粉嫩aⅴ一区二区三区四区五区| 成人av网站免费| 欧美性感一类影片在线播放| 欧美精品一二三| 久久亚洲综合色| 亚洲欧洲日本在线| 午夜激情综合网| 国产精品一二三四区| 91免费观看在线| 日韩亚洲欧美中文三级| 国产欧美va欧美不卡在线 | 在线视频亚洲一区| 日韩一级黄色大片| 中文字幕综合网| 日本va欧美va瓶| k8久久久一区二区三区| 在线电影院国产精品| 久久久久九九视频| 亚洲精品第1页| 国产在线精品一区二区不卡了| 91丨porny丨在线| 日韩精品一区二区三区在线观看 | 国产亚洲欧美日韩在线一区| 亚洲图片欧美激情| 国产乱国产乱300精品| 91成人看片片| 欧美激情一区二区三区不卡| 亚洲bdsm女犯bdsm网站| jlzzjlzz亚洲女人18| 日韩一区二区三区观看| 亚洲手机成人高清视频| 免费观看一级欧美片| 色婷婷综合久久| 久久亚洲一区二区三区四区| 亚洲国产欧美在线| 97久久精品人人澡人人爽| 精品国精品自拍自在线| 五月婷婷久久丁香| 91在线云播放| 中文字幕欧美国产| 国内偷窥港台综合视频在线播放| 欧美在线视频不卡| 亚洲精品成人精品456| 国产成人欧美日韩在线电影| 日韩三级视频在线看| 亚洲大片免费看| 欧美日韩一区二区在线视频| 亚洲欧美综合网| 成人av小说网| 国产精品污网站| 国产成人啪免费观看软件| wwwwww.欧美系列| 美日韩黄色大片| 日韩一级黄色片| 精品一区二区日韩| 日韩一区二区三区高清免费看看| 同产精品九九九| 欧美久久一区二区| 日韩成人午夜精品| 777奇米四色成人影色区| 石原莉奈在线亚洲二区| 在线不卡中文字幕| 日韩高清在线一区| 欧美成人a视频| 狠狠色狠狠色综合| 久久精品亚洲一区二区三区浴池 | 国产精品色哟哟网站| 国产乱码精品一品二品| 亚洲国产精品传媒在线观看| 成人动漫一区二区三区| 亚洲视频资源在线| 在线不卡欧美精品一区二区三区| 午夜av一区二区| 日韩精品一区二区三区三区免费 | 免费不卡在线视频| 日韩精品一区二区三区视频播放 | 亚洲午夜久久久| 日韩一区二区免费电影| 国内一区二区在线| 中文字幕在线观看一区| 91免费视频网址| 午夜精品免费在线| 久久久蜜桃精品| av电影天堂一区二区在线| 亚洲国产精品麻豆| 精品国产在天天线2019| av综合在线播放| 亚洲va在线va天堂| 2020国产精品| 日本久久电影网| 美国十次综合导航| 一区二区三区在线免费| 欧美电影免费观看高清完整版| 从欧美一区二区三区| 亚洲自拍偷拍av| 国产欧美日韩在线| 欧美精品自拍偷拍动漫精品| 国产福利一区二区三区| 偷窥国产亚洲免费视频| 国产精品乱子久久久久| 欧美一区中文字幕| 91丨porny丨户外露出| 久久成人av少妇免费| 一区二区成人在线观看| 337p日本欧洲亚洲大胆色噜噜| 色婷婷国产精品| 成人激情动漫在线观看| 日本欧美一区二区| 亚洲资源在线观看| 国产蜜臀av在线一区二区三区| 欧美久久一区二区| 色婷婷精品久久二区二区蜜臂av| 国产高清成人在线| 蜜桃视频在线一区| 香蕉乱码成人久久天堂爱免费| 国产精品麻豆视频| 国产欧美一区二区精品久导航 | 精品系列免费在线观看| 亚洲一区影音先锋| 中文字幕一区在线| 久久久久久久久久久99999| 欧美一级国产精品| 在线一区二区三区四区| 99r国产精品| 国产v综合v亚洲欧| 国产99久久久国产精品潘金 | 亚洲免费看黄网站| 国产精品免费久久| 久久嫩草精品久久久精品| 91精品久久久久久蜜臀| 欧美精品在线一区二区三区| 国产一区二区按摩在线观看| 蜜臂av日日欢夜夜爽一区| 日本免费新一区视频| 亚洲国产综合在线| 亚洲第一福利一区| 日本中文在线一区| 免费久久99精品国产| 视频一区二区三区在线| 蜜臀久久99精品久久久久宅男 | 粉嫩高潮美女一区二区三区| 国产福利一区二区三区视频在线 | 黄一区二区三区| 久久超碰97人人做人人爱| 韩国三级在线一区| 国产精品一区一区| 成人免费黄色大片| 91麻豆蜜桃一区二区三区| 欧美午夜片在线看| 日韩一区二区电影网| 欧美精品一区视频| 国产精品美女久久久久久2018 | 欧美视频一二三区| 欧美一区二区三区免费在线看| 精品欧美一区二区三区精品久久| 日韩欧美不卡一区| 国产拍揄自揄精品视频麻豆| 亚洲三级免费观看| 日韩黄色免费电影| 国产在线精品不卡| 91免费在线看| 日韩一区和二区| 国产精品第四页| 日韩精品欧美成人高清一区二区| 精品一区二区三区在线播放| 粉嫩aⅴ一区二区三区四区五区 | 久久在线观看免费| 亚洲色图丝袜美腿| 免费人成网站在线观看欧美高清| 国产毛片精品视频| 欧美中文字幕一二三区视频| 精品国产青草久久久久福利| 亚洲免费观看高清在线观看| 日本一不卡视频| 91亚洲男人天堂| 欧美成人vps| 亚洲无人区一区| 东方aⅴ免费观看久久av|