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

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

?? ogrpgeotablelayer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫(kù)
?? CPP
字號(hào):
/****************************************************************************** * $Id: ogrpgeotablelayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  OpenGIS Simple Features Reference Implementation * Purpose:  Implements OGRPGeoTableLayer class, access to an existing table. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 2005, 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 "cpl_conv.h"#include "ogr_pgeo.h"CPL_CVSID("$Id: ogrpgeotablelayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                          OGRPGeoTableLayer()                         *//************************************************************************/OGRPGeoTableLayer::OGRPGeoTableLayer( OGRPGeoDataSource *poDSIn ){    poDS = poDSIn;    pszQuery = NULL;    bUpdateAccess = TRUE;    iNextShapeId = 0;    nSRSId = -1;    poFeatureDefn = NULL;    memset( &sExtent, 0, sizeof(sExtent) );}/************************************************************************//*                          ~OGRPGeoTableLayer()                          *//************************************************************************/OGRPGeoTableLayer::~OGRPGeoTableLayer(){    CPLFree( pszQuery );    ClearStatement();}/************************************************************************//*                             Initialize()                             *//************************************************************************/CPLErr OGRPGeoTableLayer::Initialize( const char *pszTableName,                                       const char *pszGeomCol,                                      int nShapeType,                                       double dfExtentLeft,                                      double dfExtentRight,                                      double dfExtentBottom,                                      double dfExtentTop,                                      int nSRID,                                      int bHasZ ){    CPLODBCSession *poSession = poDS->GetSession();    CPLFree( pszGeomColumn );    if( pszGeomCol == NULL )        pszGeomColumn = NULL;    else        pszGeomColumn = CPLStrdup( pszGeomCol );    CPLFree( pszFIDColumn );    pszFIDColumn = NULL;    sExtent.MinX = dfExtentLeft;    sExtent.MaxX = dfExtentRight;    sExtent.MinY = dfExtentBottom;    sExtent.MaxY = dfExtentTop;    LookupSRID( nSRID );/* -------------------------------------------------------------------- *//*      Setup geometry type.                                            *//* -------------------------------------------------------------------- */    OGRwkbGeometryType  eOGRType;    switch( nShapeType )    {        case SHPT_POINT:        case SHPT_POINTM:        case SHPT_POINTZ:            eOGRType = wkbPoint;            break;        case SHPT_ARC:        case SHPT_ARCZ:        case SHPT_ARCM:            eOGRType = wkbLineString;            break;                    case SHPT_MULTIPOINT:        case SHPT_MULTIPOINTZ:        case SHPT_MULTIPOINTM:            eOGRType = wkbMultiPoint;            break;        default:            eOGRType = wkbUnknown;            break;    }    if( eOGRType != wkbUnknown && bHasZ )        eOGRType = (OGRwkbGeometryType)(((int) eOGRType) | wkb25DBit);/* -------------------------------------------------------------------- *//*      Do we have a simple primary key?                                *//* -------------------------------------------------------------------- */    CPLODBCStatement oGetKey( poSession );        if( oGetKey.GetPrimaryKeys( pszTableName ) && oGetKey.Fetch() )    {        pszFIDColumn = CPLStrdup(oGetKey.GetColData( 3 ));                if( oGetKey.Fetch() ) // more than one field in key!         {            CPLFree( pszFIDColumn );            pszFIDColumn = NULL;            CPLDebug( "PGeo", "%s: Compound primary key, ignoring.",                      pszTableName );        }        else            CPLDebug( "PGeo",                       "%s: Got primary key %s.",                      pszTableName, pszFIDColumn );    }    else        CPLDebug( "PGeo", "%s: no primary key", pszTableName );/* -------------------------------------------------------------------- *//*      Get the column definitions for this table.                      *//* -------------------------------------------------------------------- */    CPLODBCStatement oGetCol( poSession );    CPLErr eErr;    if( !oGetCol.GetColumns( pszTableName ) )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "GetColumns() failed on %s.\n%s",                  pszTableName, poSession->GetLastError() );        return CE_Failure;    }    eErr = BuildFeatureDefn( pszTableName, &oGetCol );    if( eErr != CE_None )        return eErr;    if( poFeatureDefn->GetFieldCount() == 0 )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "No column definitions found for table '%s', layer not usable.",                   pszTableName );        return CE_Failure;    }/* -------------------------------------------------------------------- *//*      Set geometry type.                                              *//*                                                                      *//*      ... per reports from Craig Miller, it seems we cannot really    *//*      trust the ShapeType value.  At the very least "line" tables     *//*      sometimes have multilinestrings.  So for now we just always     *//*      return wkbUnknown.                                              *//* -------------------------------------------------------------------- */#ifdef notdef    poFeatureDefn->SetGeomType( eOGRType );#endif    return CE_None;}/************************************************************************//*                           ClearStatement()                           *//************************************************************************/void OGRPGeoTableLayer::ClearStatement(){    if( poStmt != NULL )    {        delete poStmt;        poStmt = NULL;    }}/************************************************************************//*                            GetStatement()                            *//************************************************************************/CPLODBCStatement *OGRPGeoTableLayer::GetStatement(){    if( poStmt == NULL )        ResetStatement();    return poStmt;}/************************************************************************//*                           ResetStatement()                           *//************************************************************************/OGRErr OGRPGeoTableLayer::ResetStatement(){    ClearStatement();    iNextShapeId = 0;    poStmt = new CPLODBCStatement( poDS->GetSession() );    poStmt->Append( "SELECT * FROM " );    poStmt->Append( poFeatureDefn->GetName() );    if( pszQuery != NULL )        poStmt->Appendf( " WHERE %s", pszQuery );    if( poStmt->ExecuteSQL() )        return OGRERR_NONE;    else    {        delete poStmt;        poStmt = NULL;        return OGRERR_FAILURE;    }}/************************************************************************//*                            ResetReading()                            *//************************************************************************/void OGRPGeoTableLayer::ResetReading(){    ClearStatement();    OGRPGeoLayer::ResetReading();}/************************************************************************//*                             GetFeature()                             *//************************************************************************/OGRFeature *OGRPGeoTableLayer::GetFeature( long nFeatureId ){    if( pszFIDColumn == NULL )        return OGRPGeoLayer::GetFeature( nFeatureId );    ClearStatement();    iNextShapeId = nFeatureId;    poStmt = new CPLODBCStatement( poDS->GetSession() );    poStmt->Append( "SELECT * FROM " );    poStmt->Append( poFeatureDefn->GetName() );    poStmt->Appendf( " WHERE %s = %d", pszFIDColumn, nFeatureId );    if( !poStmt->ExecuteSQL() )    {        delete poStmt;        poStmt = NULL;        return NULL;    }    return GetNextRawFeature();}/************************************************************************//*                         SetAttributeFilter()                         *//************************************************************************/OGRErr OGRPGeoTableLayer::SetAttributeFilter( const char *pszQuery ){    if( (pszQuery == NULL && this->pszQuery == NULL)        || (pszQuery != NULL && this->pszQuery != NULL             && EQUAL(pszQuery,this->pszQuery)) )        return OGRERR_NONE;    CPLFree( this->pszQuery );    this->pszQuery = CPLStrdup( pszQuery );    ClearStatement();    return OGRERR_NONE;}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRPGeoTableLayer::TestCapability( const char * pszCap ){    if( EQUAL(pszCap,OLCSequentialWrite)              || EQUAL(pszCap,OLCRandomWrite) )        return bUpdateAccess;    else if( EQUAL(pszCap,OLCCreateField) )        return bUpdateAccess;    else         return OGRPGeoLayer::TestCapability( pszCap );}/************************************************************************//*                          GetFeatureCount()                           *//*                                                                      *//*      If a spatial filter is in effect, we turn control over to       *//*      the generic counter.  Otherwise we return the total count.      *//*      Eventually we should consider implementing a more efficient     *//*      way of counting features matching a spatial query.              *//************************************************************************/int OGRPGeoTableLayer::GetFeatureCount( int bForce ){    if( m_poFilterGeom != NULL )        return OGRPGeoLayer::GetFeatureCount( bForce );    CPLODBCStatement oStmt( poDS->GetSession() );    oStmt.Append( "SELECT COUNT(*) FROM " );    oStmt.Append( poFeatureDefn->GetName() );    if( pszQuery != NULL )        oStmt.Appendf( " WHERE %s", pszQuery );    if( !oStmt.ExecuteSQL() || !oStmt.Fetch() )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "GetFeatureCount() failed on query %s.\n%s",                  oStmt.GetCommand(), poDS->GetSession()->GetLastError() );        return -1;    }    return atoi(oStmt.GetColData(0));}/************************************************************************//*                             GetExtent()                              *//************************************************************************/OGRErr OGRPGeoTableLayer::GetExtent( OGREnvelope *psExtent, int bForce ){    *psExtent = sExtent;    return OGRERR_NONE;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影一级片| 午夜精品在线看| 久久综合色8888| 日韩欧美国产综合在线一区二区三区| 精品视频资源站| 欧美日韩免费高清一区色橹橹 | 成人午夜av电影| 国产精品91xxx| 成人动漫视频在线| 99精品视频在线免费观看| 99久久精品99国产精品| 色婷婷综合久色| 欧美午夜一区二区三区| 欧美日韩国产天堂| 91精品久久久久久蜜臀| 日韩精品最新网址| 久久精品日韩一区二区三区| 中文字幕第一页久久| 亚洲色图欧洲色图| 偷窥少妇高潮呻吟av久久免费| 石原莉奈一区二区三区在线观看| 蜜臀久久久久久久| 国产麻豆精品95视频| 成人app网站| 欧美精品一区二区久久婷婷| 日韩欧美你懂的| 欧美亚洲综合色| 成人午夜又粗又硬又大| 蜜臀av在线播放一区二区三区| 中文字幕日本乱码精品影院| 国产性色一区二区| 日韩欧美你懂的| 国产风韵犹存在线视精品| 久久久五月婷婷| 日韩一区二区免费电影| 日韩欧美国产综合| 亚洲日本va午夜在线影院| 一区二区三区**美女毛片| 图片区小说区国产精品视频| 久久久国产精品麻豆| 欧美一区二区三区四区在线观看| 欧美白人最猛性xxxxx69交| 国产午夜精品福利| 一区二区三区小说| 久久精品国产亚洲aⅴ| 成人性生交大片免费看在线播放 | 一区二区三区在线视频观看58| 国产制服丝袜一区| 国产suv精品一区二区三区| 色吧成人激情小说| 日韩一区二区三区免费观看| 国产区在线观看成人精品| 一区二区三区**美女毛片| 狠狠色狠狠色综合日日91app| 91免费版在线看| 精品88久久久久88久久久| 亚洲精品国产品国语在线app| 麻豆成人免费电影| 91福利精品视频| 国产午夜精品一区二区| 日韩一区精品视频| 色综合色狠狠天天综合色| 久久天天做天天爱综合色| 亚洲三级小视频| 国产一区中文字幕| 欧美日韩一区国产| 国产精品久久夜| 精品午夜久久福利影院| 欧美在线观看视频在线| 国产欧美日韩视频一区二区| 午夜免费欧美电影| 99九九99九九九视频精品| xfplay精品久久| 日韩国产高清在线| 在线视频欧美精品| 国产精品全国免费观看高清| 精品亚洲aⅴ乱码一区二区三区| 欧美色区777第一页| 国产精品美女久久久久久久网站| 美腿丝袜一区二区三区| 欧美体内she精高潮| 亚洲视频你懂的| 国内精品嫩模私拍在线| 91精品国产色综合久久不卡蜜臀| 亚洲欧美激情一区二区| 国产精品一区二区91| 日韩女优av电影| 麻豆精品在线观看| 欧美久久一二三四区| 亚洲综合网站在线观看| 99re在线视频这里只有精品| 欧美国产激情一区二区三区蜜月 | 色系网站成人免费| 欧美高清在线视频| 久久99久久99小草精品免视看| 欧美一区二区三区视频免费播放| 一区二区三区在线影院| 91久久精品日日躁夜夜躁欧美| 国产网红主播福利一区二区| 久久福利资源站| 91精品免费观看| 麻豆一区二区在线| 日韩美女一区二区三区| 男女性色大片免费观看一区二区 | 亚洲三级免费电影| 一本一道综合狠狠老| 亚洲黄色免费电影| 日本精品视频一区二区三区| 亚洲欧美日韩国产中文在线| 91免费视频网| 亚洲一区二区在线视频| 欧美日韩国产一级片| 奇米综合一区二区三区精品视频| 欧美一区二区三区四区在线观看| 美女被吸乳得到大胸91| 久久综合色之久久综合| 成人激情文学综合网| 成人欧美一区二区三区1314| 色琪琪一区二区三区亚洲区| 一区二区理论电影在线观看| 欧美日韩一级片在线观看| 日本少妇一区二区| 精品99999| www.日韩在线| 亚洲国产欧美在线人成| 欧美一区二区三区婷婷月色| 国产乱码精品一区二区三| 亚洲国产精品国自产拍av| 色国产综合视频| 亚洲va中文字幕| 精品国一区二区三区| 风间由美一区二区三区在线观看| 亚洲色图欧美偷拍| 欧美日韩不卡一区| 国产一区二区三区蝌蚪| 最新中文字幕一区二区三区| 欧美午夜精品一区| 久久精品二区亚洲w码| 国产无一区二区| 欧美色综合久久| 极品少妇一区二区三区精品视频| 国产精品不卡在线观看| 欧美日韩高清在线播放| 国内不卡的二区三区中文字幕| 日韩美女视频一区| 正在播放亚洲一区| 福利电影一区二区| 五月综合激情日本mⅴ| 国产亚洲一区二区三区| 色偷偷88欧美精品久久久| 激情综合一区二区三区| 亚洲视频一二三区| 日韩视频在线永久播放| voyeur盗摄精品| 日本va欧美va欧美va精品| 国产精品伦理一区二区| 欧美肥妇毛茸茸| 91视频精品在这里| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品自拍动漫在线| 久久久久综合网| 欧美久久久久久久久| av高清不卡在线| 久久精品999| 一区二区在线观看免费| 久久午夜电影网| 欧美一二三区在线观看| av日韩在线网站| 国产精品一级在线| 青青草精品视频| 又紧又大又爽精品一区二区| 欧美精品一区二区久久久| 欧美久久久久免费| 色综合天天综合网天天狠天天| 国产精品系列在线播放| 免费在线看一区| 亚州成人在线电影| 最新不卡av在线| 久久久91精品国产一区二区三区| 91.com视频| 在线观看视频91| fc2成人免费人成在线观看播放| 久久国产乱子精品免费女| 亚洲第一精品在线| 亚洲一区欧美一区| 亚洲日本在线视频观看| 日本一区二区视频在线观看| 日韩欧美精品三级| 欧美一区二区三区喷汁尤物| 欧美午夜精品理论片a级按摩| 99r精品视频| 99精品欧美一区| 成人精品视频.| 福利视频网站一区二区三区| 国产美女主播视频一区| 久久成人18免费观看| 奇米影视一区二区三区| 日韩激情在线观看| 亚洲国产日韩精品| 丝袜美腿一区二区三区|