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

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

?? ogrdatasource.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************
 * $Id: ogrdatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $
 *
 * Project:  OpenGIS Simple Features Reference Implementation
 * Purpose:  The generic portions of the OGRDataSource class.
 * 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.
 ****************************************************************************/

#include "ogrsf_frmts.h"
#include "ogr_api.h"
#include "ogr_p.h"
#include "ogr_gensql.h"
#include "ogr_attrind.h"

CPL_CVSID("$Id: ogrdatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $");

/************************************************************************/
/*                           ~OGRDataSource()                           */
/************************************************************************/

OGRDataSource::OGRDataSource()

{
    m_poStyleTable = NULL;
    m_nRefCount = 0;
    m_poDriver = NULL;
}

/************************************************************************/
/*                           ~OGRDataSource()                           */
/************************************************************************/

OGRDataSource::~OGRDataSource()

{
    if ( m_poStyleTable )
    {
        delete m_poStyleTable;
        m_poStyleTable = NULL;
    }
}

/************************************************************************/
/*                         DestroyDataSource()                          */
/************************************************************************/

void OGRDataSource::DestroyDataSource( OGRDataSource *poDS )

{
    delete poDS;
}

/************************************************************************/
/*                           OGR_DS_Destroy()                           */
/************************************************************************/

void OGR_DS_Destroy( OGRDataSourceH hDS )

{
    delete (OGRDataSource *) hDS;
}

/************************************************************************/
/*                              Release()                               */
/************************************************************************/

OGRErr OGRDataSource::Release()

{
    return OGRSFDriverRegistrar::GetRegistrar()->ReleaseDataSource( this );
}

/************************************************************************/
/*                             Reference()                              */
/************************************************************************/

int OGRDataSource::Reference()

{
    return ++m_nRefCount;
}

/************************************************************************/
/*                          OGR_DS_Reference()                          */
/************************************************************************/

int OGR_DS_Reference( OGRDataSourceH hDataSource )

{
    return ((OGRDataSource *) hDataSource)->Reference();
}

/************************************************************************/
/*                            Dereference()                             */
/************************************************************************/

int OGRDataSource::Dereference()

{
    return --m_nRefCount;
}

/************************************************************************/
/*                         OGR_DS_Dereference()                         */
/************************************************************************/

int OGR_DS_Dereference( OGRDataSourceH hDataSource )

{
    return ((OGRDataSource *) hDataSource)->Dereference();
}

/************************************************************************/
/*                            GetRefCount()                             */
/************************************************************************/

int OGRDataSource::GetRefCount() const

{
    return m_nRefCount;
}

/************************************************************************/
/*                         OGR_DS_GetRefCount()                         */
/************************************************************************/

int OGR_DS_GetRefCount( OGRDataSourceH hDataSource )

{
    return ((OGRDataSource *) hDataSource)->GetRefCount();
}

/************************************************************************/
/*                         GetSummaryRefCount()                         */
/************************************************************************/

int OGRDataSource::GetSummaryRefCount() const

{
    int nSummaryCount = m_nRefCount;
    int iLayer;
    OGRDataSource *poUseThis = (OGRDataSource *) this;

    for( iLayer=0; iLayer < poUseThis->GetLayerCount(); iLayer++ )
        nSummaryCount += poUseThis->GetLayer( iLayer )->GetRefCount();

    return nSummaryCount;
}

/************************************************************************/
/*                     OGR_DS_GetSummaryRefCount()                      */
/************************************************************************/

int OGR_DS_GetSummaryRefCount( OGRDataSourceH hDataSource )

{
    return ((OGRDataSource *) hDataSource)->GetSummaryRefCount();
}

/************************************************************************/
/*                            CreateLayer()                             */
/************************************************************************/

OGRLayer *OGRDataSource::CreateLayer( const char * pszName,
                                      OGRSpatialReference * poSpatialRef,
                                      OGRwkbGeometryType eGType,
                                      char **papszOptions )

{
    (void) eGType;
    (void) poSpatialRef;
    (void) pszName;
    (void) papszOptions;

    CPLError( CE_Failure, CPLE_NotSupported,
              "CreateLayer() not supported by this data source." );
              
    return NULL;
}

/************************************************************************/
/*                         OGR_DS_CreateLayer()                         */
/************************************************************************/

OGRLayerH OGR_DS_CreateLayer( OGRDataSourceH hDS, 
                              const char * pszName,
                              OGRSpatialReferenceH hSpatialRef,
                              OGRwkbGeometryType eType,
                              char ** papszOptions )

{
    return ((OGRDataSource *)hDS)->CreateLayer( 
        pszName, (OGRSpatialReference *) hSpatialRef, eType, papszOptions );
}

/************************************************************************/
/*                             CopyLayer()                              */
/************************************************************************/

OGRLayer *OGRDataSource::CopyLayer( OGRLayer *poSrcLayer, 
                                    const char *pszNewName, 
                                    char **papszOptions )

{
    OGRFeatureDefn *poSrcDefn = poSrcLayer->GetLayerDefn();
    OGRLayer *poDstLayer = NULL;

/* -------------------------------------------------------------------- */
/*      Create the layer.                                               */
/* -------------------------------------------------------------------- */
    if( !TestCapability( ODsCCreateLayer ) )
    {
        CPLError( CE_Failure, CPLE_NotSupported, 
                  "This datasource does not support creation of layers." );
        return NULL;
    }

    CPLErrorReset();
    poDstLayer = CreateLayer( pszNewName, poSrcLayer->GetSpatialRef(),
                              poSrcDefn->GetGeomType(), papszOptions );
    
    if( poDstLayer == NULL )
        return NULL;

/* -------------------------------------------------------------------- */
/*      Add fields.  Default to copy all field.                         */
/*      If only a subset of all fields requested, then output only      */
/*      the selected fields, and in the order that they were            */
/*      selected.                                                       */
/* -------------------------------------------------------------------- */
    int         iField;
    
    for( iField = 0; iField < poSrcDefn->GetFieldCount(); iField++ )
        poDstLayer->CreateField( poSrcDefn->GetFieldDefn(iField) );

/* -------------------------------------------------------------------- */
/*      Transfer features.                                              */
/* -------------------------------------------------------------------- */
    OGRFeature  *poFeature;
    
    poSrcLayer->ResetReading();

    while( TRUE )
    {
        OGRFeature      *poDstFeature = NULL;

        poFeature = poSrcLayer->GetNextFeature();
        
        if( poFeature == NULL )
            break;

        CPLErrorReset();
        poDstFeature = OGRFeature::CreateFeature( poDstLayer->GetLayerDefn() );

        if( poDstFeature->SetFrom( poFeature, TRUE ) != OGRERR_NONE )
        {
            delete poFeature;
            CPLError( CE_Failure, CPLE_AppDefined,
                      "Unable to translate feature %d from layer %s.\n",
                      poFeature->GetFID(), poSrcDefn->GetName() );
            return poDstLayer;
        }

        poDstFeature->SetFID( poFeature->GetFID() );

        OGRFeature::DestroyFeature( poFeature );

        CPLErrorReset();
        if( poDstLayer->CreateFeature( poDstFeature ) != OGRERR_NONE )
        {
            OGRFeature::DestroyFeature( poDstFeature );
            return poDstLayer;
        }

        OGRFeature::DestroyFeature( poDstFeature );
    }

    return poDstLayer;
}

/************************************************************************/
/*                          OGR_DS_CopyLayer()                          */
/************************************************************************/

OGRLayerH OGR_DS_CopyLayer( OGRDataSourceH hDS, 
                            OGRLayerH hSrcLayer, const char *pszNewName,
                            char **papszOptions )

{
    return ((OGRDataSource *) hDS)->CopyLayer( (OGRLayer *) hSrcLayer, 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本免费新一区视频| 久久九九国产精品| 97久久精品人人爽人人爽蜜臀 | 成人爱爱电影网址| 丁香亚洲综合激情啪啪综合| 国产麻豆一精品一av一免费 | 精品国产第一区二区三区观看体验 | 精品亚洲国产成人av制服丝袜 | 亚洲欧美一区二区不卡| 国产欧美日韩麻豆91| 中文字幕精品在线不卡| 国产欧美日韩麻豆91| 国产亚洲精品aa| 欧美国产国产综合| 中文字幕在线不卡视频| √…a在线天堂一区| 一区二区三区中文字幕精品精品| 亚洲无人区一区| 婷婷中文字幕综合| 蜜臀av一区二区| 国产成人综合亚洲91猫咪| 粉嫩绯色av一区二区在线观看 | 欧美日韩一级二级| 欧美成人精精品一区二区频| www国产精品av| 国产精品天干天干在线综合| 亚洲精品乱码久久久久久久久| 亚洲在线免费播放| 久久99精品网久久| 91在线视频播放| 91精品国产乱| 亚洲国产高清aⅴ视频| 亚洲另类一区二区| 蜜臀久久99精品久久久久久9| 国产一区二区三区美女| 9i看片成人免费高清| 精品视频999| 日本一二三不卡| 亚洲国产一区二区视频| 国产一区二区不卡| 91久久精品午夜一区二区| 欧美一级黄色录像| 中文字幕一区二区日韩精品绯色| 婷婷久久综合九色国产成人| 国产·精品毛片| 欧美日本国产视频| 国产精品伦理在线| 免费成人在线网站| 91蜜桃传媒精品久久久一区二区| 日韩一级高清毛片| 一二三四社区欧美黄| 国产丶欧美丶日本不卡视频| 3atv在线一区二区三区| 亚洲欧美日韩在线| 国产乱色国产精品免费视频| 精品视频在线视频| 日韩伦理av电影| 丁香激情综合国产| 精品成人一区二区三区四区| 婷婷六月综合亚洲| 欧美在线一区二区| 日韩理论电影院| 成人av资源在线观看| 欧美va日韩va| 蜜桃久久av一区| 欧美日韩夫妻久久| 亚洲制服欧美中文字幕中文字幕| 成人国产亚洲欧美成人综合网| 欧美成人猛片aaaaaaa| 午夜精品在线看| 欧美做爰猛烈大尺度电影无法无天| 国产精品久久久久久久午夜片| 激情深爱一区二区| 精品久久久久久亚洲综合网| 麻豆精品一区二区三区| 欧美精品日韩一本| 亚洲综合激情小说| 欧美在线一二三| 午夜精品久久久久久| 欧美三级在线播放| 首页国产欧美日韩丝袜| 91精品国产综合久久久久久久久久| 亚洲激情一二三区| 欧美在线影院一区二区| 午夜精品爽啪视频| 91精品国产全国免费观看| 日韩精品乱码免费| 久久美女艺术照精彩视频福利播放| 日韩免费福利电影在线观看| 欧美成va人片在线观看| 男男视频亚洲欧美| 久久精品这里都是精品| 午夜久久久久久久久| 五月天欧美精品| 综合久久一区二区三区| 精品福利av导航| 欧美精品一二三| 91丨九色丨蝌蚪丨老版| 韩国精品久久久| 日韩电影一区二区三区| 一个色综合网站| 日韩伦理免费电影| 国产精品国产三级国产三级人妇| 日韩免费一区二区| 欧美日韩第一区日日骚| 一本一道久久a久久精品| 国产一区二区三区免费在线观看| 日韩激情在线观看| 午夜视频在线观看一区二区| 亚洲小说春色综合另类电影| 中文字幕中文字幕在线一区| 久久久久久**毛片大全| 久久综合狠狠综合| 日韩欧美黄色影院| 7777精品伊人久久久大香线蕉完整版 | 久久精品国产网站| 日韩成人一区二区| 日韩激情一区二区| 奇米精品一区二区三区四区 | 国产精品一区二区在线看| 久久av中文字幕片| 久久精品久久99精品久久| 日韩国产欧美三级| 日本 国产 欧美色综合| 日韩电影在线免费看| 久久精品72免费观看| 久久精品国产第一区二区三区| 美日韩一区二区三区| 韩国v欧美v亚洲v日本v| 国内精品视频一区二区三区八戒| 国产一区二区三区视频在线播放| 国产精品一区二区不卡| 成人免费黄色在线| 91在线视频播放| 91久久人澡人人添人人爽欧美| 欧美久久久久久久久久| 日韩欧美国产成人一区二区| 久久久久久久久免费| 亚洲欧洲av另类| 午夜视黄欧洲亚洲| 国产乱色国产精品免费视频| 成人av小说网| 欧美日韩日本视频| 精品久久久久香蕉网| 一区在线观看视频| 亚洲成国产人片在线观看| 久久国产婷婷国产香蕉| 粉嫩av一区二区三区粉嫩| 色婷婷亚洲一区二区三区| 日韩一区二区精品在线观看| 久久久国际精品| 亚洲一区二区在线播放相泽| 人妖欧美一区二区| 99热99精品| 欧美精品v国产精品v日韩精品| 久久精品欧美一区二区三区不卡| 亚洲日穴在线视频| 精品在线视频一区| 色综合天天狠狠| 日韩精品自拍偷拍| 一区二区三区不卡在线观看| 久久99国内精品| 在线观看免费亚洲| 久久久久久久久蜜桃| 亚洲v日本v欧美v久久精品| 国产电影一区在线| 91精品国产色综合久久| 亚洲三级在线看| 国产真实乱子伦精品视频| 一本到高清视频免费精品| 精品日本一线二线三线不卡| 一片黄亚洲嫩模| 成人激情小说网站| 精品福利一区二区三区| 亚洲bt欧美bt精品777| 成人av在线网| 国产亚洲欧美日韩日本| 日韩二区三区四区| 欧美日韩小视频| 成人欧美一区二区三区白人 | 日韩福利电影在线观看| 色综合久久88色综合天天免费| 久久久久国产成人精品亚洲午夜| 日韩avvvv在线播放| 在线免费观看视频一区| 国产精品免费网站在线观看| 国产综合色精品一区二区三区| 在线不卡免费av| 亚洲线精品一区二区三区| 99re这里只有精品视频首页| 国产日韩欧美a| 韩国三级在线一区| 精品欧美乱码久久久久久| 午夜激情综合网| 在线观看中文字幕不卡| 亚洲欧洲国产日本综合| 成人免费av网站| 久久久精品免费观看| 性做久久久久久久免费看| 在线观看欧美精品|