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

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

?? ogrogdilayer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************** * $Id: ogrogdilayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  OGDI Bridge * Purpose:  Implements OGROGDILayer 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. ****************************************************************************** * http://bugzilla.remotesensing.org/show_bug.cgi?id=372 * * Revision 1.6  2003/05/21 03:58:49  warmerda * expand tabs * * Revision 1.5  2001/07/18 04:55:16  warmerda * added CPL_CSVID * * Revision 1.4  2001/06/19 15:50:23  warmerda * added feature attribute query support * * Revision 1.3  2001/04/17 21:41:02  warmerda * Added use of cln_GetLayerCapabilities() to query list of available layers. * Restructured OGROGDIDataSource and OGROGDILayer classes somewhat to * avoid passing so much information in the layer creation call.  Added support * for preserving text on OGDI text features. * * Revision 1.2  2000/08/30 01:36:57  danmo * Added GetSpatialRef() support * * Revision 1.1  2000/08/24 04:16:19  danmo * Initial revision * */#include "ogrogdi.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrogdilayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                           OGROGDILayer()                            *//************************************************************************/OGROGDILayer::OGROGDILayer( OGROGDIDataSource *poODS,                             const char * pszName, ecs_Family eFamily ){    m_poODS = poODS;    m_nClientID = m_poODS->GetClientID();    m_eFamily = eFamily;    m_pszOGDILayerName = CPLStrdup(pszName);    m_sFilterBounds = *(m_poODS->GetGlobalBounds());    m_iNextShapeId = 0;    m_nTotalShapeCount = -1;    m_poFeatureDefn = NULL;    // Keep a reference on the SpatialRef (owned by the dataset).    m_poSpatialRef = m_poODS->GetSpatialRef();    // Select layer and feature family.    ResetReading();    BuildFeatureDefn();}/************************************************************************//*                           ~OGROGDILayer()                           *//************************************************************************/OGROGDILayer::~OGROGDILayer(){    if( m_nFeaturesRead > 0 && m_poFeatureDefn != NULL )    {        CPLDebug( "OGDI", "%d features read on layer '%s'.",                  (int) m_nFeaturesRead,                   m_poFeatureDefn->GetName() );    }    if (m_poFeatureDefn)        m_poFeatureDefn->Release();    CPLFree(m_pszOGDILayerName);    // Note: we do not delete m_poSpatialRef since it is owned by the dataset}/************************************************************************//*                          SetSpatialFilter()                          *//************************************************************************/void OGROGDILayer::SetSpatialFilter( OGRGeometry * poGeomIn ){    if( !InstallFilter( poGeomIn ) )        return;    if( m_poFilterGeom != NULL )    {        OGREnvelope     oEnv;        ecs_Result     *psResult;        m_poFilterGeom->getEnvelope(&oEnv);        m_sFilterBounds.north = oEnv.MaxY;        m_sFilterBounds.south = oEnv.MinY;        m_sFilterBounds.east  = oEnv.MinX;        m_sFilterBounds.west  = oEnv.MaxX;        psResult = cln_SelectRegion( m_nClientID, &m_sFilterBounds);        if( ECSERROR(psResult) )        {            CPLError( CE_Failure, CPLE_AppDefined,                      "%s", psResult->message );            return;        }    }    m_iNextShapeId = 0;    m_nTotalShapeCount = -1;}/************************************************************************//*                            ResetReading()                            *//************************************************************************/void OGROGDILayer::ResetReading(){    ecs_Result *psResult;    ecs_LayerSelection sSelectionLayer;    sSelectionLayer.Select = m_pszOGDILayerName;    sSelectionLayer.F = m_eFamily;    psResult = cln_SelectLayer(m_nClientID, &sSelectionLayer);    if( ECSERROR( psResult ) )    {        CPLError( CE_Failure, CPLE_AppDefined,                  "Access to layer '%s' Failed: \n",                  m_pszOGDILayerName, psResult->message );        return;    }    m_iNextShapeId = 0;}/************************************************************************//*                           GetNextFeature()                           *//************************************************************************/OGRFeature *OGROGDILayer::GetNextFeature(){    OGRFeature  *poFeature=NULL;    ecs_Result  *psResult;    int         i;/* -------------------------------------------------------------------- *//*      Retrieve object from OGDI server and create new feature         *//* -------------------------------------------------------------------- */  TryAgain:    psResult = cln_GetNextObject(m_nClientID);    if (! ECSSUCCESS(psResult))    {        // We probably reached EOF... keep track of shape count.        m_nTotalShapeCount = m_iNextShapeId;        return NULL;    }       poFeature = new OGRFeature(m_poFeatureDefn);    poFeature->SetFID( m_iNextShapeId++ );    m_nFeaturesRead++;/* -------------------------------------------------------------------- *//*      Process geometry                                                *//* -------------------------------------------------------------------- */    if (m_eFamily == Point)    {        ecs_Point       *psPoint = &(ECSGEOM(psResult).point);        OGRPoint        *poOGRPoint = new OGRPoint(psPoint->c.x, psPoint->c.y);        poFeature->SetGeometryDirectly(poOGRPoint);    }    else if (m_eFamily == Line)    {        ecs_Line        *psLine = &(ECSGEOM(psResult).line);        OGRLineString   *poOGRLine = new OGRLineString();        poOGRLine->setNumPoints( psLine->c.c_len );        for( i=0; i < (int) psLine->c.c_len; i++ )         {            poOGRLine->setPoint(i, psLine->c.c_val[i].x, psLine->c.c_val[i].y);        }        poFeature->SetGeometryDirectly(poOGRLine);    }    else if (m_eFamily == Area)    {        ecs_Area        *psArea = &(ECSGEOM(psResult).area);        OGRPolygon      *poOGRPolygon = new OGRPolygon();        for(int iRing=0; iRing < (int) psArea->ring.ring_len; iRing++)        {            ecs_FeatureRing     *psRing = &(psArea->ring.ring_val[iRing]);            OGRLinearRing       *poOGRRing = new OGRLinearRing();            poOGRRing->setNumPoints( psRing->c.c_len );            for( i=0; i < (int) psRing->c.c_len; i++ )             {                poOGRRing->setPoint(i, psRing->c.c_val[i].x,                                     psRing->c.c_val[i].y);            }            poOGRPolygon->addRingDirectly(poOGRRing);        }        // __TODO__        // When OGR supports polygon centroids then we should carry them here        poFeature->SetGeometryDirectly(poOGRPolygon);    }    else if (m_eFamily == Text)    {        // __TODO__        // For now text is treated as a point and string is lost        //        ecs_Text       *psText = &(ECSGEOM(psResult).text);        OGRPoint        *poOGRPoint = new OGRPoint(psText->c.x, psText->c.y);        poFeature->SetGeometryDirectly(poOGRPoint);    }    else    {        CPLAssert(FALSE);    }/* -------------------------------------------------------------------- *//*      Set attributes                                                  *//* -------------------------------------------------------------------- */    char *pszAttrList = ECSOBJECTATTR(psResult);    for( int iField = 0; iField < m_poFeatureDefn->GetFieldCount(); iField++ )    {        char        *pszFieldStart;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区成人在线| 国产精品一区二区视频| 欧美videofree性高清杂交| 波多野结衣一区二区三区| 久久超级碰视频| 美国三级日本三级久久99| 日本sm残虐另类| 天天色天天操综合| 亚洲大片精品永久免费| 人人狠狠综合久久亚洲| 91福利国产精品| 欧洲中文字幕精品| 欧美精品第1页| 欧亚洲嫩模精品一区三区| 久久久久免费观看| 久久精品视频免费观看| 国产精品嫩草久久久久| 国产日韩av一区| 成人欧美一区二区三区| 尤物在线观看一区| 亚洲成人av电影| 97精品超碰一区二区三区| 在线欧美一区二区| 国产精品第四页| 午夜精品免费在线观看| 91麻豆精品视频| 欧美一区二区免费| 国产清纯白嫩初高生在线观看91 | 337p粉嫩大胆噜噜噜噜噜91av| 精品久久久久久久久久久久久久久| 亚洲国产欧美另类丝袜| 国产麻豆精品在线观看| 成a人片国产精品| 69久久夜色精品国产69蝌蚪网| 2021久久国产精品不只是精品| 丝袜诱惑亚洲看片| gogo大胆日本视频一区| 国产精品免费av| 9l国产精品久久久久麻豆| 中文字幕不卡在线观看| 亚洲伊人伊色伊影伊综合网| 欧美在线一区二区| 婷婷综合久久一区二区三区| 欧美老女人第四色| 男人的天堂久久精品| 91精品国产欧美一区二区成人| 日本成人在线电影网| 91麻豆123| 亚洲一区视频在线观看视频| 91精品久久久久久蜜臀| 国产又黄又大久久| 一区在线观看视频| 欧美在线看片a免费观看| 亚洲123区在线观看| 日韩三级视频在线看| 亚洲曰韩产成在线| 日韩欧美国产一二三区| 亚洲综合久久久| 91精品国产综合久久久久久漫画| 老司机精品视频在线| 国产日产欧美一区二区视频| 一本在线高清不卡dvd| 欧美xxxxxxxx| 国产91色综合久久免费分享| 精品欧美一区二区三区精品久久| 国产老肥熟一区二区三区| 国产精品狼人久久影院观看方式| 在线观看免费成人| 国产麻豆欧美日韩一区| 亚洲精品成人精品456| 26uuu精品一区二区三区四区在线| 成人午夜在线播放| 国产亚洲一区字幕| 欧美日韩视频专区在线播放| 依依成人精品视频| 精品剧情在线观看| 日本久久一区二区三区| 久久国产精品99久久人人澡| 亚洲天堂免费在线观看视频| 91麻豆国产精品久久| 久久99国产精品免费| 日韩欧美国产一区二区在线播放 | 日本一区二区电影| 51久久夜色精品国产麻豆| 99精品黄色片免费大全| 精品一区二区免费在线观看| 亚洲精品菠萝久久久久久久| 久久亚洲精品国产精品紫薇| 欧美一区二区三区播放老司机| 成人精品免费网站| 九九久久精品视频| 亚洲午夜久久久久中文字幕久| 国产精品色在线| 久久综合九色综合97婷婷| 欧美日韩电影在线播放| 免费精品视频在线| 亚洲国产综合色| 国产精品人成在线观看免费 | 岛国精品在线播放| 日本aⅴ精品一区二区三区| 亚洲国产视频一区二区| 一区二区三区免费在线观看| 欧美伦理影视网| 色先锋aa成人| 91亚洲精华国产精华精华液| 成人精品免费网站| 粉嫩av一区二区三区在线播放| 久久精品国产在热久久| 日日夜夜免费精品| 日韩国产欧美视频| 日韩黄色一级片| 污片在线观看一区二区| 亚洲大片精品永久免费| 亚欧色一区w666天堂| 午夜精品福利视频网站| 亚洲成人免费观看| 午夜激情综合网| 午夜a成v人精品| 美女视频一区二区三区| 久久99精品国产麻豆婷婷洗澡| 久久99蜜桃精品| 国产一区二三区| 岛国精品一区二区| 99久久久久久99| 在线观看一区二区视频| 欧美年轻男男videosbes| 欧美欧美午夜aⅴ在线观看| 欧美精品丝袜久久久中文字幕| 欧美一级爆毛片| 久久综合久久99| ㊣最新国产の精品bt伙计久久| 国产精品久久久久久久久动漫 | 欧美电影免费观看完整版| 久久伊人中文字幕| 国产精品久久综合| 亚洲综合999| 蜜臀av性久久久久蜜臀aⅴ四虎| 国内成人精品2018免费看| 国产精品国产自产拍高清av| 亚洲老妇xxxxxx| 天天色综合成人网| 国产一区啦啦啦在线观看| 91在线丨porny丨国产| 欧美三级电影网站| 精品福利在线导航| 日韩女同互慰一区二区| 国产精品私人影院| 视频一区免费在线观看| 精品一区二区久久| 99精品视频一区| 日韩欧美一卡二卡| 欧美国产一区在线| 亚洲一线二线三线久久久| 精品一区二区三区久久久| www.成人网.com| 日韩欧美一级在线播放| 国产精品成人网| 日韩vs国产vs欧美| 成人综合婷婷国产精品久久免费| 在线日韩一区二区| 国产欧美一二三区| 日韩国产成人精品| 91首页免费视频| 久久精品一二三| 午夜在线电影亚洲一区| www.亚洲免费av| 亚洲精品一区二区三区蜜桃下载| 亚洲精品视频在线观看网站| 国产伦精品一区二区三区免费迷 | 国产欧美日韩精品在线| 婷婷开心激情综合| 国产成人午夜精品5599| 精品亚洲免费视频| 日本高清成人免费播放| 欧美经典一区二区| 九九视频精品免费| 3d成人动漫网站| 亚洲精品成人在线| www.在线成人| 欧美高清在线一区二区| 国产真实乱偷精品视频免| 精品视频一区 二区 三区| 亚洲人成小说网站色在线| 亚洲国产精品一区二区www | 亚洲欧美日韩人成在线播放| 久久电影国产免费久久电影| 色欧美乱欧美15图片| 国产免费观看久久| 国产一区在线精品| 精品国产一区二区三区久久久蜜月| 亚洲mv大片欧洲mv大片精品| 在线区一区二视频| 一区二区三区日韩| 欧美综合欧美视频| 亚洲黄网站在线观看| 91视频.com| 亚洲一区二区三区小说| 91激情五月电影| 亚洲美女偷拍久久| 日本韩国一区二区三区视频|