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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ogrsdtslayer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************** * $Id: ogrsdtslayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  SDTSReader * Purpose:  Implements OGRSDTSLayer 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_sdts.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrsdtslayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                            OGRSDTSLayer()                            *//*                                                                      *//*      Note that the OGRSDTSLayer assumes ownership of the passed      *//*      OGRFeatureDefn object.                                          *//************************************************************************/OGRSDTSLayer::OGRSDTSLayer( SDTSTransfer * poTransferIn, int iLayerIn,                            OGRSDTSDataSource * poDSIn ){    poDS = poDSIn;    poTransfer = poTransferIn;    iLayer = iLayerIn;    poReader = poTransfer->GetLayerIndexedReader( iLayer );/* -------------------------------------------------------------------- *//*      Define the feature.                                             *//* -------------------------------------------------------------------- */    int         iCATDEntry = poTransfer->GetLayerCATDEntry( iLayer );        poFeatureDefn =        new OGRFeatureDefn(poTransfer->GetCATD()->GetEntryModule(iCATDEntry));    poFeatureDefn->Reference();    OGRFieldDefn oRecId( "RCID", OFTInteger );    poFeatureDefn->AddFieldDefn( &oRecId );    if( poTransfer->GetLayerType(iLayer) == SLTPoint )    {        poFeatureDefn->SetGeomType( wkbPoint );    }    else if( poTransfer->GetLayerType(iLayer) == SLTLine )    {        poFeatureDefn->SetGeomType( wkbLineString );        oRecId.SetName( "SNID" );        poFeatureDefn->AddFieldDefn( &oRecId );        oRecId.SetName( "ENID" );        poFeatureDefn->AddFieldDefn( &oRecId );    }    else if( poTransfer->GetLayerType(iLayer) == SLTPoly )    {        poFeatureDefn->SetGeomType( wkbPolygon );    }    else if( poTransfer->GetLayerType(iLayer) == SLTAttr )    {        poFeatureDefn->SetGeomType( wkbNone );    }/* -------------------------------------------------------------------- *//*      Add schema from referenced attribute records.                   *//* -------------------------------------------------------------------- */    char        **papszATIDRefs = NULL;        if( poTransfer->GetLayerType(iLayer) != SLTAttr )        papszATIDRefs = poReader->ScanModuleReferences();    else        papszATIDRefs = CSLAddString( papszATIDRefs,                                       poTransfer->GetCATD()->GetEntryModule(iCATDEntry) );    for( int iTable = 0;         papszATIDRefs != NULL && papszATIDRefs[iTable] != NULL;         iTable++ )    {        SDTSAttrReader  *poAttrReader;        DDFFieldDefn    *poFDefn;        /* -------------------------------------------------------------------- *//*      Get the attribute table reader, and the associated user         *//*      attribute field.                                                *//* -------------------------------------------------------------------- */        poAttrReader = (SDTSAttrReader *)            poTransfer->GetLayerIndexedReader(                poTransfer->FindLayer( papszATIDRefs[iTable] ) );        if( poAttrReader == NULL )            continue;        poFDefn = poAttrReader->GetModule()->FindFieldDefn( "ATTP" );        if( poFDefn == NULL )            poFDefn = poAttrReader->GetModule()->FindFieldDefn( "ATTS" );        if( poFDefn == NULL )            continue;        /* -------------------------------------------------------------------- *//*      Process each user subfield on the attribute table into an       *//*      OGR field definition.                                           *//* -------------------------------------------------------------------- */        for( int iSF=0; iSF < poFDefn->GetSubfieldCount(); iSF++ )        {            DDFSubfieldDefn     *poSFDefn = poFDefn->GetSubfield( iSF );            int                 nWidth = poSFDefn->GetWidth();            char                *pszFieldName;            if( poFeatureDefn->GetFieldIndex( poSFDefn->GetName() ) != -1 )                pszFieldName = CPLStrdup( CPLSPrintf( "%s_%s",                                                      papszATIDRefs[iTable],                                                      poSFDefn->GetName() ) );            else                pszFieldName = CPLStrdup( poSFDefn->GetName() );                        switch( poSFDefn->GetType() )            {              case DDFString:              {                  OGRFieldDefn  oStrField( pszFieldName, OFTString );                  if( nWidth != 0 )                      oStrField.SetWidth( nWidth );                  poFeatureDefn->AddFieldDefn( &oStrField );              }              break;              case DDFInt:              {                  OGRFieldDefn  oIntField( pszFieldName, OFTInteger );                  if( nWidth != 0 )                      oIntField.SetWidth( nWidth );                  poFeatureDefn->AddFieldDefn( &oIntField );              }              break;              case DDFFloat:              {                  OGRFieldDefn  oRealField( pszFieldName, OFTReal );                  // We don't have a precision in DDF files, so we never even                  // use the width.  Otherwise with a precision of zero the                  // result would look like an integer.                  poFeatureDefn->AddFieldDefn( &oRealField );              }              break;              default:                break;            }            CPLFree( pszFieldName );                    } /* next iSF (subfield) */    } /* next iTable */    CSLDestroy( papszATIDRefs );}/************************************************************************//*                           ~OGRSDTSLayer()                           *//************************************************************************/OGRSDTSLayer::~OGRSDTSLayer(){    if( m_nFeaturesRead > 0 && poFeatureDefn != NULL )    {        CPLDebug( "SDTS", "%d features read on layer '%s'.",                  (int) m_nFeaturesRead,                   poFeatureDefn->GetName() );    }    if( poFeatureDefn )        poFeatureDefn->Release();}/************************************************************************//*                            ResetReading()                            *//************************************************************************/void OGRSDTSLayer::ResetReading(){    poReader->Rewind();}/************************************************************************//*                     AssignAttrRecordToFeature()                      *//************************************************************************/static voidAssignAttrRecordToFeature( OGRFeature * poFeature, SDTSTransfer * poTransfer,                            DDFField * poSR ){/* -------------------------------------------------------------------- *//*      Process each subfield in the record.                            *//* -------------------------------------------------------------------- */    DDFFieldDefn        *poFDefn = poSR->GetFieldDefn();            for( int iSF=0; iSF < poFDefn->GetSubfieldCount(); iSF++ )    {        DDFSubfieldDefn *poSFDefn = poFDefn->GetSubfield( iSF );        int                     iField;        int                     nMaxBytes;        const char *    pachData = poSR->GetSubfieldData(poSFDefn,                                                         &nMaxBytes);/* -------------------------------------------------------------------- *//*      Indentify this field on the feature.                            *//* -------------------------------------------------------------------- */        iField = poFeature->GetFieldIndex( poSFDefn->GetName() );/* -------------------------------------------------------------------- *//*      Handle each of the types.                                       *//* -------------------------------------------------------------------- */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情视频一区二区三区欧美| 激情五月播播久久久精品| 欧美精品在线观看播放| 国产一区二区在线免费观看| 亚洲一区二区精品久久av| 久久久91精品国产一区二区精品 | 欧美日韩精品高清| 不卡的看片网站| 久久aⅴ国产欧美74aaa| 亚洲大片精品永久免费| 国产精品二区一区二区aⅴ污介绍| 欧美一区二区三区视频免费| 在线国产电影不卡| 99这里只有精品| 成人午夜av在线| 国产一区亚洲一区| 免费观看91视频大全| 一区二区三区欧美激情| 国产精品久久久久天堂| 久久精品人人做人人爽人人| 欧美一级一区二区| 在线电影国产精品| 欧美系列亚洲系列| 91国偷自产一区二区三区成为亚洲经典| 国产一区二区精品久久| 日产精品久久久久久久性色| 亚洲午夜久久久久| 亚洲精品日产精品乱码不卡| 国产精品理论在线观看| 国产女同互慰高潮91漫画| 精品国产91乱码一区二区三区| 欧美精品丝袜久久久中文字幕| 欧日韩精品视频| 色就色 综合激情| 99精品偷自拍| 色综合天天性综合| 色一情一乱一乱一91av| 91久久久免费一区二区| 色八戒一区二区三区| 99精品一区二区| 色爱区综合激月婷婷| 欧美影视一区在线| 欧美日韩精品系列| 337p亚洲精品色噜噜| 久久日韩粉嫩一区二区三区| 日韩欧美激情在线| 精品国产乱码久久久久久影片| 精品国产乱码久久久久久免费| 日韩精品中午字幕| 久久久午夜精品| 中文字幕高清一区| 亚洲天堂免费看| 亚洲一区二区美女| 日韩av不卡在线观看| 精品一区二区在线看| 精品无码三级在线观看视频| 国产美女视频91| 99久久精品国产导航| 91久久一区二区| 欧美一级生活片| 国产日韩欧美综合在线| 亚洲精品视频在线观看免费 | 日本欧美一区二区三区| 老司机免费视频一区二区三区| 国产精品一区二区久久不卡| 成人国产视频在线观看| 在线观看欧美黄色| 欧美电影免费观看高清完整版在线观看 | 亚洲成人综合视频| 九九九精品视频| 成人av在线资源网站| 精品污污网站免费看| 精品福利一区二区三区 | 国产精品水嫩水嫩| 亚洲第一搞黄网站| 国产剧情一区二区| 91久久一区二区| 久久亚洲综合av| 亚洲一区二区偷拍精品| 韩国精品在线观看| 色哟哟精品一区| 久久综合九色欧美综合狠狠| 亚洲资源中文字幕| 国产一区二区三区电影在线观看 | 中文字幕va一区二区三区| 亚洲与欧洲av电影| 国产精品一区二区三区四区| 在线观看免费亚洲| 久久影院视频免费| 亚洲成人av中文| 成人午夜伦理影院| 欧美一级免费大片| 亚洲欧美欧美一区二区三区| 韩国v欧美v亚洲v日本v| 欧美日韩在线播放一区| 欧美国产一区二区| 久久爱另类一区二区小说| 欧美在线一区二区| 日本一区二区三区在线不卡| 日韩av中文字幕一区二区| 色噜噜狠狠成人中文综合| 国产亚洲精品久| 亚洲va欧美va人人爽| 成人h动漫精品一区二| 日韩欧美综合一区| 午夜欧美一区二区三区在线播放| k8久久久一区二区三区 | 亚洲成人自拍网| 91色九色蝌蚪| 久久综合九色综合欧美就去吻| 婷婷开心久久网| 在线观看亚洲一区| 一色屋精品亚洲香蕉网站| 国产在线看一区| 精品少妇一区二区三区视频免付费 | 首页国产欧美日韩丝袜| 色素色在线综合| 亚洲日本va午夜在线影院| 国产成人av电影在线观看| 欧美一区二区三区啪啪| 亚洲国产美国国产综合一区二区| 播五月开心婷婷综合| 国产人妖乱国产精品人妖| 九一九一国产精品| 欧美一级欧美一级在线播放| 日日摸夜夜添夜夜添亚洲女人| 精品视频一区二区不卡| 亚洲一区欧美一区| 欧美视频一区二区三区在线观看| 亚洲欧美另类久久久精品| 91女人视频在线观看| 自拍偷自拍亚洲精品播放| 成人精品视频.| 亚洲国产高清在线观看视频| 国产成人av一区二区三区在线| 国产婷婷色一区二区三区在线| 国产一区二区免费视频| 国产亚洲视频系列| 国产福利精品导航| 中文字幕乱码日本亚洲一区二区| 国产91精品一区二区麻豆网站| 欧美国产日韩亚洲一区| 成人精品亚洲人成在线| **性色生活片久久毛片| 99re热这里只有精品视频| 国产精品成人一区二区艾草| 暴力调教一区二区三区| 又紧又大又爽精品一区二区| 在线精品视频免费播放| 日韩激情av在线| 日韩精品一区二区在线| 国产成人精品亚洲午夜麻豆| 亚洲欧洲www| 欧美在线免费观看视频| 日韩av一区二区在线影视| 日韩免费成人网| 成人精品小蝌蚪| 亚洲国产欧美在线人成| 337p亚洲精品色噜噜噜| 国产精品18久久久久久久久久久久| 国产精品网站在线观看| 色综合天天综合网国产成人综合天 | 日本欧美加勒比视频| 精品成人私密视频| heyzo一本久久综合| 亚洲国产成人porn| 日韩免费电影一区| 一本大道久久a久久综合| 婷婷六月综合网| 国产精品天干天干在线综合| 色天使久久综合网天天| 蜜桃精品视频在线| 国产精品灌醉下药二区| 欧美日韩日日摸| 福利一区二区在线| 亚洲国产成人av好男人在线观看| 日韩欧美专区在线| 色综合激情久久| 久久99国产精品麻豆| 亚洲精品国产精华液| 欧美va亚洲va国产综合| 一本大道久久a久久综合婷婷| 蜜桃视频一区二区三区在线观看| 国产精品国产a| 欧美成人bangbros| 在线观看欧美日本| 国产99一区视频免费| 天天色 色综合| 中文字幕中文字幕中文字幕亚洲无线| 欧美天堂一区二区三区| 国产大陆精品国产| 日本欧美一区二区在线观看| 日韩美女啊v在线免费观看| 精品国产乱子伦一区| 欧美性色黄大片手机版| 国产91在线看| 六月丁香婷婷久久| 亚洲国产一区在线观看| 国产精品视频在线看| 精品欧美黑人一区二区三区|