結合C++和GDAL實現shapefile(shp)文件的讀取


工具:vs2012+GDAL 2.0

數據:中國省界SHP文件bou2_4p.shp   可點擊下載

包含頭文件:

#include "ogrsf_frmts.h"

代碼:

int main()
{
GDALAllRegister(); GDALDataset
*poDS; CPLSetConfigOption("SHAPE_ENCODING",""); //解決中文亂碼問題 //讀取shp文件 poDS = (GDALDataset*) GDALOpenEx("d:/shapefile/bou2_4p.shp", GDAL_OF_VECTOR, NULL, NULL, NULL ); if( poDS == NULL ) { printf( "Open failed.\n%s" ); return 0; } OGRLayer *poLayer; poLayer = poDS->GetLayer(0); //讀取層 OGRFeature *poFeature; poLayer->ResetReading(); int i=0; while( (poFeature = poLayer->GetNextFeature()) != NULL ) { if(poFeature->GetFieldAsDouble("AREA")<1) continue; //去掉面積過小的polygon i=i++; cout<<i<<" "; OGRFeatureDefn *poFDefn = poLayer->GetLayerDefn(); int iField; int n=poFDefn->GetFieldCount(); //獲得字段的數目,不包括前兩個字段(FID,Shape); for( iField = 0; iField <n; iField++ ) { //輸出每個字段的值 cout<<poFeature->GetFieldAsString(iField)<<" "; } cout<<endl; OGRFeature::DestroyFeature( poFeature ); } GDALClose( poDS ); system("pause"); return 1;
}

結果顯示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM