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

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

?? shape2ogr.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
        SHPDestroyObject( psShape );                CPLFree( papoRings );        CPLFree( panRingStart );        CPLFree( padfX );        CPLFree( padfY );        CPLFree( padfZ );    }    else    {        /* do nothing for multipatch */        return OGRERR_UNSUPPORTED_GEOMETRY_TYPE;    }    return OGRERR_NONE;}/************************************************************************//*                       SHPReadOGRFeatureDefn()                        *//************************************************************************/OGRFeatureDefn *SHPReadOGRFeatureDefn( const char * pszName,                                       SHPHandle hSHP, DBFHandle hDBF ){    OGRFeatureDefn      *poDefn = new OGRFeatureDefn( pszName );    int                 iField;    poDefn->Reference();    for( iField = 0;          hDBF != NULL && iField < DBFGetFieldCount( hDBF );          iField++ )    {        char            szFieldName[20];        int             nWidth, nPrecision;        DBFFieldType    eDBFType;        OGRFieldDefn    oField("", OFTInteger);        char            chNativeType;        chNativeType = DBFGetNativeFieldType( hDBF, iField );        eDBFType = DBFGetFieldInfo( hDBF, iField, szFieldName,                                    &nWidth, &nPrecision );        oField.SetName( szFieldName );        oField.SetWidth( nWidth );        oField.SetPrecision( nPrecision );        if( chNativeType == 'D' )        {            /* XXX - mloskot:             * Shapefile date has following 8-chars long format: 20060101.             * OGR splits it as YYYY/MM/DD, so 2 additional characters are required.             * Is this correct assumtion? What about time part of date?             * Shouldn't this format look as datetime: YYYY/MM/DD HH:MM:SS             * with 4 additional characters?             */            oField.SetWidth( nWidth + 2 );            oField.SetType( OFTDate );        }        else if( eDBFType == FTDouble )            oField.SetType( OFTReal );        else if( eDBFType == FTInteger )            oField.SetType( OFTInteger );        else            oField.SetType( OFTString );        poDefn->AddFieldDefn( &oField );    }    if( hSHP == NULL )        poDefn->SetGeomType( wkbNone );    else    {        switch( hSHP->nShapeType )        {          case SHPT_POINT:          case SHPT_POINTM:            poDefn->SetGeomType( wkbPoint );            break;          case SHPT_POINTZ:            poDefn->SetGeomType( wkbPoint25D );            break;          case SHPT_ARC:          case SHPT_ARCM:            poDefn->SetGeomType( wkbLineString );            break;          case SHPT_ARCZ:            poDefn->SetGeomType( wkbLineString25D );            break;          case SHPT_MULTIPOINT:          case SHPT_MULTIPOINTM:            poDefn->SetGeomType( wkbMultiPoint );            break;          case SHPT_MULTIPOINTZ:            poDefn->SetGeomType( wkbMultiPoint25D );            break;          case SHPT_POLYGON:          case SHPT_POLYGONM:            poDefn->SetGeomType( wkbPolygon );            break;          case SHPT_POLYGONZ:            poDefn->SetGeomType( wkbPolygon25D );            break;                    }    }    return poDefn;}/************************************************************************//*                         SHPReadOGRFeature()                          *//************************************************************************/OGRFeature *SHPReadOGRFeature( SHPHandle hSHP, DBFHandle hDBF,                               OGRFeatureDefn * poDefn, int iShape ){    if( iShape < 0         || (hSHP != NULL && iShape >= hSHP->nRecords)        || (hDBF != NULL && iShape >= hDBF->nRecords) )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "Attempt to read shape with feature id (%d) out of available"                  " range.", iShape );        return NULL;    }    if( hDBF && DBFIsRecordDeleted( hDBF, iShape ) )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "Attempt to read shape with feature id (%d), but it is marked deleted.",                  iShape );        return NULL;    }    OGRFeature  *poFeature = new OGRFeature( poDefn );/* -------------------------------------------------------------------- *//*      Fetch geometry from Shapefile to OGRFeature.                    *//* -------------------------------------------------------------------- */    if( hSHP != NULL )    {        OGRGeometry* poGeometry = NULL;        poGeometry = SHPReadOGRObject( hSHP, iShape );        /*         * NOTE - mloskot:         * Two possibilities are expected here (bot hare tested by GDAL Autotests):         * 1. Read valid geometry and assign it directly.         * 2. Read and assign null geometry if it can not be read correctly from a shapefile         *         * It's NOT required here to test poGeometry == NULL.         */        poFeature->SetGeometryDirectly( poGeometry );    }/* -------------------------------------------------------------------- *//*      Fetch feature attributes to OGRFeature fields.                  *//* -------------------------------------------------------------------- */    for( int iField = 0; iField < poDefn->GetFieldCount(); iField++ )    {        // Skip null fields.        if( DBFIsAttributeNULL( hDBF, iShape, iField ) )            continue;        switch( poDefn->GetFieldDefn(iField)->GetType() )        {          case OFTString:            poFeature->SetField( iField,                                 DBFReadStringAttribute( hDBF, iShape,                                                         iField ) );            break;          case OFTInteger:            poFeature->SetField( iField,                                 DBFReadIntegerAttribute( hDBF, iShape,                                                          iField ) );            break;          case OFTReal:            poFeature->SetField( iField,                                 DBFReadDoubleAttribute( hDBF, iShape,                                                         iField ) );            break;          case OFTDate:          {              OGRField sFld;              int nFullDate =                   DBFReadIntegerAttribute( hDBF, iShape, iField );                            memset( &sFld, 0, sizeof(sFld) );              sFld.Date.Year = nFullDate / 10000;              sFld.Date.Month = (nFullDate / 100) % 100;              sFld.Date.Day = nFullDate % 100;                            poFeature->SetField( iField, &sFld );          }          break;          default:            CPLAssert( FALSE );        }    }    if( poFeature != NULL )        poFeature->SetFID( iShape );    return( poFeature );}/************************************************************************//*                         SHPWriteOGRFeature()                         *//*                                                                      *//*      Write to an existing feature in a shapefile, or create a new    *//*      feature.                                                        *//************************************************************************/OGRErr SHPWriteOGRFeature( SHPHandle hSHP, DBFHandle hDBF,                           OGRFeatureDefn * poDefn,                            OGRFeature * poFeature ){#ifdef notdef/* -------------------------------------------------------------------- *//*      Don't write objects with missing geometry.                      *//* -------------------------------------------------------------------- */    if( poFeature->GetGeometryRef() == NULL && hSHP != NULL )    {        CPLError( CE_Failure, CPLE_AppDefined,                  "Attempt to write feature without geometry not supported"                  " for shapefile driver." );                return OGRERR_UNSUPPORTED_GEOMETRY_TYPE;    }#endif/* -------------------------------------------------------------------- *//*      Write the geometry.                                             *//* -------------------------------------------------------------------- */    OGRErr      eErr;    if( hSHP != NULL )    {        eErr = SHPWriteOGRObject( hSHP, poFeature->GetFID(),                                  poFeature->GetGeometryRef() );        if( eErr != OGRERR_NONE )            return eErr;    }    /* -------------------------------------------------------------------- *//*      If this is a new feature, establish it's feature id.            *//* -------------------------------------------------------------------- */    if( poFeature->GetFID() == OGRNullFID )        poFeature->SetFID( DBFGetRecordCount( hDBF ) );/* -------------------------------------------------------------------- *//*      If this is the first feature to be written, verify that we      *//*      have at least one attribute in the DBF file.  If not, create    *//*      a dummy FID attribute to satisfy the requirement that there     *//*      be at least one attribute.                                      *//* -------------------------------------------------------------------- */    if( DBFGetRecordCount( hDBF ) == 0 && DBFGetFieldCount( hDBF ) == 0 )    {        CPLDebug( "OGR",                "Created dummy FID field for shapefile since schema is empty.");        DBFAddField( hDBF, "FID", FTInteger, 11, 0 );    }/* -------------------------------------------------------------------- *//*      Write out dummy field value if it exists.                       *//* -------------------------------------------------------------------- */    if( DBFGetFieldCount( hDBF ) == 1 && poDefn->GetFieldCount() == 0 )    {        DBFWriteIntegerAttribute( hDBF, poFeature->GetFID(), 0,                                   poFeature->GetFID() );    }/* -------------------------------------------------------------------- *//*      Write all the fields.                                           *//* -------------------------------------------------------------------- */    for( int iField = 0; iField < poDefn->GetFieldCount(); iField++ )    {        if( !poFeature->IsFieldSet( iField ) )        {            DBFWriteNULLAttribute( hDBF, poFeature->GetFID(), iField );            continue;        }        switch( poDefn->GetFieldDefn(iField)->GetType() )        {          case OFTString:            DBFWriteStringAttribute( hDBF, poFeature->GetFID(), iField,                                      poFeature->GetFieldAsString( iField ));            break;          case OFTInteger:            DBFWriteIntegerAttribute( hDBF, poFeature->GetFID(), iField,                                       poFeature->GetFieldAsInteger(iField) );            break;          case OFTReal:            DBFWriteDoubleAttribute( hDBF, poFeature->GetFID(), iField,                                      poFeature->GetFieldAsDouble(iField) );            break;          case OFTDate:          {              int  nYear, nMonth, nDay;              if( poFeature->GetFieldAsDateTime( iField, &nYear, &nMonth, &nDay,                                                 NULL, NULL, NULL, NULL ) )              {                  DBFWriteIntegerAttribute( hDBF, poFeature->GetFID(), iField,                                             nYear*10000 + nMonth*100 + nDay );              }          }          break;          default:            CPLAssert( FALSE );        }    }    return OGRERR_NONE;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲国产日韩| 亚洲一区二区三区国产| 91精品国产品国语在线不卡| 色综合中文综合网| 国产日韩亚洲欧美综合| 91精品欧美综合在线观看最新| 韩国一区二区在线观看| 亚洲成人1区2区| 亚洲精品中文字幕乱码三区| 中文字幕第一页久久| 在线观看精品一区| 在线精品视频一区二区三四| 成人黄色免费短视频| 色婷婷精品久久二区二区蜜臀av| 成人污视频在线观看| 麻豆精品国产传媒mv男同| 久久99精品久久久久久久久久久久 | 一区二区三区日韩欧美| 中文字幕欧美日韩一区| 成人免费看黄yyy456| 国产超碰在线一区| 日本成人在线不卡视频| 亚洲激情校园春色| 一片黄亚洲嫩模| 日韩影院在线观看| 国产精品中文字幕日韩精品| 波多野结衣中文一区| 国产麻豆9l精品三级站| 91尤物视频在线观看| 日韩三级高清在线| 26uuu精品一区二区| 国产欧美精品一区| 依依成人综合视频| 久久黄色级2电影| 99精品热视频| 日韩视频一区二区| 国产精品不卡在线| 美国十次了思思久久精品导航| 国产成人av电影免费在线观看| 91视视频在线观看入口直接观看www | 久久色视频免费观看| 亚洲婷婷综合色高清在线| 亚洲成av人片在线观看| 国产美女在线观看一区| 欧美电影影音先锋| 国产精品午夜在线观看| 亚洲国产一区二区视频| 国产一区二区成人久久免费影院| 欧美一区二区三区不卡| 亚洲欧美视频在线观看| 国产不卡视频在线播放| 欧美视频精品在线观看| 久久先锋影音av| 精品一区二区三区的国产在线播放| 91精品国产全国免费观看| 亚洲精品久久久久久国产精华液| 国产自产高清不卡| 精品99一区二区三区| 日韩av一区二区在线影视| 欧美日韩国产首页在线观看| 亚洲色图20p| 色国产精品一区在线观看| 综合久久国产九一剧情麻豆| 成人毛片在线观看| 国产精品萝li| 色婷婷精品大在线视频| 国产精品美女久久久久aⅴ| 无码av中文一区二区三区桃花岛| 欧美精品三级在线观看| 秋霞影院一区二区| 精品va天堂亚洲国产| 亚洲国产精品尤物yw在线观看| 国产一区二区三区综合| 欧美一级一级性生活免费录像| 久久超碰97人人做人人爱| 欧美一区二区国产| 久久成人羞羞网站| 久久久久亚洲蜜桃| 国产盗摄一区二区三区| 国产精品私人自拍| 成人看片黄a免费看在线| 有坂深雪av一区二区精品| 91麻豆精品国产综合久久久久久| 久久99久久久欧美国产| 国产精品免费丝袜| 91精品1区2区| 韩国精品久久久| 一区二区三区蜜桃网| 91福利在线导航| 国产高清视频一区| 亚洲第一在线综合网站| 国产日韩视频一区二区三区| 国产一区二区在线视频| 国产日本一区二区| 777久久久精品| www.亚洲人| 久久av老司机精品网站导航| 一区二区三区在线观看国产| 欧美电影免费观看完整版| 国产精品一区在线| 日韩中文字幕麻豆| 一区二区三区美女视频| 国产日韩欧美激情| 91蜜桃免费观看视频| 麻豆免费看一区二区三区| 国产精品污www在线观看| 欧美亚洲一区二区在线观看| bt欧美亚洲午夜电影天堂| 激情文学综合丁香| 国产一区二区91| 亚洲图片欧美综合| 一区二区三区在线影院| 中文字幕在线不卡国产视频| 日韩欧美精品在线| 日韩欧美国产午夜精品| 日韩欧美高清在线| 日韩午夜激情视频| 欧美福利视频导航| 欧美妇女性影城| 欧美性猛交一区二区三区精品| 欧美最新大片在线看| 色欲综合视频天天天| 欧美日韩卡一卡二| 欧美日韩三级一区| 日韩一区和二区| 国产亲近乱来精品视频| 国产欧美一区二区三区网站| 成人欧美一区二区三区视频网页| 1024成人网| 日韩免费高清av| 久久亚洲捆绑美女| 国产精品电影一区二区三区| 亚洲欧美日韩国产另类专区| 亚洲一区二区黄色| 久草热8精品视频在线观看| 成人国产免费视频| 欧美日韩欧美一区二区| 久久久国产一区二区三区四区小说| 中文字幕一区视频| 午夜激情久久久| 丁香天五香天堂综合| 欧美裸体bbwbbwbbw| 日本一区二区三区在线观看| 国产亚洲自拍一区| 欧美日韩一区二区三区高清| 久久久91精品国产一区二区三区| 中日韩免费视频中文字幕| 亚州成人在线电影| av电影天堂一区二区在线| 欧美日本国产视频| 久久久久久久久岛国免费| 国产精品免费免费| 精品一区二区三区在线播放| 91麻豆swag| 中文字幕一区二区5566日韩| 国产一区二三区好的| 欧美夫妻性生活| 亚洲国产视频一区二区| 看电视剧不卡顿的网站| 欧美三级视频在线| 亚洲精品免费视频| 国产毛片精品国产一区二区三区| 日本韩国欧美一区| 国产日产欧美一区| 国产激情精品久久久第一区二区 | 中文字幕一区日韩精品欧美| 久久99精品一区二区三区三区| 欧美国产一区在线| 精品一区二区三区的国产在线播放| 91精品国产入口在线| 亚洲视频一区在线| 91国产精品成人| 亚洲色欲色欲www| 99国内精品久久| 亚洲人xxxx| 欧美三区在线视频| 麻豆精品一二三| www一区二区| 精品一区二区三区久久| 欧美一区二区三区免费大片| 自拍偷自拍亚洲精品播放| 99久久精品情趣| 亚洲欧美一区二区三区久本道91 | 国产电影一区二区三区| 日韩一区在线播放| 色先锋久久av资源部| 裸体一区二区三区| 久久蜜桃香蕉精品一区二区三区| 国产.欧美.日韩| 亚洲一区二区欧美| 久久色视频免费观看| 久久激情综合网| 日本一区二区免费在线| 91丨国产丨九色丨pron| 天天做天天摸天天爽国产一区| 久久在线免费观看| 91蜜桃免费观看视频| 国产精品18久久久久久久网站| 亚洲影院理伦片| 国产精品美女久久久久久久久|