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

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

?? ogrntfdatasource.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫(kù)
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
/****************************************************************************** * $Id: ogrntfdatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  UK NTF Reader * Purpose:  Implements OGRNTFDataSource 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 "ntf.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrntfdatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                          OGRNTFDataSource()                          *//************************************************************************/OGRNTFDataSource::OGRNTFDataSource(){    nLayers = 0;    papoLayers = NULL;    nNTFFileCount = 0;    papoNTFFileReader = NULL;    pszName = NULL;    iCurrentReader = -1;    iCurrentFC = 0;    nFCCount = 0;    papszFCNum = NULL;    papszFCName = NULL;    poFCLayer = NULL;    papszOptions = NULL;    poSpatialRef = new OGRSpatialReference( "PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OSGB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],AUTHORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4277\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER[\"central_meridian\",-2],PARAMETER[\"scale_factor\",0.999601272],PARAMETER[\"false_easting\",400000],PARAMETER[\"false_northing\",-100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AUTHORITY[\"EPSG\",\"27700\"]]" );/* -------------------------------------------------------------------- *//*      Allow initialization of options from the environment.           *//* -------------------------------------------------------------------- */    if( getenv("OGR_NTF_OPTIONS") != NULL )    {        papszOptions =             CSLTokenizeStringComplex( getenv("OGR_NTF_OPTIONS"), ",",                                      FALSE, FALSE );    }}/************************************************************************//*                         ~OGRNTFDataSource()                          *//************************************************************************/OGRNTFDataSource::~OGRNTFDataSource(){    int         i;    for( i = 0; i < nNTFFileCount; i++ )        delete papoNTFFileReader[i];    CPLFree( papoNTFFileReader );    for( i = 0; i < nLayers; i++ )        delete papoLayers[i];    if( poFCLayer != NULL )        delete poFCLayer;        CPLFree( papoLayers );    CPLFree( pszName );    CSLDestroy( papszOptions );    CSLDestroy( papszFCNum );    CSLDestroy( papszFCName );    if( poSpatialRef )        poSpatialRef->Release();}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRNTFDataSource::TestCapability( const char * ){    return FALSE;}/************************************************************************//*                           GetNamedLayer()                            *//************************************************************************/OGRNTFLayer * OGRNTFDataSource::GetNamedLayer( const char * pszName ){    for( int i = 0; i < nLayers; i++ )    {        if( EQUAL(papoLayers[i]->GetLayerDefn()->GetName(),pszName) )            return (OGRNTFLayer *) papoLayers[i];    }    return NULL;}/************************************************************************//*                              AddLayer()                              *//************************************************************************/void OGRNTFDataSource::AddLayer( OGRLayer * poNewLayer ){    papoLayers = (OGRLayer **)        CPLRealloc( papoLayers, sizeof(void*) * ++nLayers );        papoLayers[nLayers-1] = poNewLayer;}/************************************************************************//*                              GetLayer()                              *//************************************************************************/OGRLayer *OGRNTFDataSource::GetLayer( int iLayer ){    if( iLayer < 0 || iLayer > nLayers )        return NULL;    else if( iLayer == nLayers )        return poFCLayer;    else        return papoLayers[iLayer];}/************************************************************************//*                           GetLayerCount()                            *//************************************************************************/int OGRNTFDataSource::GetLayerCount(){    if( poFCLayer == NULL )        return nLayers;    else        return nLayers + 1;}/************************************************************************//*                                Open()                                *//************************************************************************/int OGRNTFDataSource::Open( const char * pszFilename, int bTestOpen,                            char ** papszLimitedFileList ){    VSIStatBuf      stat;    char            **papszFileList = NULL;    pszName = CPLStrdup( pszFilename );/* -------------------------------------------------------------------- *//*      Is the given path a directory or a regular file?                *//* -------------------------------------------------------------------- */    if( CPLStat( pszFilename, &stat ) != 0         || (!VSI_ISDIR(stat.st_mode) && !VSI_ISREG(stat.st_mode)) )    {        if( !bTestOpen )            CPLError( CE_Failure, CPLE_AppDefined,                   "%s is neither a file or directory, NTF access failed.\n",                      pszFilename );        return FALSE;    }    /* -------------------------------------------------------------------- *//*      Build a list of filenames we figure are NTF files.              *//* -------------------------------------------------------------------- */    if( VSI_ISREG(stat.st_mode) )    {        papszFileList = CSLAddString( NULL, pszFilename );    }    else    {        char      **candidateFileList = CPLReadDir( pszFilename );        int         i;        for( i = 0;              candidateFileList != NULL && candidateFileList[i] != NULL;              i++ )         {            if( papszLimitedFileList != NULL                && CSLFindString(papszLimitedFileList,                                 candidateFileList[i]) == -1 )            {                continue;            }                        if( strlen(candidateFileList[i]) > 4              && EQUALN(candidateFileList[i] + strlen(candidateFileList[i])-4,                       ".ntf",4) )            {                char       fullFilename[2048];                sprintf( fullFilename, "%s%c%s",                          pszFilename,#ifdef WIN32                         '\\',#else                         '/',#endif                         candidateFileList[i] );                papszFileList = CSLAddString( papszFileList, fullFilename );            }        }        CSLDestroy( candidateFileList );        if( CSLCount(papszFileList) == 0 )        {            if( !bTestOpen )                CPLError( CE_Failure, CPLE_OpenFailed,                          "No candidate NTF files (.ntf) found in\n"                          "directory: %s",                          pszFilename );            return FALSE;        }    }/* -------------------------------------------------------------------- *//*      Loop over all these files trying to open them.  In testopen     *//*      mode we first read the first 80 characters, to verify that      *//*      it looks like an NTF file.  Note that we don't keep the file    *//*      open ... we don't want to occupy alot of file handles when      *//*      handling a whole directory.                                     *//* -------------------------------------------------------------------- */    int         i;    papoNTFFileReader = (NTFFileReader **)        CPLCalloc(sizeof(void*), CSLCount(papszFileList));        for( i = 0; papszFileList[i] != NULL; i++ )    {        if( bTestOpen )        {            char        szHeader[80];            FILE        *fp;            int         j;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩另类视频免费观看| 亚洲欧美国产77777| 美日韩一级片在线观看| 欧美日韩综合在线| 亚洲一区二区三区四区的| 99视频一区二区| 一区在线观看免费| 波多野结衣中文字幕一区二区三区| 久久婷婷成人综合色| 久久成人综合网| 日韩久久免费av| 久久99精品久久久久婷婷| 欧美一区中文字幕| 日本欧美韩国一区三区| 日韩欧美中文字幕精品| 久久国产夜色精品鲁鲁99| 日韩精品一区二区在线| 久久国产夜色精品鲁鲁99| 精品久久久久香蕉网| 国产在线不卡一区| 欧美激情在线看| 成人在线综合网站| 国产精品成人一区二区艾草| 99在线精品观看| 一区二区三区蜜桃| 欧美丰满高潮xxxx喷水动漫| 奇米色一区二区三区四区| 欧美va亚洲va在线观看蝴蝶网| 国产在线不卡视频| 中文字幕高清一区| 91美女精品福利| 亚洲 欧美综合在线网络| 在线成人午夜影院| 久久99精品久久久久久| 久久久.com| www.爱久久.com| 夜夜爽夜夜爽精品视频| 8v天堂国产在线一区二区| 美女视频黄 久久| 国产视频一区在线播放| 波多野结衣在线一区| 亚洲欧美经典视频| 欧美高清激情brazzers| 国产在线视频一区二区三区| 中文字幕日本不卡| 欧美日韩一区久久| 免费不卡在线视频| 日本一区二区久久| 欧美亚洲免费在线一区| 免费日韩伦理电影| 欧美激情综合在线| 色婷婷精品久久二区二区蜜臀av | 欧美日韩国产精品成人| 免费人成在线不卡| 中文字幕欧美激情一区| 欧美视频在线观看一区| 九九视频精品免费| 综合久久久久久| 日韩三级视频在线看| 成人一区在线看| 亚洲1区2区3区4区| 国产午夜精品美女毛片视频| 91麻豆免费观看| 奇米在线7777在线精品| 中文字幕在线观看一区| 欧美一区二区在线免费播放| 国产成人av一区二区三区在线观看| 亚洲欧美区自拍先锋| 日韩欧美国产一区二区在线播放| av亚洲精华国产精华| 日本欧美加勒比视频| 中文字幕一区二区三| 日韩精品一区二区三区在线| 99久久99久久精品国产片果冻| 全国精品久久少妇| 国产精品超碰97尤物18| 欧美一级免费大片| 在线看日本不卡| 国产精品一级片在线观看| 亚洲在线视频网站| 国产拍揄自揄精品视频麻豆| 欧美日韩一区二区三区视频| 国产99久久久精品| 日韩精品一区第一页| 国产精品国产三级国产| 日韩一区二区视频| 欧美最新大片在线看| 国产成人免费视频网站 | 17c精品麻豆一区二区免费| 欧美tickling网站挠脚心| 日本韩国欧美一区二区三区| 国产精品一区一区三区| 丝袜诱惑制服诱惑色一区在线观看| 国产精品久久久久久妇女6080| 日韩一区二区在线观看视频播放| 色综合天天性综合| 国产成人综合网站| 蜜桃av一区二区三区电影| 一区二区三区在线视频播放| 日本一区二区在线不卡| 日韩一区二区中文字幕| 欧美午夜电影在线播放| 99热精品国产| 国产福利一区在线观看| 麻豆91小视频| 日韩精品一二三| 亚洲伊人伊色伊影伊综合网| 中文字幕一区二区不卡| 国产欧美综合在线| 久久综合色鬼综合色| 777奇米四色成人影色区| 欧美性猛交xxxx黑人交| 99久久国产综合精品色伊| 国产成人亚洲综合a∨婷婷| 国内国产精品久久| 久久国产综合精品| 七七婷婷婷婷精品国产| 偷拍一区二区三区四区| 亚洲国产日韩精品| 亚洲影院理伦片| 亚洲另类色综合网站| 亚洲欧美在线观看| 国产精品国产三级国产专播品爱网| 国产女同性恋一区二区| 久久亚洲影视婷婷| 精品处破学生在线二十三| 欧美草草影院在线视频| 日韩欧美一级二级三级| 日韩一区二区精品葵司在线| 欧美二区三区91| 欧美日韩免费一区二区三区| 欧美色网站导航| 欧美日韩一区二区欧美激情 | av在线综合网| 不卡视频一二三| 94-欧美-setu| 一本色道久久综合亚洲精品按摩| 色欧美日韩亚洲| 在线亚洲一区观看| 欧美三区在线观看| 欧美另类变人与禽xxxxx| 欧美一区二区三区在线| 91精品国产欧美一区二区| 日韩精品影音先锋| 国产亚洲欧美日韩日本| 国产亚洲精品bt天堂精选| 国产蜜臀97一区二区三区| 国产精品久久三| 亚洲视频一二三区| 亚洲一区在线观看免费观看电影高清 | 欧美成人vps| 久久久www成人免费毛片麻豆| 国产日韩精品视频一区| 中文字幕一区二区三区蜜月| 亚洲美女偷拍久久| 亚洲电影中文字幕在线观看| 日韩电影在线观看网站| 玖玖九九国产精品| 国产盗摄一区二区三区| 91亚洲精华国产精华精华液| 色狠狠色噜噜噜综合网| 欧美精品日韩一本| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美影院午夜播放| 91精品国产色综合久久不卡电影| 久久这里都是精品| 亚洲色图视频免费播放| 午夜av一区二区| 国产麻豆欧美日韩一区| 99精品国产热久久91蜜凸| 欧美性一二三区| 欧美va在线播放| 国产精品传媒在线| 午夜影院久久久| 精品一区二区三区免费视频| 国产69精品久久久久777| 色伊人久久综合中文字幕| 在线综合视频播放| 国产三区在线成人av| 一个色在线综合| 国产在线精品一区二区夜色| 99视频精品在线| 欧美一区二区三区在线看| 中文字幕精品一区| 亚洲成av人**亚洲成av**| 国产一区二区剧情av在线| 91视频精品在这里| 日韩视频免费观看高清完整版| 国产欧美精品在线观看| 亚洲大片一区二区三区| 岛国一区二区三区| 欧美顶级少妇做爰| 国产精品传媒视频| 九色综合狠狠综合久久| 一本久久a久久精品亚洲| 678五月天丁香亚洲综合网| 亚洲国产高清在线观看视频| 午夜久久久久久电影| 国产99久久久国产精品免费看| 欧美日韩精品久久久|