结合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;}

结果显示:

结合C++和GDAL实现shapefile(shp)文件的读取
原文链接: https://www.cnblogs.com/denny402/p/4959867.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/224393

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午12:25
下一篇 2023年2月13日 下午12:25

相关推荐