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

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

?? ogrili1datasource.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrili1datasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  Interlis 1 Translator * Purpose:  Implements OGRILI1DataSource class. * Author:   Pirmin Kalberer, Sourcepole AG * ****************************************************************************** * Copyright (c) 2004, Pirmin Kalberer, Sourcepole AG * * 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_ili1.h"#include "cpl_conv.h"#include "cpl_string.h"#include "ili1reader.h"#include "iomhelper.h"#include "iom/iom.h"#include <string>CPL_CVSID("$Id: ogrili1datasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                         OGRILI1DataSource()                         *//************************************************************************/OGRILI1DataSource::OGRILI1DataSource(){    pszName = NULL;    poReader = NULL;    fpTransfer = NULL;    pszTopic = NULL;}/************************************************************************//*                        ~OGRILI1DataSource()                         *//************************************************************************/OGRILI1DataSource::~OGRILI1DataSource(){    CPLFree( pszName );    if( fpTransfer )    {        VSIFPrintf( fpTransfer, "ETAB\n" );        VSIFPrintf( fpTransfer, "ETOP\n" );        VSIFPrintf( fpTransfer, "EMOD\n" );        VSIFPrintf( fpTransfer, "ENDE\n" );        fclose(fpTransfer);    }}/************************************************************************//*                                Open()                                *//************************************************************************/int OGRILI1DataSource::Open( const char * pszNewName, int bTestOpen ){    FILE        *fp;    char        szHeader[1000];    std::string osBasename, osModelFilename;    char **filenames = CSLTokenizeString2( pszNewName, ",", 0 );    osBasename = filenames[0];    if( CSLCount(filenames) > 1 )        osModelFilename = filenames[1];    CSLDestroy( filenames );/* -------------------------------------------------------------------- *//*      Open the source file.                                           *//* -------------------------------------------------------------------- */    fp = VSIFOpen( osBasename.c_str(), "r" );    if( fp == NULL )    {        if( !bTestOpen )            CPLError( CE_Failure, CPLE_OpenFailed,                       "Failed to open ILI1 file `%s'.",                       pszNewName );        return FALSE;    }/* -------------------------------------------------------------------- *//*      If we aren't sure it is ILI1, load a header chunk and check      *//*      for signs it is ILI1                                             *//* -------------------------------------------------------------------- */    if( bTestOpen )    {        VSIFRead( szHeader, 1, sizeof(szHeader), fp );        szHeader[sizeof(szHeader)-1] = '\0';        if( strstr(szHeader,"SCNT") == NULL )        {            VSIFClose( fp );            return FALSE;        }    }    /* -------------------------------------------------------------------- *//*      We assume now that it is ILI1.  Close and instantiate a          *//*      ILI1Reader on it.                                                *//* -------------------------------------------------------------------- */    VSIFClose( fp );        poReader = CreateILI1Reader();    if( poReader == NULL )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "File %s appears to be ILI1 but the ILI1 reader can't\n"                  "be instantiated, likely because Xerces support wasn't\n"                  "configured in.",                   pszNewName );        return FALSE;     }    poReader->OpenFile( osBasename.c_str() );        pszName = CPLStrdup( osBasename.c_str() );    if (osModelFilename.length() > 0 )        poReader->ReadModel( osModelFilename.c_str() );    if( getenv( "ARC_DEGREES" ) != NULL ) {      //No better way to pass arguments to the reader (it could even be an -lco arg)      poReader->SetArcDegrees( atof( getenv("ARC_DEGREES") ) );    }    poReader->ReadFeatures(); //FIXME    return TRUE;}/************************************************************************//*                               Create()                               *//************************************************************************/int OGRILI1DataSource::Create( const char *pszFilename,                               char **papszOptions ){    std::string osBasename, osModelFilename;    char **filenames = CSLTokenizeString2( pszFilename, ",", 0 );    osBasename = filenames[0];    if( CSLCount(filenames) > 1 )        osModelFilename = filenames[1];    CSLDestroy( filenames );    if( osModelFilename.length() == 0 )    {      //TODO: create automatic model    }/* -------------------------------------------------------------------- *//*      Create the empty file.                                          *//* -------------------------------------------------------------------- */    fpTransfer = VSIFOpen( osBasename.c_str(), "w+b" );    if( fpTransfer == NULL )    {        CPLError( CE_Failure, CPLE_OpenFailed,                   "Failed to create %s:\n%s",                   osBasename.c_str(), VSIStrerror( errno ) );        return FALSE;    }/* -------------------------------------------------------------------- *//*      Parse model                                                     *//* -------------------------------------------------------------------- */    iom_init();    // set error listener to a iom provided one, that just     // dumps all errors to stderr    iom_seterrlistener(iom_stderrlistener);    IOM_BASKET model = 0;    if( osModelFilename.length() != 0 ) {    // compile ili model    char *iliFiles[1] = {(char *)osModelFilename.c_str()};    model=iom_compileIli(1,iliFiles);    if(!model){        CPLError( CE_Warning, CPLE_OpenFailed,                   "iom_compileIli .",                   pszName, VSIStrerror( errno ) );        iom_end();        return FALSE;    }    }/* -------------------------------------------------------------------- *//*      Write headers                                                   *//* -------------------------------------------------------------------- */    VSIFPrintf( fpTransfer, "SCNT\n" );    VSIFPrintf( fpTransfer, "////\n" );    VSIFPrintf( fpTransfer, "MTID INTERLIS1\n" );    const char* modelname = model ? GetAttrObjName(model, "iom04.metamodel.DataModel") : osBasename.c_str();    VSIFPrintf( fpTransfer, "MODL %s\n", modelname );    return TRUE;}static char *ExtractTopic(const char * pszLayerName){  char *table = strchr(pszLayerName, '_');  while (table && table[1] !=  '_') table = strchr(table+1, '_');  return (table) ? CPLScanString(pszLayerName, table-pszLayerName, FALSE, FALSE) : NULL;}/************************************************************************//*                            CreateLayer()                             *//************************************************************************/OGRLayer *OGRILI1DataSource::CreateLayer( const char * pszLayerName,                               OGRSpatialReference *poSRS,                               OGRwkbGeometryType eType,                               char ** papszOptions ){    const char *table = pszLayerName;    char * topic = ExtractTopic(pszLayerName);    if (pszTopic) VSIFPrintf( fpTransfer, "ETAB\n" );    if (topic)    {      table = pszLayerName+strlen(topic)+2; //after "__"      if (pszTopic == NULL || !EQUAL(topic, pszTopic))      {        if (pszTopic)        {          VSIFPrintf( fpTransfer, "ETOP\n" );          CPLFree(pszTopic);        }        pszTopic = topic;        VSIFPrintf( fpTransfer, "TOPI %s\n", pszTopic );      }    }    else if (pszTopic == NULL)    {      pszTopic = CPLStrdup("TOPIC"); //TODO: From model?      VSIFPrintf( fpTransfer, "TOPI %s\n", pszTopic );    }    VSIFPrintf( fpTransfer, "TABL %s\n", table );    OGRILI1Layer *poLayer = new OGRILI1Layer(CPLStrdup(table), poSRS, TRUE, eType, this);    return poLayer;}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRILI1DataSource::TestCapability( const char * pszCap ){    if( EQUAL(pszCap,ODsCCreateLayer) )        return TRUE;    else        return FALSE;}/************************************************************************//*                              GetLayer()                              *//************************************************************************/OGRLayer *OGRILI1DataSource::GetLayer( int iLayer ){  return poReader->GetLayer( iLayer );}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久国产精品影院| 欧美日韩www| 国产精品久久久久影院亚瑟 | 中文字幕第一区二区| 国产 欧美在线| 亚洲婷婷在线视频| 欧美视频一二三区| 奇米色一区二区| 久久久久久久久蜜桃| 粉嫩久久99精品久久久久久夜| 中文字幕亚洲综合久久菠萝蜜| 色婷婷av一区二区三区软件| 亚洲成av人影院| 久久综合狠狠综合久久激情| 成人a级免费电影| 一区二区三国产精华液| 日韩美一区二区三区| 国产电影精品久久禁18| 亚洲网友自拍偷拍| 欧美va亚洲va国产综合| 99精品一区二区三区| 午夜激情久久久| 中文字幕欧美国产| 91精品蜜臀在线一区尤物| 国产精品538一区二区在线| 伊人色综合久久天天| 精品国产91九色蝌蚪| 欧美在线免费视屏| 国产精品亚洲第一区在线暖暖韩国 | 欧洲一区二区三区免费视频| 精品在线你懂的| 亚洲欧美福利一区二区| 91精品国产乱码久久蜜臀| 高清视频一区二区| 日韩精品福利网| 一区精品在线播放| 欧美一激情一区二区三区| eeuss鲁一区二区三区| 日本不卡不码高清免费观看| 综合久久久久久| 国产精品午夜在线观看| 欧美一区二区大片| 色猫猫国产区一区二在线视频| 蜜桃一区二区三区四区| 一区二区在线看| 国产精品国产三级国产有无不卡 | 亚洲午夜精品网| 国产精品久久久久婷婷| 久久综合色8888| 91精品欧美福利在线观看 | 欧美午夜电影一区| 风间由美性色一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 亚洲另类春色国产| 成人欧美一区二区三区视频网页 | 欧美午夜精品电影| 99国产精品久久久久| 国产精品亚洲一区二区三区在线| 日本三级亚洲精品| 午夜精品福利一区二区三区蜜桃| 亚洲美女视频一区| 综合电影一区二区三区 | 成人av动漫在线| 懂色av噜噜一区二区三区av| 美女视频黄 久久| 日本成人在线一区| 天天操天天干天天综合网| 亚洲精品成人悠悠色影视| 亚洲日本免费电影| 一区二区三区中文免费| 亚洲精选在线视频| 亚洲另类中文字| 亚洲蜜臀av乱码久久精品| 日韩毛片高清在线播放| 亚洲视频一区二区在线观看| 亚洲欧洲日韩综合一区二区| 中文字幕日本不卡| 一区二区三区中文字幕精品精品| 亚洲精品一卡二卡| 亚洲成人免费在线观看| 亚洲成人高清在线| 蜜臀久久99精品久久久久久9| 丝瓜av网站精品一区二区| 日本亚洲最大的色成网站www| 奇米一区二区三区av| 久久成人免费电影| 国产露脸91国语对白| 不卡电影一区二区三区| www.66久久| 欧美日韩精品福利| 日韩视频免费观看高清完整版在线观看 | 久久99精品久久久久久国产越南 | 亚洲一区二区影院| 三级久久三级久久| 欧美在线小视频| 欧美一区二区啪啪| 久久亚洲一区二区三区四区| 国产清纯在线一区二区www| 国产精品毛片久久久久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲国产成人高清精品| 日本视频中文字幕一区二区三区| 国产一区二区伦理片| 成人国产视频在线观看| 日本道色综合久久| 欧美一级免费大片| 久久久久9999亚洲精品| 玉足女爽爽91| 久久精品国产亚洲a| 97久久人人超碰| 日韩视频中午一区| 国产精品久久久久久妇女6080| 亚洲午夜久久久| 国产精品88av| 欧美顶级少妇做爰| 国产精品午夜电影| 性做久久久久久久久| 激情久久五月天| 在线观看欧美精品| 26uuuu精品一区二区| 亚洲一区欧美一区| 国产精品 日产精品 欧美精品| 在线视频你懂得一区| 欧美精品一区在线观看| 亚洲影院在线观看| 成人网页在线观看| 日韩美女一区二区三区| 亚洲三级小视频| 国产一区在线不卡| 91精品福利在线一区二区三区| 亚洲国产成人一区二区三区| 日本aⅴ亚洲精品中文乱码| 99麻豆久久久国产精品免费优播| 日韩一级欧美一级| 亚洲福利一区二区三区| 成人av先锋影音| 精品国产91乱码一区二区三区 | 欧美年轻男男videosbes| 欧美国产丝袜视频| 久久成人免费日本黄色| 欧美片网站yy| 一区二区三区在线观看动漫| 国产成人99久久亚洲综合精品| 欧美福利电影网| 亚洲最大色网站| 99精品一区二区| 中文字幕一区二区在线播放| 激情五月婷婷综合| 91精品国产综合久久精品| 一区二区久久久| 色呦呦国产精品| 中文无字幕一区二区三区 | 成人毛片在线观看| 亚洲精品一区在线观看| 麻豆免费精品视频| 日韩一区二区三区在线观看| 亚洲国产sm捆绑调教视频| 91成人网在线| 一区二区三区在线观看欧美 | 蜜臀av一区二区三区| 欧美伦理影视网| 性欧美大战久久久久久久久| 欧美系列日韩一区| 亚洲成av人**亚洲成av**| 欧美性一二三区| 午夜欧美在线一二页| 欧美丰满高潮xxxx喷水动漫| 日韩黄色在线观看| 日韩免费视频一区二区| 精品影院一区二区久久久| 久久综合九色综合97婷婷| 国内精品国产成人| 久久午夜电影网| 成人精品gif动图一区| 亚洲天堂久久久久久久| 色综合中文字幕| 亚洲不卡在线观看| 日韩欧美一二三四区| 久久99国产精品成人| 久久久三级国产网站| 大胆亚洲人体视频| 一区二区免费在线播放| 51精品视频一区二区三区| 麻豆免费精品视频| 欧美高清在线一区二区| 色天使色偷偷av一区二区| 亚洲第一av色| 欧美成人性战久久| 成人激情免费网站| 亚洲国产成人va在线观看天堂| 日韩一级大片在线观看| 国产91综合网| 亚洲一区在线观看网站| 日韩一级大片在线观看| 成人av在线网| 午夜精品福利视频网站| 久久精品视频免费| 在线一区二区三区| 美日韩一区二区| 亚洲欧洲日韩一区二区三区|