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

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

?? ogrogdidatasource.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrogdidatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  OGDI Bridge * Purpose:  Implements OGROGDIDataSource class. * Author:   Daniel Morissette, danmo@videotron.ca *           (Based on some code contributed by Frank Warmerdam :) * ****************************************************************************** * Copyright (c) 2000, Daniel Morissette * * 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 "ogrogdi.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrogdidatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                         OGROGDIDataSource()                          *//************************************************************************/OGROGDIDataSource::OGROGDIDataSource(){    m_pszFullName = NULL;    m_papoLayers = NULL;    m_nLayers = 0;    m_nClientID = -1;    m_poSpatialRef = NULL;    m_poCurrentLayer = NULL;}/************************************************************************//*                         ~OGROGDIDataSource()                         *//************************************************************************/OGROGDIDataSource::~OGROGDIDataSource(){    CPLFree(m_pszFullName );    for( int i = 0; i < m_nLayers; i++ )        delete m_papoLayers[i];    CPLFree( m_papoLayers );    if (m_nClientID != -1)    {        ecs_Result *psResult;        psResult = cln_DestroyClient( m_nClientID );        ecs_CleanUp( psResult );    }    if (m_poSpatialRef)        m_poSpatialRef->Release();}/************************************************************************//*                                Open()                                *//************************************************************************/int OGROGDIDataSource::Open( const char * pszNewName, int bTestOpen ){    ecs_Result *psResult;    char *pszFamily=NULL, *pszLyrName=NULL;    char *pszWorkingName;    CPLAssert( m_nLayers == 0 );    /* -------------------------------------------------------------------- *//*      Parse the dataset name.                                         *//*      i.e.                                                            *//* gltp://<hostname>/<format>/<path_to_dataset>[:<layer_name>:<Family>] *//*                                                                      *//*      Where <Family> is one of: Line, Area, Point, and Text           *//* -------------------------------------------------------------------- */        if( !EQUALN(pszNewName,"gltp:",5) )            return FALSE;        pszWorkingName = CPLStrdup( pszNewName );        pszFamily = strrchr(pszWorkingName, ':');        // Don't treat drive name colon as family separator.  It is assumed        // that drive names are on character long, and preceeded by a         // forward or backward slash.        if( pszFamily < pszWorkingName+2             || pszFamily[-2] == '/'            || pszFamily[-2] == '\\' )            pszFamily = NULL;                if (pszFamily && pszFamily != pszWorkingName + 4)        {            *pszFamily = '\0';            pszFamily++;            pszLyrName = strrchr(pszWorkingName, ':');            if (pszLyrName == pszWorkingName + 4)                pszLyrName = NULL;            if( pszLyrName != NULL )            {                *pszLyrName = '\0';                pszLyrName++;            }        }/* -------------------------------------------------------------------- *//*      Open the client interface.                                      *//* -------------------------------------------------------------------- */        psResult = cln_CreateClient(&m_nClientID, pszWorkingName);        CPLFree( pszWorkingName );        if( ECSERROR( psResult ) )        {            if (!bTestOpen)            {                CPLError( CE_Failure, CPLE_AppDefined,                          "OGDI DataSource Open Failed: %s\n",                          psResult->message );            }            return FALSE;        }        m_pszFullName = CPLStrdup(pszNewName);/* -------------------------------------------------------------------- *//*      Capture some information from the file.                         *//* -------------------------------------------------------------------- */        psResult = cln_GetGlobalBound( m_nClientID );        if( ECSERROR(psResult) )        {            CPLError( CE_Failure, CPLE_AppDefined,                      "%s", psResult->message );            return FALSE;        }        m_sGlobalBounds = ECSREGION(psResult);        psResult = cln_GetServerProjection(m_nClientID);        if( ECSERROR(psResult) )        {            CPLError( CE_Failure, CPLE_AppDefined,                      "%s", psResult->message );            return FALSE;        }        m_poSpatialRef = new OGRSpatialReference;        if( m_poSpatialRef->importFromProj4( ECSTEXT(psResult) ) != OGRERR_NONE )        {            CPLError( CE_Warning, CPLE_NotSupported,                      "untranslatable PROJ.4 projection: %s\n",                       ECSTEXT(psResult) );            delete m_poSpatialRef;            m_poSpatialRef = NULL;        }/* -------------------------------------------------------------------- *//*      Select the global region.                                       *//* -------------------------------------------------------------------- */        psResult = cln_SelectRegion( m_nClientID, &m_sGlobalBounds );        if( ECSERROR(psResult) )        {            CPLError( CE_Failure, CPLE_AppDefined,                      "%s", psResult->message );            return FALSE;        }    /* -------------------------------------------------------------------- *//*      If an explicit layer was selected, just create that layer.      *//* -------------------------------------------------------------------- */        m_poCurrentLayer = NULL;        if( pszLyrName != NULL )        {            ecs_Family  eFamily;            if (EQUAL(pszFamily, "Line"))                eFamily = Line;            else if (EQUAL(pszFamily, "Area"))                eFamily = Area;            else if (EQUAL(pszFamily, "Point"))                eFamily = Point;            else if (EQUAL(pszFamily, "Text"))                eFamily = Text;            else            {                if (!bTestOpen)                {                    CPLError( CE_Failure, CPLE_AppDefined,                              "Invalid or unsupported family name (%s) in URL %s\n",                              pszFamily, m_pszFullName);                }                return FALSE;            }            IAddLayer( pszLyrName, eFamily );        }/* -------------------------------------------------------------------- *//*      Otherwise create a layer for every layer in the capabilities.   *//* -------------------------------------------------------------------- */        else        {            int         i;            const ecs_LayerCapabilities *psLayerCap;            for( i = 0;                 (psLayerCap = cln_GetLayerCapabilities(m_nClientID,i)) != NULL;                 i++ )            {                if( psLayerCap->families[Point] )                    IAddLayer( psLayerCap->name, Point );                if( psLayerCap->families[Line] )                    IAddLayer( psLayerCap->name, Line );                if( psLayerCap->families[Area] )                    IAddLayer( psLayerCap->name, Area );                if( psLayerCap->families[Text] )                    IAddLayer( psLayerCap->name, Text );            }        }        return TRUE;}/************************************************************************//*                             IAddLayer()                              *//*                                                                      *//*      Internal helper function for adding one existing layer to       *//*      the datasource.                                                 *//************************************************************************/void OGROGDIDataSource::IAddLayer( const char *pszLayerName,                                    ecs_Family eFamily ){    m_papoLayers = (OGROGDILayer**)        CPLRealloc( m_papoLayers, (m_nLayers+1) * sizeof(OGROGDILayer*));        m_papoLayers[m_nLayers++] = new OGROGDILayer(this, pszLayerName, eFamily);}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGROGDIDataSource::TestCapability( const char * pszCap ){    return FALSE;}/************************************************************************//*                              GetLayer()                              *//************************************************************************/OGRLayer *OGROGDIDataSource::GetLayer( int iLayer ){    if( iLayer < 0 || iLayer >= m_nLayers )        return NULL;    else        return m_papoLayers[iLayer];}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色中文字幕| 三级一区在线视频先锋 | 欧美韩国日本一区| 亚洲欧美日韩国产成人精品影院 | 日本二三区不卡| 精品国产一区二区精华| 亚洲一级二级在线| 波多野结衣中文字幕一区二区三区| 在线观看亚洲精品视频| 久久综合色播五月| 亚洲主播在线观看| 国产精品香蕉一区二区三区| 91高清视频免费看| 久久久精品免费免费| 亚洲欧美另类小说| 国产一区二区三区免费| 欧洲另类一二三四区| 久久精品人人做人人爽人人 | 欧美日韩综合在线| 中文字幕免费观看一区| 日本不卡1234视频| 色婷婷av一区| 国产精品天美传媒| 午夜精品福利久久久| 成人免费福利片| 欧美精品一区二区三区久久久| 亚洲免费在线播放| 黄色精品一二区| 欧美精品久久久久久久久老牛影院| 国产日韩影视精品| 亚洲一区二区三区视频在线播放| 国产成人午夜精品影院观看视频| 在线观看日韩电影| 亚洲综合色婷婷| 色综合欧美在线视频区| 精品日韩欧美在线| 免费成人在线视频观看| 欧美性猛交xxxxxx富婆| 国产午夜精品理论片a级大结局| 蜜桃视频在线一区| 欧美日本一区二区在线观看| 一区二区中文视频| 不卡视频在线观看| 国产日产欧产精品推荐色 | 精品污污网站免费看| 亚洲欧美日韩电影| 色婷婷综合久久久久中文| 国产精品乱码人人做人人爱| 国产精品影视天天线| 久久影院午夜论| 国产一区二区91| 久久精品欧美日韩精品| 韩国av一区二区三区| 精品欧美乱码久久久久久1区2区| 亚洲一区二区视频在线| 欧美在线不卡视频| 亚洲主播在线观看| 色综合久久久久综合体| 一区二区在线免费观看| 色婷婷精品久久二区二区蜜臀av| 久久女同性恋中文字幕| 国产馆精品极品| 中文字幕一区二区三区四区不卡 | 久久久久久久久久久久久久久99| 日韩精品亚洲专区| 国产色产综合色产在线视频 | 久久影院视频免费| 色噜噜狠狠色综合中国| 日本网站在线观看一区二区三区| 久久婷婷综合激情| 欧美日韩中文字幕一区| 国产一区二区伦理| 亚洲一区欧美一区| 久久精品视频在线看| 欧美日韩国产一区| 国产成人亚洲综合色影视| 亚洲777理论| 国产精品久久久一本精品| 欧美二区乱c少妇| 99riav久久精品riav| 久久精品理论片| 亚洲图片欧美一区| 国产精品久久夜| 久久先锋影音av| 欧美精品1区2区| 欧美三区免费完整视频在线观看| 国内偷窥港台综合视频在线播放| 亚洲综合色噜噜狠狠| 中文字幕乱码久久午夜不卡| 欧美一级二级在线观看| 色呦呦网站一区| 97久久超碰国产精品电影| 久久精品国产精品青草| 五月综合激情婷婷六月色窝| 亚洲精品中文在线观看| 日本一区二区三级电影在线观看| 6080国产精品一区二区| 在线免费观看日本一区| 91视频在线观看免费| 国产成人综合网| 国精品**一区二区三区在线蜜桃| 丝袜美腿亚洲色图| 亚洲丰满少妇videoshd| 一级中文字幕一区二区| 国产精品久久久久aaaa樱花| 久久久久久99精品| 久久久久久免费| 久久久精品国产99久久精品芒果| 91精品国模一区二区三区| 欧美三级乱人伦电影| 欧美色综合久久| 91精品久久久久久蜜臀| 777久久久精品| 欧美一区二区二区| 日韩欧美中文一区| 亚洲精品一区二区三区福利| 日韩欧美成人一区| 精品国产百合女同互慰| 欧美成人欧美edvon| 久久在线观看免费| 亚洲国产岛国毛片在线| 中文字幕永久在线不卡| 亚洲欧洲www| 亚洲一区二区在线观看视频| 夜夜操天天操亚洲| 日韩av高清在线观看| 精品系列免费在线观看| 国产99久久精品| 97se狠狠狠综合亚洲狠狠| 一本色道综合亚洲| 欧美日韩精品免费观看视频| 911国产精品| 国产欧美一区二区三区沐欲| 国产精品欧美一区喷水| 亚洲视频免费看| 日韩在线卡一卡二| 国产精品中文字幕日韩精品| jlzzjlzz国产精品久久| 欧美私模裸体表演在线观看| 91精品国产综合久久精品| www成人在线观看| 国产精品久久久久影视| 亚洲最大成人网4388xx| 婷婷一区二区三区| 国产福利一区在线| 波多野结衣一区二区三区| 精品婷婷伊人一区三区三| 26uuu国产一区二区三区| 国产精品久久久久精k8| 偷窥少妇高潮呻吟av久久免费| 国产伦精品一区二区三区免费迷| 99久久精品费精品国产一区二区| 欧美日韩精品一区二区天天拍小说 | 久久99热这里只有精品| 欧美色网一区二区| 日韩欧美国产麻豆| 国产精品激情偷乱一区二区∴| 亚洲精品欧美激情| 久久99精品久久久久| 一本色道久久加勒比精品| 精品少妇一区二区三区在线视频| 日韩理论电影院| 狠狠色综合播放一区二区| 在线免费观看日韩欧美| 欧美韩国日本综合| 久久99国产精品久久99 | 国产一区二区h| 欧美卡1卡2卡| 亚洲靠逼com| 高清国产一区二区三区| 欧美一级二级三级蜜桃| 综合久久国产九一剧情麻豆| 激情国产一区二区 | 欧美午夜精品一区| 中文字幕久久午夜不卡| 久久99久久99精品免视看婷婷 | 国产91精品久久久久久久网曝门| 欧美三片在线视频观看| 中文字幕日韩一区| 国产精品2024| 日韩三级视频中文字幕| 亚洲成av人在线观看| 91热门视频在线观看| 国产女同互慰高潮91漫画| 麻豆成人91精品二区三区| 欧美三级在线看| 亚洲国产精品综合小说图片区| 国产精品乡下勾搭老头1| 欧美成人精品福利| 蜜臀av一区二区在线免费观看| 91国产精品成人| 亚洲曰韩产成在线| 91丨九色丨蝌蚪丨老版| 中文字幕亚洲一区二区va在线| 国产精品123区| 亚洲国产高清不卡| av日韩在线网站| 亚洲色图制服诱惑| 99精品久久免费看蜜臀剧情介绍| 国产精品网站导航|