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

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

?? ogrfmelayer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrfmelayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  FMEObjects Translator * Purpose:  Implementation of the OGRFMELayer base class.  The class *           implements behaviour shared between database and spatial cached *           layer types. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 1999, 2001 Safe Software Inc. * All Rights Reserved * * This software may not be copied or reproduced, in all or in part,  * without the prior written consent of Safe Software Inc. * * The entire risk as to the results and performance of the software, * supporting text and other information contained in this file * (collectively called the "Software") is with the user.  Although * Safe Software Incorporated has used considerable efforts in preparing  * the Software, Safe Software Incorporated does not warrant the * accuracy or completeness of the Software. In no event will Safe Software  * Incorporated be liable for damages, including loss of profits or  * consequential damages, arising out of the use of the Software. ****************************************************************************/#include "fme2ogr.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrfmelayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                            OGRFMELayer()                             *//************************************************************************/OGRFMELayer::OGRFMELayer( OGRFMEDataSource *poDSIn ){    poDS = poDSIn;    poFeatureDefn = NULL;    poSpatialRef = NULL;    pszAttributeFilter = NULL;    poFMEFeature = NULL;}/************************************************************************//*                            ~OGRFMELayer()                            *//************************************************************************/OGRFMELayer::~OGRFMELayer(){    if( m_nFeaturesRead > 0 && poFeatureDefn != NULL )    {        CPLDebug( "FME", "%d features read on layer '%s'.",                  (int) m_nFeaturesRead,                   poFeatureDefn->GetName() );    }    CPLFree( pszAttributeFilter );    if( poFMEFeature != NULL )        poDS->GetFMESession()->destroyFeature( poFMEFeature );    if( poFeatureDefn != NULL )    {        poFeatureDefn->Release();    }    if( poSpatialRef != NULL )        poSpatialRef->Release();}/************************************************************************//*                             Initialize()                             *//*                                                                      *//*      Build an OGRFeatureDefn for this layer from the passed          *//*      schema IFMEFeature.                                             *//************************************************************************/int OGRFMELayer::Initialize( IFMEFeature * poSchemaFeature,                             OGRSpatialReference *poSRS ){    IFMEString  *poFMEString = NULL;        poFMEString = poDS->GetFMESession()->createString();    poFMEFeature = poDS->GetFMESession()->createFeature();    if( poSRS != NULL )        poSpatialRef = poSRS->Clone();/* -------------------------------------------------------------------- *//*      Create the definition with the definition name being the        *//*      same as the FME feature type.                                   *//* -------------------------------------------------------------------- */    poSchemaFeature->getFeatureType( *poFMEString );    poFeatureDefn = new OGRFeatureDefn( poFMEString->data() );    poFeatureDefn->Reference();    poDS->GetFMESession()->destroyString( poFMEString );/* -------------------------------------------------------------------- *//*      Get the list of attribute names.                                *//* -------------------------------------------------------------------- */    IFMEStringArray     *poAttrNames;    poAttrNames = poDS->GetFMESession()->createStringArray();    poSchemaFeature->getAllAttributeNames( *poAttrNames );/* ==================================================================== *//*      Loop over attributes, adding them to our feature defn.          *//* ==================================================================== */    OGRwkbGeometryType eGeomType = wkbNone;    IFMEString  *poAttrValue;    poAttrValue = poDS->GetFMESession()->createString();        for( int iAttr = 0; iAttr < (int)poAttrNames->entries(); iAttr++ )    {        const char       *pszAttrName = (*poAttrNames)(iAttr);/* -------------------------------------------------------------------- *//*      Get the attribute value.                                        *//* -------------------------------------------------------------------- */        if( !poSchemaFeature->getAttribute(pszAttrName,*poAttrValue) )            continue;/* -------------------------------------------------------------------- *//*      Handle geometry attributes.  Use them to try and establish      *//*      the geometry type of this layer.  If we get conflicting         *//*      geometries just fall back to the generic geometry type.         *//* -------------------------------------------------------------------- */        if( EQUALN(pszAttrName,"fme_geometry",12) )        {            OGRwkbGeometryType eAttrGeomType = wkbNone;            if( EQUAL(poAttrValue->data(),"fme_point") )                eAttrGeomType = wkbPoint;            else if( EQUAL(poAttrValue->data(),"fme_text") )                eAttrGeomType = wkbPoint;            else if( EQUAL(poAttrValue->data(),"fme_area") )                eAttrGeomType = wkbPolygon;            else if( EQUAL(poAttrValue->data(),"fme_polygon") )                eAttrGeomType = wkbPolygon;            else if( EQUAL(poAttrValue->data(),"fme_rectangle") )                eAttrGeomType = wkbPolygon;            else if( EQUAL(poAttrValue->data(),"fme_rounded_rectangle") )                eAttrGeomType = wkbPolygon;            else if( EQUAL(poAttrValue->data(),"fme_line") )                eAttrGeomType = wkbLineString;            else if( EQUAL(poAttrValue->data(),"fme_arc") )                eAttrGeomType = wkbLineString;            else if( EQUAL(poAttrValue->data(),"fme_aggregate") )                eAttrGeomType = wkbGeometryCollection;            else if( EQUAL(poAttrValue->data(),"fme_no_geom") )                eAttrGeomType = wkbNone;            else            {                CPLDebug( "FME_OLEDB",                           "geometry field %s has unknown value %s, ignored.",                          pszAttrName,                           poAttrValue->data() );                continue;            }            if( eGeomType == wkbNone )                eGeomType = eAttrGeomType;            else if( eGeomType != eAttrGeomType )                eGeomType = wkbUnknown;        }/* -------------------------------------------------------------------- *//*      Skip '*' attributes which appear to be the raw attribute        *//*      names from the source reader.  The versions that don't start    *//*      with * appear to be massaged suitably for use, with fme         *//*      standard data types.                                            *//* -------------------------------------------------------------------- */        if( EQUALN(pszAttrName,"fme_geometry",12)             || pszAttrName[0] == '*'            || EQUALN(pszAttrName,"fme_geomattr",12) )        {            continue;        }/* -------------------------------------------------------------------- *//*      Parse the type into tokens for easier use.                      *//* -------------------------------------------------------------------- */        char      **papszTokens;        papszTokens = CSLTokenizeStringComplex( poAttrValue->data(),                                                "(,", FALSE, FALSE );/* -------------------------------------------------------------------- *//*      Establish new fields.                                           *//* -------------------------------------------------------------------- */        OGRFieldType      eType;        int               nWidth, nPrecision = 0;        if( CSLCount(papszTokens) == 2 && EQUAL(papszTokens[0],"fme_char") )        {            eType = OFTString;            nWidth = atoi(papszTokens[1]);        }        else if( CSLCount(papszTokens) == 3                  && EQUAL(papszTokens[0],"fme_decimal") )        {            nWidth = atoi(papszTokens[1]);            nPrecision = atoi(papszTokens[2]);            if( nPrecision == 0 )                eType = OFTInteger;            else                eType = OFTReal;        }        else if( CSLCount(papszTokens) == 1                 && EQUAL(papszTokens[0],"fme_int16") )        {            nWidth = 6;            nPrecision = 0;            eType = OFTInteger;        }        else if( CSLCount(papszTokens) == 1                 && EQUAL(papszTokens[0],"fme_int32") )        {            nWidth = 0;            nPrecision = 0;            eType = OFTInteger;        }        else if( CSLCount(papszTokens) == 1                 && (EQUAL(papszTokens[0],"fme_real32")                      || EQUAL(papszTokens[0],"fme_real64")) )        {            nWidth = 0;            nPrecision = 0;            eType = OFTReal;        }        else if( CSLCount(papszTokens) == 1                 && EQUAL(papszTokens[0],"fme_boolean") )        {            nWidth = 1;            nPrecision = 0;            eType = OFTInteger;        }        else        {            printf( "Not able to translate field type: %s\n",                     poAttrValue->data() );            CSLDestroy( papszTokens );            continue;        }/* -------------------------------------------------------------------- *//*      Add the field to the feature definition.                        *//* -------------------------------------------------------------------- */        OGRFieldDefn  oFieldDefn( pszAttrName, eType );                oFieldDefn.SetWidth( nWidth );        oFieldDefn.SetPrecision( nPrecision );        poFeatureDefn->AddFieldDefn( &oFieldDefn );        CSLDestroy( papszTokens );    }/* -------------------------------------------------------------------- *//*      Assign the geometry type ... try to apply 3D-ness as well.      *//* -------------------------------------------------------------------- */    if( poSchemaFeature->getDimension() == FME_THREE_D )        eGeomType = (OGRwkbGeometryType) (((int)eGeomType) | wkb25DBit);    poFeatureDefn->SetGeomType( eGeomType );/* -------------------------------------------------------------------- *//*      Translate the spatial reference system.                         *//* -------------------------------------------------------------------- */    if( poSchemaFeature->getCoordSys() != NULL         && strlen(poSchemaFeature->getCoordSys()) > 0        && poSpatialRef == NULL )    {        CPLDebug( "FME_OLEDB", "Layer %s has COORDSYS=%s on schema feature.",                  poFeatureDefn->GetName(),                   poSchemaFeature->getCoordSys() );        poSpatialRef = poDS->FME2OGRSpatialRef(poSchemaFeature->getCoordSys());    }/* -------------------------------------------------------------------- *//*      Cleanup                                                         *//* -------------------------------------------------------------------- */    poDS->GetFMESession()->destroyString( poAttrValue );    poDS->GetFMESession()->destroyStringArray( poAttrNames );    return TRUE;}/************************************************************************//*                         SetAttributeFilter()                         *//************************************************************************/OGRErr OGRFMELayer::SetAttributeFilter( const char *pszNewFilter ){    OGRErr      eErr;    CPLFree( pszAttributeFilter );    pszAttributeFilter = NULL;/* -------------------------------------------------------------------- *//*      Allow clearing of attribute query.                              *//* -------------------------------------------------------------------- */    if( pszNewFilter == NULL || strlen(pszNewFilter) == 0 )    {        if( m_poAttrQuery != NULL )        {            delete m_poAttrQuery;            m_poAttrQuery = NULL;        }        return OGRERR_NONE;    }/* -------------------------------------------------------------------- *//*      Compile new query.  Note that we currently will only accept     *//*      queries we recognise as valid.  It would be better to pass      *//*      directly through to Oracle or other databases where we will     *//*      use the setConstraints method and let them decide on the        *//*      validity of the query.  However, it will be difficult to        *//*      return the error at this point if we defer setting the          *//*      constraint.                                                     *//* -------------------------------------------------------------------- */    if( !m_poAttrQuery )        m_poAttrQuery = new OGRFeatureQuery();    eErr = m_poAttrQuery->Compile( GetLayerDefn(), pszNewFilter );    if( eErr != OGRERR_NONE )    {        delete m_poAttrQuery;        m_poAttrQuery = NULL;    }    else    {        pszAttributeFilter = CPLStrdup( pszNewFilter );    }    ResetReading();    return eErr;}/************************************************************************//*                           GetSpatialRef()                            *//************************************************************************/OGRSpatialReference *OGRFMELayer::GetSpatialRef(){    return poSpatialRef;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人丝袜高跟foot| 久久久精品国产99久久精品芒果| 制服丝袜在线91| 国产精品久久久久久久岛一牛影视 | 91蝌蚪porny| 欧美另类变人与禽xxxxx| 国产精品二区一区二区aⅴ污介绍| 日韩精品欧美成人高清一区二区| 成人午夜又粗又硬又大| 日韩午夜av一区| 香蕉加勒比综合久久| 色综合久久综合中文综合网| 久久久一区二区三区捆绑**| 天天操天天色综合| 欧美自拍偷拍午夜视频| 亚洲欧洲三级电影| 国产精品 欧美精品| 日韩三级伦理片妻子的秘密按摩| 一区二区三区精品在线观看| 国产传媒日韩欧美成人| 精品va天堂亚洲国产| 日韩精品国产精品| 欧美日韩亚洲另类| 亚洲免费av网站| 色综合久久天天综合网| 中文av一区特黄| 国产.欧美.日韩| 久久久国际精品| 久99久精品视频免费观看| 欧美老肥妇做.爰bbww视频| 亚洲国产精品久久人人爱蜜臀| 91丨九色丨黑人外教| 亚洲少妇中出一区| 色噜噜久久综合| 亚洲国产毛片aaaaa无费看| 91精品办公室少妇高潮对白| 国产精品国产三级国产普通话三级 | 97久久超碰国产精品电影| 亚洲国产精品t66y| 成人av资源下载| 亚洲精品国产视频| 日本福利一区二区| 亚洲国产va精品久久久不卡综合| 欧美日韩综合在线免费观看| 午夜不卡av在线| 日韩三级.com| 懂色av噜噜一区二区三区av| 亚洲色图20p| 欧美午夜宅男影院| 免费观看一级欧美片| 久久综合久久99| 成人激情开心网| 一区二区视频在线看| 欧美日韩免费电影| 久久成人综合网| 欧美国产成人在线| 欧美性感一类影片在线播放| 亚洲.国产.中文慕字在线| 日韩区在线观看| av男人天堂一区| 亚洲国产精品麻豆| 久久久久久9999| 在线亚洲一区二区| 九九热在线视频观看这里只有精品| 久久久久亚洲综合| 在线亚洲人成电影网站色www| 日产国产高清一区二区三区| 国产网红主播福利一区二区| 欧美性受xxxx黑人xyx| 国内精品在线播放| 一区二区三区在线免费播放| 日韩欧美在线网站| 91香蕉国产在线观看软件| 日韩精品一级中文字幕精品视频免费观看| 日韩欧美精品在线| 日本韩国欧美一区二区三区| 国内久久精品视频| 亚洲成a天堂v人片| 国产精品色哟哟| 精品久久久久久久久久久久久久久 | 一区二区三区四区在线播放 | 欧美亚洲高清一区| 美女网站色91| 一级特黄大欧美久久久| 久久先锋影音av鲁色资源网| 91丝袜国产在线播放| 欧美日韩久久一区二区| 大陆成人av片| 麻豆精品精品国产自在97香蕉| 国产精品久久久久久久浪潮网站| 欧美一区日韩一区| 欧美专区亚洲专区| 91视视频在线观看入口直接观看www | 樱桃视频在线观看一区| 精品剧情v国产在线观看在线| 在线观看日韩一区| 成人国产电影网| 激情综合网天天干| 亚洲国产成人porn| 亚洲人成小说网站色在线| 久久欧美一区二区| 日韩欧美电影一二三| 精品婷婷伊人一区三区三| 99re成人精品视频| 成人av综合在线| 粉嫩欧美一区二区三区高清影视| 日本欧洲一区二区| 日韩成人一级大片| 三级欧美在线一区| 亚洲国产成人91porn| 亚洲一区二区三区影院| 一区二区三区免费看视频| 国产精品福利影院| 国产精品成人午夜| 亚洲欧洲无码一区二区三区| 国产精品久久久久一区二区三区| 久久久99久久| 亚洲国产经典视频| 亚洲欧洲成人av每日更新| 国产精品久久久久婷婷| 亚洲三级久久久| 一区二区三区在线观看动漫| 一区二区激情小说| 视频在线观看一区| 六月丁香婷婷久久| 久久电影国产免费久久电影| 国产一区二区不卡老阿姨| 精品一区二区三区在线播放| 国精产品一区一区三区mba桃花| 久久99九九99精品| 国产精品一区久久久久| 国产成人aaa| 色狠狠色噜噜噜综合网| 欧美日韩国产乱码电影| 欧美一区二区三区影视| 精品久久国产老人久久综合| 久久久久久久久久久久久夜| 亚洲欧美综合色| 亚洲视频图片小说| 日韩av成人高清| 国产精品1区二区.| 91传媒视频在线播放| 日韩欧美国产综合一区| 国产视频一区二区在线| 亚洲精品免费看| 轻轻草成人在线| 岛国av在线一区| 欧美喷潮久久久xxxxx| 久久午夜免费电影| 一片黄亚洲嫩模| 久久国产福利国产秒拍| 91丝袜高跟美女视频| 欧美成人video| 国产精品国产三级国产专播品爱网| 亚洲狠狠爱一区二区三区| 久久国产三级精品| 色综合久久久久久久久| 亚洲精品一区在线观看| 亚洲精品免费电影| 韩国三级电影一区二区| 一本久久a久久精品亚洲| 欧美成人猛片aaaaaaa| 亚洲另类色综合网站| 九九国产精品视频| 欧美色视频在线| 日本一区二区三区国色天香 | 黑人精品欧美一区二区蜜桃| 91香蕉国产在线观看软件| 日韩欧美不卡在线观看视频| 亚洲色欲色欲www| 国产一区二区伦理片| 欧美人与禽zozo性伦| 国产精品国产三级国产a| 激情深爱一区二区| 欧美精品久久久久久久多人混战| 中文字幕欧美三区| 精品一区二区免费视频| 欧美精品一级二级三级| 一区二区三区在线免费| 国产高清在线观看免费不卡| 在线综合+亚洲+欧美中文字幕| 亚洲欧美日韩久久| 成人h精品动漫一区二区三区| 日韩欧美国产精品一区| 亚洲成人激情社区| 91在线你懂得| 国产精品色噜噜| 高清在线成人网| 国产农村妇女毛片精品久久麻豆| 青椒成人免费视频| 欧美老年两性高潮| 亚洲一区自拍偷拍| 色网综合在线观看| 中文字幕在线一区| 成人黄色电影在线| 国产精品美女一区二区| 成人综合婷婷国产精品久久| 久久久99久久| 成人免费视频视频| 中日韩av电影|