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

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

?? 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品国产一区二区三区不卡| 在线观看91精品国产入口| 色婷婷激情久久| 久久综合九色综合欧美98| 亚洲国产精品久久久久秋霞影院| 精品一区二区综合| 欧美精品一二三四| 亚洲大片一区二区三区| 日本韩国欧美在线| 亚洲精品久久久蜜桃| 精品日韩欧美一区二区| 国产老肥熟一区二区三区| 精品嫩草影院久久| 蜜桃一区二区三区在线| 欧美一级精品在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线电影国产精品| 亚洲国产一区视频| 欧美日韩国产一区二区三区地区| 亚洲欧洲三级电影| 欧美性一级生活| 六月婷婷色综合| 国产日韩av一区二区| 狠狠色丁香婷婷综合| 亚洲日本在线视频观看| 99re在线视频这里只有精品| 亚洲视频免费观看| 久久99热国产| 色婷婷精品久久二区二区蜜臂av | 视频一区二区三区中文字幕| 欧美午夜理伦三级在线观看| 韩国精品免费视频| 欧美国产欧美综合| 色综合一区二区三区| 亚洲一区二区三区四区不卡| 日韩免费福利电影在线观看| 福利91精品一区二区三区| 日韩中文字幕亚洲一区二区va在线 | 国产欧美一区二区精品性| 欧美男男青年gay1069videost | 亚洲激情欧美激情| 正在播放一区二区| 色一区在线观看| 国产高清不卡一区二区| 青青国产91久久久久久| 亚洲一区二区视频| 国产精品久久久久久久久免费桃花| 欧美一级片在线观看| 欧美日韩久久一区| 欧美色图天堂网| 99精品欧美一区二区三区综合在线| 国产精品18久久久久久久久| 日韩主播视频在线| 日韩高清电影一区| 亚洲成人综合视频| 亚洲v日本v欧美v久久精品| 亚洲精品欧美专区| 亚洲一区免费在线观看| 中文字幕亚洲精品在线观看| 中文字幕免费一区| 国产精品久久久久婷婷二区次| 综合在线观看色| 亚洲精品五月天| 亚洲.国产.中文慕字在线| 亚洲成av人片| 国产一区啦啦啦在线观看| 国产在线视频精品一区| 99精品视频在线观看| 欧美日韩一级视频| 日韩欧美国产一区二区在线播放| 日韩免费观看高清完整版 | 欧美xxxx在线观看| 国产精品女同一区二区三区| 一区二区在线看| 成人免费三级在线| 波多野结衣欧美| 日本精品裸体写真集在线观看 | 亚洲国产一区视频| 国产又粗又猛又爽又黄91精品| 大胆亚洲人体视频| 91精品久久久久久久99蜜桃| 精品毛片乱码1区2区3区| 日本一区二区三区国色天香| 亚洲电影视频在线| 国产精品一区二区久久不卡 | 欧美一区三区二区| 自拍偷拍欧美激情| 国产在线麻豆精品观看| 欧美精品在线一区二区| 亚洲精品你懂的| 国产自产视频一区二区三区| 91视频在线看| 亚洲欧美偷拍另类a∨色屁股| 91亚洲精品久久久蜜桃网站| 成人aa视频在线观看| 日韩亚洲欧美中文三级| 亚洲成人精品一区二区| 91欧美一区二区| 国产女人aaa级久久久级| 九九九精品视频| 在线播放中文字幕一区| 亚洲免费观看高清完整| 国产在线播放一区| 久久精品视频一区二区三区| 五月激情综合色| 欧美午夜精品久久久久久超碰| 国产欧美日韩亚州综合| 成人的网站免费观看| 国产亚洲精品资源在线26u| 风间由美一区二区av101| 国产亚洲精品aa午夜观看| 国产成人aaa| 欧美激情艳妇裸体舞| 一本久久a久久免费精品不卡| 亚洲视频一二区| 在线精品视频免费观看| 美女脱光内衣内裤视频久久网站 | 麻豆专区一区二区三区四区五区| 欧美国产97人人爽人人喊| 国产麻豆精品一区二区| 国产欧美日韩视频在线观看| 色综合天天综合色综合av| 亚洲成va人在线观看| 日韩欧美区一区二| 成人av中文字幕| 亚洲成av人影院| 国产精品视频在线看| 欧美日韩国产一级二级| 国产曰批免费观看久久久| 亚洲日本护士毛茸茸| 久久综合av免费| 欧美在线免费视屏| 成人夜色视频网站在线观看| 偷拍日韩校园综合在线| 国产不卡视频在线播放| 亚洲第四色夜色| 综合色中文字幕| 国产欧美一区二区三区在线老狼| 欧美日韩国产小视频| 97久久超碰国产精品| 久久爱www久久做| 日韩va亚洲va欧美va久久| 亚洲猫色日本管| 国产午夜精品福利| 久久久久久久免费视频了| 欧美日韩在线三级| 91在线观看免费视频| 成人在线视频一区二区| 精品无人码麻豆乱码1区2区| 亚洲第一二三四区| 亚洲男人的天堂在线观看| 天天综合色天天| 亚洲国产日韩精品| 亚洲国产成人porn| 三级在线观看一区二区| 亚洲18女电影在线观看| 亚洲电影在线播放| 偷拍日韩校园综合在线| 美女爽到高潮91| 天堂午夜影视日韩欧美一区二区| 首页亚洲欧美制服丝腿| 日韩电影一二三区| 蜜桃av一区二区三区电影| 免费成人av在线| 国产成人精品三级麻豆| 国产美女精品一区二区三区| 成人av在线网站| 日本久久一区二区| 日韩视频一区二区三区在线播放| 久久久亚洲国产美女国产盗摄 | 精品精品欲导航| 亚洲国产精品黑人久久久| 一区二区三区在线免费播放| 亚洲一区二区三区三| 蜜桃精品视频在线观看| 国产成人免费xxxxxxxx| 91久久精品国产91性色tv| 国产一区久久久| 免费在线看成人av| 97久久精品人人澡人人爽| 欧美一区二区三区人| 国产精品美女久久久久高潮| 日韩精品一二区| 在线日韩国产精品| 国产午夜亚洲精品羞羞网站| 日韩福利电影在线| 99re8在线精品视频免费播放| 欧美一区二区三区四区久久 | 在线不卡一区二区| ㊣最新国产の精品bt伙计久久| 日本在线观看不卡视频| 欧美日韩一区二区三区在线看 | 在线区一区二视频| 最近日韩中文字幕| 国产精品99久久久久久久女警 | 国产成人免费高清| 久久久久9999亚洲精品| 国产一区二区在线观看视频| 日韩三级中文字幕| 午夜国产精品影院在线观看|