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

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

?? ogrdodsdatasource.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrdodsdatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  OGR/DODS Interface * Purpose:  Implements OGRDODSDataSource class. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 2004, 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_dods.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrdodsdatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                         OGRDODSDataSource()                          *//************************************************************************/OGRDODSDataSource::OGRDODSDataSource(){    pszName = NULL;    papoLayers = NULL;    nLayers = 0;    poConnection = NULL;    poBTF = new BaseTypeFactory();    poDDS = new DDS( poBTF );}/************************************************************************//*                         ~OGRDODSDataSource()                         *//************************************************************************/OGRDODSDataSource::~OGRDODSDataSource(){    int         i;    CPLFree( pszName );    for( i = 0; i < nLayers; i++ )        delete papoLayers[i];        CPLFree( papoLayers );    if( poConnection != NULL )        delete poConnection;    delete poDDS;    delete poBTF;}/************************************************************************//*                                Open()                                *//************************************************************************/int OGRDODSDataSource::Open( const char * pszNewName ){    CPLAssert( nLayers == 0 );					         pszName = CPLStrdup( pszNewName );/* -------------------------------------------------------------------- *//*      Parse the URL into a base url, projection and constraint        *//*      expression.                                                     *//* -------------------------------------------------------------------- */    char *pszWrkURL = CPLStrdup( pszNewName + 5 );    char *pszFound;    pszFound = strstr(pszWrkURL,"&");    if( pszFound )    {        oConstraints = pszFound;        *pszFound = '\0';    }            pszFound = strstr(pszWrkURL,"?");    if( pszFound )    {        oProjection = pszFound+1;        *pszFound = '\0';    }    // Trim common requests.    int nLen = strlen(pszWrkURL);    if( strcmp(pszWrkURL+nLen-4,".das") == 0 )        pszWrkURL[nLen-4] = '\0';    else if( strcmp(pszWrkURL+nLen-4,".dds") == 0 )        pszWrkURL[nLen-4] = '\0';    else if( strcmp(pszWrkURL+nLen-4,".asc") == 0 )        pszWrkURL[nLen-4] = '\0';    else if( strcmp(pszWrkURL+nLen-5,".dods") == 0 )        pszWrkURL[nLen-5] = '\0';    else if( strcmp(pszWrkURL+nLen-5,".html") == 0 )        pszWrkURL[nLen-5] = '\0';            oBaseURL = pszWrkURL;    CPLFree( pszWrkURL );/* -------------------------------------------------------------------- *//*      Do we want to override the .dodsrc file setting?  Only do       *//*      the putenv() if there isn't already a DODS_CONF in the          *//*      environment.                                                    *//* -------------------------------------------------------------------- */    if( CPLGetConfigOption( "DODS_CONF", NULL ) != NULL         && getenv("DODS_CONF") == NULL )    {        static char szDODS_CONF[1000];        sprintf( szDODS_CONF, "DODS_CONF=%.980s",                  CPLGetConfigOption( "DODS_CONF", "" ) );        putenv( szDODS_CONF );    }/* -------------------------------------------------------------------- *//*      If we have a overridding AIS file location, apply it now.       *//* -------------------------------------------------------------------- */    if( CPLGetConfigOption( "DODS_AIS_FILE", NULL ) != NULL )    {        string oAISFile = CPLGetConfigOption( "DODS_AIS_FILE", "" );        RCReader::instance()->set_ais_database( oAISFile );    }/* -------------------------------------------------------------------- *//*      Connect to the server.                                          *//* -------------------------------------------------------------------- */    string version;    try     {        poConnection = new AISConnect( oBaseURL );        version = poConnection->request_version();    }     catch (Error &e)     {        CPLError(CE_Failure, CPLE_OpenFailed,                  e.get_error_message().c_str() );        return FALSE;    }/* -------------------------------------------------------------------- *//*      We presume we only work with version 3 servers.                 *//* -------------------------------------------------------------------- */    if (version.empty() || version.find("/3.") == string::npos)    {        CPLError( CE_Warning, CPLE_AppDefined,                   "I connected to the URL but could not get a DAP 3.x version string\n"                  "from the server.  I will continue to connect but access may fail.");    }/* -------------------------------------------------------------------- *//*      Fetch the DAS and DDS info about the server.                    *//* -------------------------------------------------------------------- */    try    {        poConnection->request_das( oDAS );        poConnection->request_dds( *poDDS, oProjection + oConstraints );    }    catch (Error &e)     {        CPLError(CE_Failure, CPLE_AppDefined,                 "Error fetching DAS or DDS:\n%s",                  e.get_error_message().c_str() );        return FALSE;    }/* -------------------------------------------------------------------- *//*      Do we have any ogr_layer_info attributes in the DAS?  If so,    *//*      use them to define the layers.                                  *//* -------------------------------------------------------------------- */    AttrTable::Attr_iter dv_i;    for( dv_i = oDAS.attr_begin(); dv_i != oDAS.attr_end(); dv_i++ )    {        if( EQUALN(oDAS.get_name(dv_i).c_str(),"ogr_layer_info",14)             && oDAS.is_container( dv_i ) )        {            AttrTable *poAttr = oDAS.get_attr_table( dv_i );            string target_container = poAttr->get_attr( "target_container" );            BaseType *poVar = poDDS->var( target_container.c_str() );                        if( poVar == NULL )            {                CPLError( CE_Warning, CPLE_AppDefined,                           "Unable to find variable '%s' named in\n"                          "ogr_layer_info.target_container, skipping.",                           target_container.c_str() );                continue;            }            if( poVar->type() == dods_sequence_c )                AddLayer(                     new OGRDODSSequenceLayer(this,                                             target_container.c_str(),                                             poAttr) );            else if( poVar->type() == dods_grid_c                      || poVar->type() == dods_array_c )                AddLayer( new OGRDODSGridLayer(this,target_container.c_str(),                                               poAttr) );        }    }    /* -------------------------------------------------------------------- *//*      Walk through the DODS variables looking for easily targetted    *//*      ones.  Eventually this will need to be driven by the AIS info.  *//* -------------------------------------------------------------------- */    if( nLayers == 0 )    {        DDS::Vars_iter v_i;        for( v_i = poDDS->var_begin(); v_i != poDDS->var_end(); v_i++ )        {            BaseType *poVar = *v_i;                        if( poVar->type() == dods_sequence_c )                AddLayer( new OGRDODSSequenceLayer(this,poVar->name().c_str(),                                                   NULL) );            else if( poVar->type() == dods_grid_c                      || poVar->type() == dods_array_c )                AddLayer( new OGRDODSGridLayer(this,poVar->name().c_str(),                                               NULL) );        }    }    return TRUE;}/************************************************************************//*                              AddLayer()                              *//************************************************************************/void OGRDODSDataSource::AddLayer( OGRDODSLayer *poLayer ){    papoLayers = (OGRDODSLayer **)        CPLRealloc( papoLayers,  sizeof(OGRDODSLayer *) * (nLayers+1) );    papoLayers[nLayers++] = poLayer;}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRDODSDataSource::TestCapability( const char * pszCap ){    if( EQUAL(pszCap,ODsCCreateLayer) )        return TRUE;    else        return FALSE;}/************************************************************************//*                              GetLayer()                              *//************************************************************************/OGRLayer *OGRDODSDataSource::GetLayer( int iLayer ){    if( iLayer < 0 || iLayer >= nLayers )        return NULL;    else        return papoLayers[iLayer];}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级一区二区| 视频一区二区三区入口| 亚洲一二三级电影| 韩国三级在线一区| 欧美综合在线视频| 国产蜜臀av在线一区二区三区| 一区二区三区免费在线观看| 国产麻豆成人传媒免费观看| 欧美日韩成人综合天天影院| 国产精品麻豆视频| 韩国精品主播一区二区在线观看| 欧美系列一区二区| 国产精品视频一二三区| 韩国精品主播一区二区在线观看 | 9191久久久久久久久久久| 国产精品视频一区二区三区不卡| 奇米影视7777精品一区二区| 欧美日韩在线免费视频| 国产精品免费久久久久| 国产成人精品在线看| 精品少妇一区二区三区视频免付费 | 欧美日韩国产成人在线免费| 亚洲素人一区二区| 国产福利一区在线| 久久蜜臀中文字幕| 久久成人久久爱| 日韩欧美专区在线| 免费成人av资源网| 欧美一级夜夜爽| 青青草精品视频| 日韩午夜小视频| 热久久久久久久| 欧美一级理论性理论a| 日本中文字幕一区二区视频| 欧美日本一道本| 婷婷久久综合九色综合绿巨人| 91久久免费观看| 一区二区三区国产| 欧美午夜精品一区二区三区| 午夜久久久久久| 欧美一级精品大片| 经典三级视频一区| 久久男人中文字幕资源站| 国产精品一区久久久久| 国产区在线观看成人精品| 国产**成人网毛片九色| 中文字幕亚洲在| 欧美三级中文字| 免费成人性网站| 国产丝袜欧美中文另类| av一区二区三区黑人| 成人欧美一区二区三区1314| 91福利国产精品| 亚洲一区日韩精品中文字幕| 在线电影一区二区三区| 久久99国产精品免费网站| 久久精品一区二区三区av| 91蜜桃网址入口| 婷婷综合五月天| 久久久久99精品一区| 91碰在线视频| 日韩极品在线观看| 国产欧美日韩激情| 欧美午夜片在线观看| 国产又黄又大久久| 亚洲欧美一区二区不卡| 在线电影一区二区三区| 成人一区二区在线观看| 亚洲电影激情视频网站| 久久亚洲影视婷婷| 在线视频你懂得一区| 久久99深爱久久99精品| 亚洲免费观看高清| 精品国产青草久久久久福利| 91丨porny丨户外露出| 日本少妇一区二区| 国产精品久久久久久久久久免费看 | 久久综合网色—综合色88| 色综合久久久久| 狠狠色综合播放一区二区| 洋洋av久久久久久久一区| 26uuu亚洲综合色欧美| 欧美亚一区二区| 成人午夜视频在线| 日韩成人av影视| 亚洲四区在线观看| 国产视频不卡一区| 日韩精品在线一区| 欧美在线观看一二区| 成人涩涩免费视频| 精品在线播放午夜| 日本欧美一区二区在线观看| 亚洲蜜臀av乱码久久精品| 久久久久国产一区二区三区四区| 欧美日韩精品一区二区三区| 91丝袜美腿高跟国产极品老师| 国产激情一区二区三区| 免费视频最近日韩| 亚洲制服丝袜一区| 亚洲素人一区二区| 国产精品沙发午睡系列990531| 精品少妇一区二区三区在线播放| 欧美肥妇free| 欧美日韩激情一区二区三区| 91美女精品福利| 91美女片黄在线观看91美女| av电影在线观看一区| 国产精品自拍三区| 国产伦理精品不卡| 国产综合久久久久久鬼色| 蜜桃一区二区三区四区| 日韩中文字幕亚洲一区二区va在线 | 精品亚洲aⅴ乱码一区二区三区| 亚洲午夜视频在线观看| 亚洲最大色网站| 亚洲综合精品自拍| 香蕉av福利精品导航| 亚洲成人在线网站| 亚洲成av人片一区二区梦乃| 亚洲成人先锋电影| 天天射综合影视| 日韩av电影免费观看高清完整版| 婷婷久久综合九色综合绿巨人| 午夜久久久久久久久| 免费精品99久久国产综合精品| 蜜桃av噜噜一区二区三区小说| 美女看a上一区| 国产精品一区不卡| av在线这里只有精品| 色悠悠亚洲一区二区| 欧美日本免费一区二区三区| 日韩免费观看高清完整版| 久久精品亚洲麻豆av一区二区 | 欧美精品一区二区三区蜜臀| 欧美精品一区二区久久婷婷| 国产人成一区二区三区影院| 日韩一区欧美一区| 午夜精品123| 精品中文字幕一区二区| av一二三不卡影片| 欧美日韩在线播放| 日韩欧美高清dvd碟片| 国产欧美精品一区| 一区二区三区在线免费视频| 日精品一区二区三区| 国产成人免费在线| 一本大道久久a久久精品综合| 欧美一三区三区四区免费在线看| 久久久久久99久久久精品网站| 亚洲天堂福利av| 毛片av一区二区| 91视视频在线观看入口直接观看www| 欧美人伦禁忌dvd放荡欲情| 久久蜜桃香蕉精品一区二区三区| 亚洲精品乱码久久久久久 | 亚洲综合成人在线视频| 精品综合免费视频观看| 在线视频亚洲一区| 久久久91精品国产一区二区精品 | 国产成人av一区二区三区在线| 91福利在线播放| 久久精品人人爽人人爽| 日韩制服丝袜先锋影音| 国产凹凸在线观看一区二区| 在线播放/欧美激情| 国产精品对白交换视频| 美女看a上一区| 欧美日韩国产一二三| 亚洲国产高清在线观看视频| 日本中文字幕一区二区视频| 91福利国产成人精品照片| 国产午夜亚洲精品理论片色戒| 日本最新不卡在线| 在线观看免费成人| 中文字幕在线不卡视频| 国产精品综合一区二区| 欧美精品三级日韩久久| 亚洲精品免费在线观看| 大尺度一区二区| 26uuu国产日韩综合| 美国欧美日韩国产在线播放| 色88888久久久久久影院野外| 国产视频一区在线观看| 国模大尺度一区二区三区| 欧美成人精品福利| 免费在线一区观看| 欧美欧美欧美欧美首页| 亚洲精品高清在线| av电影在线不卡| 亚洲手机成人高清视频| 91麻豆精品国产91久久久久| 18成人在线视频| 99久久综合国产精品| 中文字幕不卡在线播放| 成人蜜臀av电影| 国产精品久久久爽爽爽麻豆色哟哟| 国产美女一区二区三区| 欧美精品一区二区蜜臀亚洲| 久久国产精品区| 久久综合999|