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

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

?? ogrili2layer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrili2layer.cpp 11178 2007-04-02 20:44:35Z warmerdam $ * * Project:  Interlis 2 Translator * Purpose:  Implements OGRILI2Layer class. * Author:   Markus Schnider, 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_ili2.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrili2layer.cpp 11178 2007-04-02 20:44:35Z warmerdam $");/************************************************************************//*                           OGRILI2Layer()                              *//************************************************************************/OGRILI2Layer::OGRILI2Layer( const char * pszName,                          OGRSpatialReference *poSRSIn, int bWriterIn,                          OGRwkbGeometryType eReqType,                          OGRILI2DataSource *poDSIn ){    poFilterGeom = NULL;    if( poSRSIn == NULL )        poSRS = NULL;    else        poSRS = poSRSIn->Clone();    poDS = poDSIn;    poFeatureDefn = new OGRFeatureDefn( pszName );    poFeatureDefn->Reference();    poFeatureDefn->SetGeomType( eReqType );    bWriter = bWriterIn;}/************************************************************************//*                           ~OGRILI2Layer()                           *//************************************************************************/OGRILI2Layer::~OGRILI2Layer(){    if( poFeatureDefn )        poFeatureDefn->Release();    if( poSRS != NULL )        poSRS->Release();    if( poFilterGeom != NULL )        delete poFilterGeom;}/************************************************************************//*                          SetSpatialFilter()                          *//************************************************************************/void OGRILI2Layer::SetSpatialFilter( OGRGeometry * poGeomIn ){    if( poFilterGeom != NULL )    {        delete poFilterGeom;        poFilterGeom = NULL;    }    if( poGeomIn != NULL )        poFilterGeom = poGeomIn->clone();}/************************************************************************//*                             SetFeature()                             *//************************************************************************/OGRErr OGRILI2Layer::SetFeature (OGRFeature *poFeature) {    listFeature.push_back(poFeature);    return OGRERR_NONE;}/************************************************************************//*                            ResetReading()                            *//************************************************************************/void OGRILI2Layer::ResetReading(){    listFeatureIt = listFeature.begin();}/************************************************************************//*                           GetNextFeature()                           *//************************************************************************/OGRFeature *OGRILI2Layer::GetNextFeature() {    if (listFeatureIt != listFeature.end())        return (*(listFeatureIt++))->Clone();    return NULL;}/************************************************************************//*                          GetFeatureCount()                           *//************************************************************************/int OGRILI2Layer::GetFeatureCount( int bForce ) {  return listFeature.size(); //nTotalILI2Count;}/************************************************************************//*                             GetExtent()                              *//************************************************************************/OGRErr OGRILI2Layer::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, IOM_OBJECT sequence){	IOM_OBJECT coordValue;    int         b3D = (poLine->getGeometryType() & wkb25DBit);    for( int iPoint = 0; iPoint < poLine->getNumPoints(); iPoint++ )    {        coordValue=iom_addattrobj(sequence,"segment","COORD");        iom_setattrvalue(coordValue,"C1", d2str(poLine->getX(iPoint)));        iom_setattrvalue(coordValue,"C2", d2str(poLine->getY(iPoint)));        if (b3D) iom_setattrvalue(coordValue,"C3", d2str(poLine->getZ(iPoint)));        iom_releaseobject(coordValue);    }}static int OGR2ILIGeometryAppend( OGRGeometry *poGeometry, IOM_OBJECT obj, const char *attrname ){    IOM_OBJECT polylineValue;    IOM_OBJECT sequence;    IOM_OBJECT coordValue;    IOM_OBJECT multisurface;    IOM_OBJECT surface;    IOM_OBJECT boundary;/* -------------------------------------------------------------------- *//*      2D Point                                                        *//* -------------------------------------------------------------------- */    if( poGeometry->getGeometryType() == wkbPoint )    {        OGRPoint *poPoint = (OGRPoint *) poGeometry;        coordValue=iom_changeattrobj(obj,attrname,0,"COORD");        iom_setattrvalue(coordValue,"C1", d2str(poPoint->getX()));        iom_setattrvalue(coordValue,"C2", d2str(poPoint->getY()));        iom_releaseobject(coordValue);    }/* -------------------------------------------------------------------- *//*      3D Point                                                        *//* -------------------------------------------------------------------- */    else if( poGeometry->getGeometryType() == wkbPoint25D )    {        OGRPoint *poPoint = (OGRPoint *) poGeometry;        coordValue=iom_changeattrobj(obj,attrname,0,"COORD");        iom_setattrvalue(coordValue,"C1", d2str(poPoint->getX()));        iom_setattrvalue(coordValue,"C2", d2str(poPoint->getY()));        iom_setattrvalue(coordValue,"C3", d2str(poPoint->getZ()));        iom_releaseobject(coordValue);    }/* -------------------------------------------------------------------- *//*      LineString and LinearRing                                       *//* -------------------------------------------------------------------- */    else if( poGeometry->getGeometryType() == wkbLineString              || poGeometry->getGeometryType() == wkbLineString25D )    {        //int bRing = EQUAL(poGeometry->getGeometryName(),"LINEARRING");        if (attrname) polylineValue=iom_changeattrobj(obj,attrname,0,"POLYLINE");        else polylineValue=iom_addattrobj(obj,"polyline","POLYLINE");        // unclipped polyline, add one sequence        sequence=iom_changeattrobj(polylineValue,"sequence",0,"SEGMENTS");        AppendCoordinateList( (OGRLineString *) poGeometry, sequence );        iom_releaseobject(sequence);        iom_releaseobject(polylineValue);    }/* -------------------------------------------------------------------- *//*      Polygon                                                         *//* -------------------------------------------------------------------- */    else if( poGeometry->getGeometryType() == wkbPolygon              || poGeometry->getGeometryType() == wkbPolygon25D )    {        OGRPolygon      *poPolygon = (OGRPolygon *) poGeometry;        multisurface=iom_changeattrobj(obj,attrname,0,"MULTISURFACE");        surface=iom_changeattrobj(multisurface,"surface",0,"SURFACE");        boundary=iom_changeattrobj(surface,"boundary",0,"BOUNDARY");        if( poPolygon->getExteriorRing() != NULL )        {            if( !OGR2ILIGeometryAppend( poPolygon->getExteriorRing(), boundary, NULL  ) )                return FALSE;        }        for( int iRing = 0; iRing < poPolygon->getNumInteriorRings(); iRing++ )        {            OGRLinearRing *poRing = poPolygon->getInteriorRing(iRing);            if( !OGR2ILIGeometryAppend( poRing, boundary, NULL ) )                return FALSE;        }        iom_releaseobject(boundary);        iom_releaseobject(surface);        iom_releaseobject(multisurface);    }/* -------------------------------------------------------------------- *//*      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( !OGR2ILIGeometryAppend( poMember, obj, NULL ) )                return FALSE;        }    }    else        return FALSE;    return TRUE;}/************************************************************************//*                           CreateFeature()                            *//************************************************************************/OGRErr OGRILI2Layer::CreateFeature( OGRFeature *poFeature ) {    static char         szTempBuffer[80];    const char* tid;    int iField = 0;    if (poFeatureDefn->GetFieldCount() && EQUAL(poFeatureDefn->GetFieldDefn(iField)->GetNameRef(), "TID"))    {        tid = poFeature->GetFieldAsString(0);        ++iField;    }    else    {        sprintf( szTempBuffer, "%ld", poFeature->GetFID() );        tid = szTempBuffer;    }    // create new object    IOM_OBJECT obj;    obj=iom_newobject(poDS->GetBasket(), poFeatureDefn->GetName(), tid);    // Write out Geometry    if( poFeature->GetGeometryRef() != NULL )    {        OGR2ILIGeometryAppend(poFeature->GetGeometryRef(), obj, "Geometry");    }    // Write all "set" fields.     for( ; iField < poFeatureDefn->GetFieldCount(); iField++ )    {                OGRFieldDefn *poField = poFeatureDefn->GetFieldDefn( iField );        if( poFeature->IsFieldSet( iField ) )        {            const char *pszRaw = poFeature->GetFieldAsString( iField );            //while( *pszRaw == ' ' )            //    pszRaw++;            //char *pszEscaped = CPLEscapeString( pszRaw, -1, CPLES_XML );            iom_setattrvalue(obj, poField->GetNameRef(), pszRaw);            //CPLFree( pszEscaped );        }    }    iom_releaseobject(obj);    return OGRERR_NONE;}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRILI2Layer::TestCapability( const char * pszCap ) {   return FALSE;}/************************************************************************//*                            CreateField()                             *//************************************************************************/OGRErr OGRILI2Layer::CreateField( OGRFieldDefn *poField, int bApproxOK ) {    poFeatureDefn->AddFieldDefn( poField );    return OGRERR_NONE;}/************************************************************************//*                           GetSpatialRef()                            *//************************************************************************/OGRSpatialReference *OGRILI2Layer::GetSpatialRef() {    return poSRS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文字幕av电影| 中文字幕日韩欧美一区二区三区| 在线综合亚洲欧美在线视频| 67194成人在线观看| 久久久影视传媒| 国产精品久久毛片| 亚洲成人1区2区| 国产高清久久久久| 在线观看视频91| wwww国产精品欧美| 亚洲午夜在线观看视频在线| 激情成人综合网| 色婷婷激情一区二区三区| 欧美日韩中文一区| 国产视频一区在线观看| 亚洲va国产天堂va久久en| 成人免费视频app| wwwwxxxxx欧美| 久久九九久久九九| 精品无码三级在线观看视频| 91小宝寻花一区二区三区| 中文字幕在线免费不卡| 97se亚洲国产综合在线| 日韩电影在线看| 欧美精品在欧美一区二区少妇| 麻豆久久一区二区| 一区二区三区欧美日| 亚洲日本乱码在线观看| 六月丁香婷婷色狠狠久久| 色又黄又爽网站www久久| 久久久久久9999| 天涯成人国产亚洲精品一区av| www.亚洲国产| 国产亚洲欧美色| 成人丝袜高跟foot| 精品免费99久久| 国产原创一区二区| 精品国产青草久久久久福利| 一区二区三区欧美久久| 欧美三级资源在线| 亚洲国产精品一区二区www在线| 国产·精品毛片| 欧美国产1区2区| 国产精品69毛片高清亚洲| 欧美日产国产精品| 国产精品美女久久久久aⅴ| 国产综合色在线| 精品国精品国产| 久久狠狠亚洲综合| 亚洲人亚洲人成电影网站色| 久久99蜜桃精品| 日韩精品一区二区三区三区免费| 久久福利视频一区二区| 日韩无一区二区| 激情综合五月天| 2020国产精品久久精品美国| 国产一区二区日韩精品| 久久久久久久久久久久久女国产乱 | 99久久婷婷国产综合精品电影| 久久久久99精品一区| 五月天激情综合网| 欧美一区二区三区小说| 一区二区三区成人在线视频| 在线观看亚洲精品视频| 亚洲国产aⅴ天堂久久| 精品国产不卡一区二区三区| 韩国在线一区二区| 欧美日韩久久一区| 亚洲小说春色综合另类电影| 亚洲欧美日韩综合aⅴ视频| 中文字幕 久热精品 视频在线| 亚洲男人天堂av| 美女网站一区二区| 波多野结衣精品在线| 日本精品免费观看高清观看| 欧美日韩在线观看一区二区 | 中文字幕制服丝袜一区二区三区| 国内精品国产成人国产三级粉色| 欧美一区二区三区男人的天堂| 日本成人在线电影网| 精品成a人在线观看| 欧美写真视频网站| 国产麻豆精品95视频| 亚洲美女视频一区| 国产日本亚洲高清| 欧美三级一区二区| 99热99精品| 精品一区二区av| 日韩一区中文字幕| 欧美成人三级在线| 欧美主播一区二区三区| 精品在线免费观看| 亚洲九九爱视频| 久久青草国产手机看片福利盒子 | 波多野洁衣一区| 午夜视频一区二区三区| 国产精品免费视频网站| 51午夜精品国产| 92国产精品观看| 成人免费视频一区| 久久国产精品第一页| 五月开心婷婷久久| 亚洲国产精品黑人久久久| 欧美美女喷水视频| 欧美性高清videossexo| 成人一二三区视频| 欧美日韩国产成人在线91| 国产一区在线看| 日本欧美一区二区三区乱码 | 99久久精品国产导航| 国模娜娜一区二区三区| 午夜视频一区二区三区| 国产欧美精品一区二区色综合| 91精品国产入口| 色综合天天视频在线观看| 国产一区二区日韩精品| 麻豆国产精品一区二区三区 | 亚洲激情欧美激情| 中文字幕一区在线观看| 日韩精品资源二区在线| 久久精品视频免费观看| 制服丝袜亚洲播放| www.亚洲激情.com| 日韩精品三区四区| 国产精品久久久久久亚洲毛片 | 7777精品伊人久久久大香线蕉最新版| 国产欧美一区二区精品仙草咪| 欧美三级视频在线观看| 亚洲国产欧美另类丝袜| 在线亚洲免费视频| 91色乱码一区二区三区| av色综合久久天堂av综合| 99久久免费视频.com| 国内成+人亚洲+欧美+综合在线| 欧美a级一区二区| 97国产一区二区| 国产中文字幕精品| 亚洲黄网站在线观看| 欧美国产欧美综合| 欧美一级日韩不卡播放免费| 日韩三级视频在线看| 国产一区二区在线电影| 一区二区在线观看视频| 亚洲欧美综合在线精品| 久久精品亚洲精品国产欧美kt∨| 欧美伊人久久久久久久久影院 | 在线观看一区日韩| 久久综合九色综合欧美就去吻 | 免费日本视频一区| 日本 国产 欧美色综合| 韩国三级电影一区二区| 国产激情91久久精品导航| 国产夫妻精品视频| 在线观看一区不卡| 91麻豆精品国产自产在线 | bt7086福利一区国产| 91视频观看视频| 欧美亚洲动漫精品| 精品成人私密视频| 18涩涩午夜精品.www| 亚洲三级久久久| 国内国产精品久久| 99久久综合色| 国产午夜亚洲精品午夜鲁丝片| 91亚洲国产成人精品一区二三| 国产.欧美.日韩| 欧美精品久久久久久久久老牛影院| 亚洲国产精品天堂| gogogo免费视频观看亚洲一| 欧美日韩久久一区二区| 中文字幕制服丝袜成人av| 男人的天堂亚洲一区| 在线免费观看视频一区| 久久精品视频免费| 亚洲国产日韩精品| 91福利社在线观看| 亚洲国产精品欧美一二99| 欧美无砖砖区免费| 久久精品网站免费观看| 欧美一区二区三区在线电影| 亚洲视频 欧洲视频| 国产一区二区三区不卡在线观看 | 亚洲欧洲成人自拍| 久久99精品国产麻豆婷婷洗澡| 91麻豆免费在线观看| 久久精品视频一区二区| 日韩精品国产精品| 欧美性猛片xxxx免费看久爱| 国产精品免费看片| 国产一区二区看久久| 日韩午夜电影在线观看| 日韩制服丝袜先锋影音| 欧美在线短视频| 一区二区三区日韩欧美精品| 国产suv精品一区二区6| 久久一留热品黄| 精品一区二区三区视频在线观看| 欧美日韩视频第一区| 亚洲va欧美va人人爽午夜| 欧美日韩亚洲丝袜制服|