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

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

?? ogrili1layer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrili1layer.cpp 11178 2007-04-02 20:44:35Z warmerdam $ * * Project:  Interlis 1 Translator * Purpose:  Implements OGRILI1Layer 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"CPL_CVSID("$Id: ogrili1layer.cpp 11178 2007-04-02 20:44:35Z warmerdam $");/************************************************************************//*                           OGRILI1Layer()                              *//************************************************************************/OGRILI1Layer::OGRILI1Layer( const char * pszName,                          OGRSpatialReference *poSRSIn, int bWriterIn,                          OGRwkbGeometryType eReqType,                          OGRILI1DataSource *poDSIn ){    poFilterGeom = NULL;    if( poSRSIn == NULL )        poSRS = NULL;    else        poSRS = poSRSIn->Clone();    poDS = poDSIn;    poFeatureDefn = new OGRFeatureDefn( pszName );    poFeatureDefn->Reference();    poFeatureDefn->SetGeomType( eReqType );    nFeatures = 0;    papoFeatures = NULL;    nFeatureIdx = 0;    bWriter = bWriterIn;}/************************************************************************//*                           ~OGRILI1Layer()                           *//************************************************************************/OGRILI1Layer::~OGRILI1Layer(){    if( poFeatureDefn )        poFeatureDefn->Release();    if( poSRS != NULL )        poSRS->Release();    if( poFilterGeom != NULL )        delete poFilterGeom;}/************************************************************************//*                          SetSpatialFilter()                          *//************************************************************************/void OGRILI1Layer::SetSpatialFilter( OGRGeometry * poGeomIn ){    if( poFilterGeom != NULL )    {        delete poFilterGeom;        poFilterGeom = NULL;    }    if( poGeomIn != NULL )        poFilterGeom = poGeomIn->clone();}OGRErr OGRILI1Layer::AddFeature (OGRFeature *poFeature) {    papoFeatures = (OGRFeature **)        CPLRealloc( papoFeatures, sizeof(void*) * ++nFeatures );        papoFeatures[nFeatures-1] = poFeature;        return OGRERR_NONE;}/************************************************************************//*                            ResetReading()                            *//************************************************************************/void OGRILI1Layer::ResetReading(){    nFeatureIdx = 0;}/************************************************************************//*                           GetNextFeature()                           *//************************************************************************/OGRFeature *OGRILI1Layer::GetNextFeature() {    if (nFeatureIdx < nFeatures)    {      return papoFeatures[nFeatureIdx++]->Clone();    }    return NULL;}/************************************************************************//*                          GetFeatureCount()                           *//************************************************************************/int OGRILI1Layer::GetFeatureCount( int bForce ) {    return nFeatures;}/************************************************************************//*                             GetExtent()                              *//************************************************************************/OGRErr OGRILI1Layer::GetExtent(OGREnvelope *psExtent, int bForce ) {  return OGRERR_NONE;}static char* d2str(double val){    static char strbuf[255];    if( val == (int) val )        sprintf( strbuf, "%d", (int) val );    else if( fabs(val) < 370 )        sprintf( strbuf, "%.16g", val );    else if( fabs(val) > 100000000.0  )        sprintf( strbuf, "%.16g", val );    else        sprintf( strbuf, "%.3f", val );    return strbuf;}static void AppendCoordinateList( OGRLineString *poLine, OGRILI1DataSource *poDS){    int         b3D = (poLine->getGeometryType() & wkb25DBit);    for( int iPoint = 0; iPoint < poLine->getNumPoints(); iPoint++ )    {        if (iPoint == 0) VSIFPrintf( poDS->GetTransferFile(), "STPT" );        else VSIFPrintf( poDS->GetTransferFile(), "LIPT" );        VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poLine->getX(iPoint)) );        VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poLine->getY(iPoint)) );        if (b3D) VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poLine->getZ(iPoint)) );        VSIFPrintf( poDS->GetTransferFile(), "\n" );    }    VSIFPrintf( poDS->GetTransferFile(), "ELIN\n" );}int OGRILI1Layer::GeometryAppend( OGRGeometry *poGeometry ){/* -------------------------------------------------------------------- *//*      2D Point                                                        *//* -------------------------------------------------------------------- */    if( poGeometry->getGeometryType() == wkbPoint )    {        /* embedded in non-geometry fields        OGRPoint *poPoint = (OGRPoint *) poGeometry;        VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poPoint->getX()) );        VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poPoint->getY()) );        */    }/* -------------------------------------------------------------------- *//*      3D Point                                                        *//* -------------------------------------------------------------------- */    else if( poGeometry->getGeometryType() == wkbPoint25D )    {        /* embedded in from non-geometry fields        OGRPoint *poPoint = (OGRPoint *) poGeometry;        VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poPoint->getX()) );        VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poPoint->getY()) );        VSIFPrintf( poDS->GetTransferFile(), " %s", d2str(poPoint->getZ()) );        */    }/* -------------------------------------------------------------------- *//*      LineString and LinearRing                                       *//* -------------------------------------------------------------------- */    else if( poGeometry->getGeometryType() == wkbLineString              || poGeometry->getGeometryType() == wkbLineString25D )    {        AppendCoordinateList( (OGRLineString *) poGeometry, poDS );    }/* -------------------------------------------------------------------- *//*      Polygon                                                         *//* -------------------------------------------------------------------- */    else if( poGeometry->getGeometryType() == wkbPolygon              || poGeometry->getGeometryType() == wkbPolygon25D )    {        OGRPolygon      *poPolygon = (OGRPolygon *) poGeometry;        if( poPolygon->getExteriorRing() != NULL )        {            if( !GeometryAppend( poPolygon->getExteriorRing() ) )                return FALSE;        }        for( int iRing = 0; iRing < poPolygon->getNumInteriorRings(); iRing++ )        {            OGRLinearRing *poRing = poPolygon->getInteriorRing(iRing);            if( !GeometryAppend( poRing ) )                return FALSE;        }    }/* -------------------------------------------------------------------- *//*      MultiPolygon                                                    *//* -------------------------------------------------------------------- */    else if( wkbFlatten(poGeometry->getGeometryType()) == wkbMultiPolygon              || wkbFlatten(poGeometry->getGeometryType()) == wkbMultiLineString             || wkbFlatten(poGeometry->getGeometryType()) == wkbMultiPoint             || wkbFlatten(poGeometry->getGeometryType()) == wkbGeometryCollection )    {        OGRGeometryCollection *poGC = (OGRGeometryCollection *) poGeometry;        int             iMember;        if( wkbFlatten(poGeometry->getGeometryType()) == wkbMultiPolygon )        {        }        else if( wkbFlatten(poGeometry->getGeometryType()) == wkbMultiLineString )        {        }        else if( wkbFlatten(poGeometry->getGeometryType()) == wkbMultiPoint )        {        }        else        {        }        for( iMember = 0; iMember < poGC->getNumGeometries(); iMember++)        {            OGRGeometry *poMember = poGC->getGeometryRef( iMember );            if( !GeometryAppend( poMember ) )                return FALSE;        }    }    else        return FALSE;    return TRUE;}/************************************************************************//*                           CreateFeature()                            *//************************************************************************/OGRErr OGRILI1Layer::CreateFeature( OGRFeature *poFeature ) {    VSIFPrintf( poDS->GetTransferFile(), "OBJE" );    // Write all fields.     for(int iField = 0; iField < poFeatureDefn->GetFieldCount(); iField++ )    {          if ( !EQUAL(poFeatureDefn->GetFieldDefn(iField)->GetNameRef(), "ILI_Geometry") )          {            if ( poFeature->IsFieldSet( iField ) )            {                const char *pszRaw = poFeature->GetFieldAsString( iField );                VSIFPrintf( poDS->GetTransferFile(), " %s", pszRaw );            }            else            {                VSIFPrintf( poDS->GetTransferFile(), " @" );            }        }    }    VSIFPrintf( poDS->GetTransferFile(), "\n" );    // Write out Geometry    if( poFeature->GetGeometryRef() != NULL )    {        if (EQUAL(poFeatureDefn->GetFieldDefn(poFeatureDefn->GetFieldCount()-1)->GetNameRef(), "ILI_Geometry"))        {            VSIFPrintf( poDS->GetTransferFile(), poFeature->GetFieldAsString( poFeatureDefn->GetFieldCount()-1 ) );        }        else        {            GeometryAppend(poFeature->GetGeometryRef());        }    }    return OGRERR_NONE;}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRILI1Layer::TestCapability( const char * pszCap ) {        return FALSE;}/************************************************************************//*                            CreateField()                             *//************************************************************************/OGRErr OGRILI1Layer::CreateField( OGRFieldDefn *poField, int bApproxOK ) {    poFeatureDefn->AddFieldDefn( poField );    return OGRERR_NONE;}/************************************************************************//*                           GetSpatialRef()                            *//************************************************************************/OGRSpatialReference *OGRILI1Layer::GetSpatialRef() {    return poSRS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草97国产精品免费观看| 麻豆91精品91久久久的内涵| 日韩—二三区免费观看av| 国产高清不卡二三区| 欧美在线制服丝袜| 欧美高清一级片在线观看| 日韩黄色片在线观看| av网站免费线看精品| 日韩一区二区三区电影| 一个色综合av| 99国产精品一区| 久久久精品国产免费观看同学| 亚洲图片欧美视频| 一本大道久久精品懂色aⅴ| 国产日韩影视精品| 久草中文综合在线| 91精品国产91久久综合桃花| 亚洲乱码国产乱码精品精的特点| 国产盗摄一区二区三区| 精品国产一区二区三区久久影院| 亚洲va韩国va欧美va| 在线免费观看日本一区| 亚洲色图视频网| 91麻豆福利精品推荐| ...xxx性欧美| 色天天综合色天天久久| 中文字幕一区二区三区不卡在线| 国产成人午夜视频| 国产嫩草影院久久久久| 国产精品一二二区| 国产视频一区二区在线| 国产一区二区精品在线观看| 久久久综合激的五月天| 国产精品一区在线观看乱码| 久久久精品欧美丰满| 国产一区二区三区香蕉| 国产亚洲欧美日韩日本| 国产麻豆成人精品| 国产精品青草久久| 在线观看91av| 日韩影视精彩在线| 精品久久99ma| 国产黄色精品网站| 中文字幕一区不卡| 在线观看国产91| 婷婷久久综合九色综合伊人色| 欧美福利视频一区| 久久av资源网| 国产精品久久久久影院老司| 色综合天天综合狠狠| 亚洲国产精品天堂| 精品国产乱码久久久久久浪潮 | 国产传媒一区在线| 国产精品女人毛片| 欧洲一区在线电影| 蜜桃av一区二区三区| 国产日韩欧美高清| 91美女视频网站| 蜜桃av噜噜一区二区三区小说| 国产亚洲婷婷免费| 91在线你懂得| 青娱乐精品视频| 欧美国产综合一区二区| 欧洲av在线精品| 激情综合色综合久久| 国产精品三级av在线播放| 在线精品视频免费播放| 极品少妇一区二区| 一级日本不卡的影视| 精品少妇一区二区三区在线视频| av中文字幕在线不卡| 青青草原综合久久大伊人精品 | 成人晚上爱看视频| 亚洲图片欧美综合| 国产精品美女久久久久久久久久久| 色婷婷亚洲精品| 国产成人在线视频免费播放| 亚洲成a人v欧美综合天堂 | 成人一区二区三区视频在线观看| 亚洲自拍欧美精品| 欧美国产丝袜视频| 欧美一级理论片| 欧美色图激情小说| caoporm超碰国产精品| 久久成人免费电影| 国产精品99久久久久久似苏梦涵| 亚洲一区二区在线免费观看视频| 久久久精品免费观看| 8v天堂国产在线一区二区| 91在线码无精品| 成人免费视频网站在线观看| 日本伊人午夜精品| 亚洲成人综合在线| 亚洲精品免费看| 亚洲欧洲日韩综合一区二区| 日韩精品一区二区三区视频在线观看 | 中文字幕高清一区| 日韩一区二区视频| 欧美乱妇15p| 欧美私人免费视频| 91国产精品成人| 99精品偷自拍| 9i在线看片成人免费| 国产精一区二区三区| 国产一区二区在线影院| 免费人成在线不卡| 蜜臀av性久久久久蜜臀av麻豆| 午夜一区二区三区在线观看| 亚洲精品你懂的| 一区二区三区在线免费播放| 亚洲女女做受ⅹxx高潮| 国产精品不卡视频| 中文天堂在线一区| 国产精品久久久久影视| 国产精品久久三| 亚洲欧美偷拍另类a∨色屁股| 亚洲三级免费观看| 亚洲精品视频在线看| 一区二区三区精品视频在线| 亚洲欧美日韩精品久久久久| 一区二区三区欧美| 亚洲国产sm捆绑调教视频| 日韩精品国产精品| 久久精品国产一区二区三 | 久久精品一区八戒影视| 国产亚洲欧美日韩在线一区| 国产精品天干天干在观线| 国产精品国产三级国产aⅴ入口| 最新中文字幕一区二区三区| 一区二区三区美女视频| 日韩av一级片| 精品系列免费在线观看| 成人网在线免费视频| 欧美亚洲禁片免费| 欧美一级免费大片| 国产人久久人人人人爽| 1024亚洲合集| 日韩中文欧美在线| 国产成人在线网站| 91成人国产精品| 26uuu精品一区二区在线观看| 国产日产亚洲精品系列| 一区二区三区四区亚洲| 日本亚洲天堂网| 丁香婷婷综合网| 欧美色手机在线观看| 亚洲一区中文在线| 另类欧美日韩国产在线| 国产99久久久国产精品免费看| 色综合色综合色综合 | 欧美日韩一区成人| 精品久久久久久久一区二区蜜臀| 国产精品区一区二区三区| 亚洲国产精品影院| 国产精品一区不卡| 欧美少妇一区二区| 久久久久久久久久久久久久久99| ...xxx性欧美| 精品一区二区日韩| 欧洲在线/亚洲| 国产人妖乱国产精品人妖| 天天色天天操综合| 色先锋资源久久综合| 欧美大尺度电影在线| 亚洲综合男人的天堂| 国产精品亚洲一区二区三区妖精| 欧美优质美女网站| 国产欧美一区二区精品久导航 | 日韩理论片在线| 九九精品视频在线看| 在线国产电影不卡| 中日韩免费视频中文字幕| 久久国产尿小便嘘嘘| 欧美日韩五月天| 一区二区三区四区av| 国产激情精品久久久第一区二区| 91精品国产免费| 亚洲成人自拍偷拍| 91在线观看成人| 欧美高清在线视频| 国产毛片精品国产一区二区三区| 制服丝袜日韩国产| 亚欧色一区w666天堂| 色综合久久综合| 亚洲欧美日韩国产另类专区| 高清视频一区二区| 中文字幕欧美激情| 国产一区不卡视频| 久久久九九九九| 国产盗摄女厕一区二区三区| 26uuuu精品一区二区| 久久精品国产亚洲a| 日韩精品中文字幕一区 | 精品国产乱码久久久久久夜甘婷婷| 亚洲福利视频三区| 欧美三级视频在线| 无码av中文一区二区三区桃花岛| 欧美日韩一区二区在线观看| 亚洲gay无套男同| 91精品国产欧美日韩|