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

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

?? ogrtigerlayer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrtigerlayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  TIGER/Line Translator * Purpose:  Implements OGRTigerLayer class. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 1999, Frank Warmerdam * * 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 "ogr_tiger.h"CPL_CVSID("$Id: ogrtigerlayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                           OGRTigerLayer()                            *//*                                                                      *//*      Note that the OGRTigerLayer assumes ownership of the passed     *//*      OGRFeatureDefn object.                                          *//************************************************************************/OGRTigerLayer::OGRTigerLayer( OGRTigerDataSource *poDSIn,                              TigerFileBase * poReaderIn ){    poDS = poDSIn;    poReader = poReaderIn;    iLastFeatureId = 0;    iLastModule = -1;    nFeatureCount = 0;    panModuleFCount = NULL;    panModuleOffset = NULL;/* -------------------------------------------------------------------- *//*      Setup module feature counts.                                    *//* -------------------------------------------------------------------- */    if( !poDS->GetWriteMode() )    {        panModuleFCount = (int *)             CPLCalloc(poDS->GetModuleCount(),sizeof(int));        panModuleOffset = (int *)             CPLCalloc(poDS->GetModuleCount()+1,sizeof(int));        nFeatureCount = 0;        for( int iModule = 0; iModule < poDS->GetModuleCount(); iModule++ )        {            if( poReader->SetModule( poDS->GetModule(iModule) ) )                panModuleFCount[iModule] = poReader->GetFeatureCount();            else                panModuleFCount[iModule] = 0;            panModuleOffset[iModule] = nFeatureCount;            nFeatureCount += panModuleFCount[iModule];        }        // this entry is just to make range comparisons easy without worrying        // about falling off the end of the array.        panModuleOffset[poDS->GetModuleCount()] = nFeatureCount;    }    poReader->SetModule( NULL );}/************************************************************************//*                           ~OGRTigerLayer()                           *//************************************************************************/OGRTigerLayer::~OGRTigerLayer(){    if( m_nFeaturesRead > 0 && poReader->GetFeatureDefn() != NULL )    {        CPLDebug( "TIGER", "%d features read on layer '%s'.",                  (int) m_nFeaturesRead,                   poReader->GetFeatureDefn()->GetName() );    }    delete poReader;    CPLFree( panModuleFCount );    CPLFree( panModuleOffset );}/************************************************************************//*                            ResetReading()                            *//************************************************************************/void OGRTigerLayer::ResetReading(){    iLastFeatureId = 0;    iLastModule = -1;}/************************************************************************//*                             GetFeature()                             *//************************************************************************/OGRFeature *OGRTigerLayer::GetFeature( long nFeatureId ){    if( nFeatureId < 1 || nFeatureId > nFeatureCount )        return NULL;/* -------------------------------------------------------------------- *//*      If we don't have the current module open for the requested      *//*      data, then open it now.                                         *//* -------------------------------------------------------------------- */    if( iLastModule == -1         || nFeatureId <= panModuleOffset[iLastModule]        || nFeatureId > panModuleOffset[iLastModule+1] )    {        for( iLastModule = 0;             iLastModule < poDS->GetModuleCount()                 && nFeatureId > panModuleOffset[iLastModule+1];             iLastModule++ ) {}        if( !poReader->SetModule( poDS->GetModule(iLastModule) ) )        {            return NULL;        }    }/* -------------------------------------------------------------------- *//*      Fetch the feature associated with the record.                   *//* -------------------------------------------------------------------- */    OGRFeature  *poFeature;    poFeature =        poReader->GetFeature( nFeatureId-panModuleOffset[iLastModule]-1 );    if( poFeature != NULL )    {        poFeature->SetFID( nFeatureId );        if( poFeature->GetGeometryRef() != NULL )            poFeature->GetGeometryRef()->assignSpatialReference(                poDS->GetSpatialRef() );        poFeature->SetField( 0, poReader->GetShortModule() );        m_nFeaturesRead++;    }    return poFeature;}/************************************************************************//*                           GetNextFeature()                           *//************************************************************************/OGRFeature *OGRTigerLayer::GetNextFeature(){/* -------------------------------------------------------------------- *//*      Read features till we find one that satisfies our current       *//*      spatial criteria.                                               *//* -------------------------------------------------------------------- */    while( iLastFeatureId < nFeatureCount )    {        OGRFeature      *poFeature = GetFeature( ++iLastFeatureId );        if( poFeature == NULL )            break;        if( (m_poFilterGeom == NULL             || FilterGeometry( poFeature->GetGeometryRef() ) )            && (m_poAttrQuery == NULL                || m_poAttrQuery->Evaluate( poFeature )) )            return poFeature;        delete poFeature;    }    return NULL;}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRTigerLayer::TestCapability( const char * pszCap ){    if( EQUAL(pszCap,OLCRandomRead) )        return TRUE;    else if( EQUAL(pszCap,OLCSequentialWrite)              || EQUAL(pszCap,OLCRandomWrite) )        return FALSE;    else if( EQUAL(pszCap,OLCFastFeatureCount) )        return TRUE;    else if( EQUAL(pszCap,OLCFastSpatialFilter) )        return FALSE;    else if( EQUAL(pszCap,OLCSequentialWrite) )        return poDS->GetWriteMode();    else         return FALSE;}/************************************************************************//*                           GetSpatialRef()                            *//************************************************************************/OGRSpatialReference *OGRTigerLayer::GetSpatialRef(){    return poDS->GetSpatialRef();}/************************************************************************//*                            GetLayerDefn()                            *//************************************************************************/OGRFeatureDefn *OGRTigerLayer::GetLayerDefn(){    return poReader->GetFeatureDefn();}/************************************************************************//*                            CreateField()                             *//************************************************************************/OGRErr OGRTigerLayer::CreateField( OGRFieldDefn *poField, int bApproxOK ){    /* notdef/TODO: I should add some checking here eventually. */    return OGRERR_NONE;}/************************************************************************//*                           CreateFeature()                            *//************************************************************************/OGRErr OGRTigerLayer::CreateFeature( OGRFeature *poFeature ){    return poReader->CreateFeature( poFeature );}/************************************************************************//*                          GetFeatureCount()                           *//************************************************************************/int OGRTigerLayer::GetFeatureCount( int bForce ){    if( m_poFilterGeom == NULL && m_poAttrQuery == NULL )        return nFeatureCount;    else        return OGRLayer::GetFeatureCount( bForce );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人与z0zoxxxx视频| 亚洲成人av中文| 亚洲综合色网站| 国产伦精一区二区三区| 在线观看中文字幕不卡| 国产色爱av资源综合区| 美腿丝袜在线亚洲一区| 色哟哟日韩精品| 国产精品青草久久| 久久99精品久久久久| 欧美三级在线视频| 亚洲天堂2014| 成人免费va视频| 精品国产三级a在线观看| 亚洲综合免费观看高清完整版 | 99国产精品久久久久久久久久久| 欧美一区二区私人影院日本| 亚洲午夜成aⅴ人片| 色婷婷综合激情| 亚洲欧美综合在线精品| 国产精品一区二区在线观看网站| 欧美一级日韩不卡播放免费| 伊人开心综合网| 91色综合久久久久婷婷| 国产精品色婷婷久久58| 国产91精品精华液一区二区三区 | 一区二区欧美国产| 91久久国产综合久久| 国产精品天天摸av网| 成人永久免费视频| 国产亚洲人成网站| 懂色av一区二区三区蜜臀| 久久久www成人免费无遮挡大片| 日韩—二三区免费观看av| 欧美福利视频导航| 天堂va蜜桃一区二区三区| 91精品国产欧美日韩| 青青草国产精品亚洲专区无| 欧美一区二区三区思思人| 日本麻豆一区二区三区视频| 欧美一区二区三区免费| 蜜桃久久av一区| 久久久精品综合| www.色精品| 亚洲国产毛片aaaaa无费看| 欧美日本精品一区二区三区| 免费观看91视频大全| 精品国产一区二区三区四区四 | 成人手机电影网| 亚洲视频小说图片| 在线观看免费视频综合| 亚洲国产一区视频| 日韩视频一区在线观看| 国产精品69毛片高清亚洲| 中文字幕日韩一区| 色狠狠桃花综合| 男人操女人的视频在线观看欧美| 精品福利视频一区二区三区| 国产美女在线精品| 亚洲精选视频免费看| 欧美麻豆精品久久久久久| 精品在线一区二区三区| 亚洲视频免费在线| 欧美一区三区四区| 国产91富婆露脸刺激对白| 亚洲女同女同女同女同女同69| 欧美美女一区二区三区| 国产一区二区精品在线观看| 一区二区三区视频在线看| 日韩亚洲欧美中文三级| www.亚洲精品| 久久国产视频网| 亚洲免费观看高清| 欧美成人video| 在线观看视频一区二区欧美日韩| 韩国女主播一区二区三区| 亚洲精品欧美在线| 国产亚洲欧美色| 欧美人体做爰大胆视频| 99久久精品情趣| 久国产精品韩国三级视频| 亚洲综合在线观看视频| 久久午夜电影网| 欧美精品在线一区二区三区| 波多野结衣一区二区三区| 美女精品一区二区| 一区二区在线观看免费视频播放| 亚洲国产精品久久人人爱| 久久精品亚洲乱码伦伦中文| 欧美日韩成人综合天天影院| 波波电影院一区二区三区| 国产一区二区三区四| 日韩国产欧美在线视频| 亚洲激情校园春色| 国产精品国产三级国产专播品爱网| 日韩欧美国产精品| 91麻豆精品91久久久久同性| 91国产丝袜在线播放| 高清av一区二区| 国产在线播放一区二区三区| 日韩电影在线一区二区| 尤物在线观看一区| 国产精品国产三级国产普通话三级 | 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 粉嫩一区二区三区性色av| 日本午夜精品视频在线观看| 亚洲夂夂婷婷色拍ww47| 自拍偷自拍亚洲精品播放| 国产欧美日本一区视频| 26uuu亚洲婷婷狠狠天堂| 欧美日韩一二三区| 欧美视频一区在线观看| 一本大道久久a久久综合| 色综合天天综合狠狠| 成人综合婷婷国产精品久久 | 午夜国产精品一区| 亚洲国产va精品久久久不卡综合| 亚洲激情av在线| 一区二区三区欧美| 亚洲电影你懂得| 日韩精品亚洲一区| 男人的j进女人的j一区| 国模冰冰炮一区二区| 豆国产96在线|亚洲| 91亚洲精品一区二区乱码| 9l国产精品久久久久麻豆| 一本色道久久综合精品竹菊| 在线精品视频一区二区三四| 欧美三级电影在线看| 日韩一区二区三区精品视频| 精品国产伦理网| 国产日产欧美一区| 亚洲女同女同女同女同女同69| 一区二区三区不卡在线观看 | 欧美亚洲精品一区| 欧美高清精品3d| 欧美xxx久久| 国产精品日日摸夜夜摸av| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 最新欧美精品一区二区三区| 亚洲图片一区二区| 狠狠色伊人亚洲综合成人| 成人永久aaa| 欧美日韩一级二级| 久久久久国产精品麻豆ai换脸| 成人免费一区二区三区在线观看| 亚洲自拍偷拍欧美| 七七婷婷婷婷精品国产| 成人午夜免费视频| 欧美日韩一区视频| 久久久www成人免费无遮挡大片| 亚洲视频你懂的| 蜜桃av一区二区| 92国产精品观看| 欧美一二三四在线| 日本一区二区动态图| 亚洲国产精品久久人人爱| 国产一区二区调教| 欧美中文字幕一二三区视频| 欧美mv日韩mv国产网站| 亚洲欧美偷拍另类a∨色屁股| 六月婷婷色综合| 在线一区二区视频| 久久一区二区视频| 午夜精品久久久| 国产mv日韩mv欧美| 91精品福利在线一区二区三区| 国产精品成人一区二区艾草| 日韩电影一区二区三区四区| 91在线观看视频| 精品精品国产高清a毛片牛牛 | 精品少妇一区二区三区免费观看| 成人免费一区二区三区在线观看 | 不卡视频在线观看| 欧美成人精品1314www| 久久精品国产第一区二区三区| 成人毛片老司机大片| 欧美一级午夜免费电影| 日韩伦理av电影| 久久99精品久久久久婷婷| 欧美日韩精品是欧美日韩精品| 国产女主播一区| 蜜臀av亚洲一区中文字幕| 91福利在线看| 国产精品白丝在线| 国产v综合v亚洲欧| 精品91自产拍在线观看一区| 天天综合日日夜夜精品| 91福利在线观看| 亚洲欧美aⅴ...| 99久久精品费精品国产一区二区| 久久精品一区二区三区av| 久久国产精品第一页| 6080国产精品一区二区| 亚洲成人三级小说| 欧美在线视频你懂得| 亚洲天天做日日做天天谢日日欢 | 中文字幕一区不卡| 成人黄色av电影| 国产视频一区二区在线|