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

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

?? ogrsf_frmts.h

?? mitab,讀取MapInfo的地圖文件
?? H
字號:
/******************************************************************************
 * $Id: ogrsf_frmts.h 10646 2007-01-18 02:38:10Z warmerdam $
 *
 * 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.
 ****************************************************************************/

#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_START
void 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 + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品全国免费观看高清 | 久久久久国产精品免费免费搜索| 欧美色视频在线| 91麻豆精品秘密| 99re热视频这里只精品| 成人做爰69片免费看网站| 国产高清在线精品| 高清不卡在线观看| 波多野结衣中文一区| 成人黄色片在线观看| 国产成人av电影在线播放| 成人一道本在线| 99久久久精品| 欧美午夜不卡视频| 日韩欧美在线不卡| 精品电影一区二区| 国产精品黄色在线观看 | 99天天综合性| 91视频免费观看| 欧美日韩一区二区三区四区| 欧美视频在线一区| 日韩三级视频中文字幕| 精品国产凹凸成av人网站| 欧美精品一区二区三区蜜桃| 久久精品视频免费观看| 国产精品短视频| 日本欧美加勒比视频| 麻豆国产精品视频| 成人永久免费视频| 欧美在线一区二区| 亚洲精品一区二区三区蜜桃下载 | 欧美大胆人体bbbb| 中文字幕巨乱亚洲| 日韩电影在线观看网站| 久久99精品视频| 91视频你懂的| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 午夜精品久久久久久久99樱桃| 日av在线不卡| 91一区一区三区| 日韩欧美国产综合在线一区二区三区| 久久久99精品免费观看不卡| 亚洲色图欧美激情| 国产老妇另类xxxxx| 色婷婷综合久久| 欧美国产精品一区二区| 免费在线观看不卡| 欧美在线999| 欧美国产综合一区二区| 日韩福利电影在线观看| 成人性色生活片免费看爆迷你毛片| 欧美性大战久久| 亚洲欧洲在线观看av| 狠狠色综合日日| 在线不卡免费欧美| 伊人性伊人情综合网| 国产精品一区二区男女羞羞无遮挡 | 久久久久成人黄色影片| 专区另类欧美日韩| 国产揄拍国内精品对白| 欧美日韩一区视频| 伊人婷婷欧美激情| aaa欧美色吧激情视频| 欧美v日韩v国产v| 日韩中文欧美在线| 欧美日韩国产影片| 亚洲综合精品自拍| 欧美三级电影一区| 一区二区三区中文字幕精品精品| 国产成人精品一区二区三区四区 | 色丁香久综合在线久综合在线观看| 精品国产91乱码一区二区三区| 午夜电影一区二区| 538在线一区二区精品国产| 亚洲综合成人在线| 欧美日韩午夜精品| 亚洲第一福利视频在线| 91精品1区2区| 亚洲一级在线观看| 在线影院国内精品| 午夜免费久久看| 欧美一级欧美三级| 日本va欧美va欧美va精品| 91麻豆精品久久久久蜜臀| 日韩国产欧美三级| 欧美大片在线观看一区| 久久er99精品| 国产日产欧美精品一区二区三区| 国产aⅴ综合色| 中文字幕亚洲精品在线观看 | 午夜精品爽啪视频| 欧美一卡二卡三卡四卡| 蜜臀久久久99精品久久久久久| 日韩欧美二区三区| 国产成人av电影在线播放| 欧美激情一区二区三区不卡 | 国产高清成人在线| 中文字幕在线观看一区二区| 91影院在线免费观看| 亚洲一区二区三区三| 欧美大度的电影原声| 丁香一区二区三区| 美国十次了思思久久精品导航| 久久综合久色欧美综合狠狠| 国产在线精品国自产拍免费| 国产网站一区二区| 色哟哟欧美精品| 经典三级在线一区| 亚洲欧美乱综合| 日韩三级精品电影久久久| 国产精品主播直播| 亚洲品质自拍视频网站| 欧美一区二区免费| 91在线视频18| 麻豆精品在线视频| 亚洲精选视频在线| 精品国产伦一区二区三区观看体验| 岛国av在线一区| 麻豆免费看一区二区三区| 中文字幕一区av| 日韩免费看的电影| 色哟哟亚洲精品| 国产一区二区调教| 性欧美疯狂xxxxbbbb| 国产女人18水真多18精品一级做| 欧美性欧美巨大黑白大战| 蜜桃视频一区二区三区在线观看| 亚洲丝袜制服诱惑| 久久久久久9999| 日韩精品最新网址| 欧美日韩精品久久久| 不卡区在线中文字幕| 久久精品国产久精国产| 亚洲国产日韩av| 亚洲码国产岛国毛片在线| 久久伊99综合婷婷久久伊| 欧美二区三区的天堂| 在线精品视频免费观看| 不卡大黄网站免费看| 国产成人精品影院| 国产美女精品人人做人人爽| 日韩精品一区第一页| 一区二区国产视频| 亚洲欧美日韩精品久久久久| 国产日本欧洲亚洲| 国产欧美一区二区三区在线看蜜臀| 7777精品伊人久久久大香线蕉的| 91国产成人在线| 色婷婷一区二区| 91久久精品国产91性色tv| 91老师国产黑色丝袜在线| 成人高清av在线| 91在线国产观看| 日本伦理一区二区| 在线观看成人免费视频| 色香蕉成人二区免费| 日本道精品一区二区三区| 91久久精品一区二区三区| 欧美伊人久久久久久久久影院| 欧美综合一区二区| 欧美日韩在线三区| 欧美电影影音先锋| 欧美成人精品福利| 国产亚洲一二三区| ...xxx性欧美| 亚洲国产精品久久久久婷婷884 | 亚洲猫色日本管| 午夜一区二区三区视频| 午夜视黄欧洲亚洲| 激情综合网天天干| 风间由美性色一区二区三区| 成人免费视频播放| 在线观看一区二区视频| 91国内精品野花午夜精品 | 久久伊人中文字幕| 国产精品日韩成人| 亚洲综合激情另类小说区| 日日骚欧美日韩| 蜜桃av一区二区三区| 国产精品小仙女| 色女孩综合影院| 欧美日韩夫妻久久| xf在线a精品一区二区视频网站| 国产欧美日本一区视频| 亚洲人xxxx| 精品一区二区精品| 91免费版pro下载短视频| 欧美日本不卡视频| 欧美激情综合在线| 日本中文字幕一区| 99riav久久精品riav| 在线不卡免费av| 亚洲人成在线观看一区二区| 天天免费综合色| 成人福利在线看| 欧美大白屁股肥臀xxxxxx| 中文字幕一区二区三区视频| 全部av―极品视觉盛宴亚洲| 高清不卡在线观看av| 欧美一区二区在线免费播放|