windows下的QT(mingw版)+GDAL库下载、安装、测试

对于烂大街的vs添加GDAL库就不说了,百度上一搜索一大片。
下面介绍windows下的QT(mingw版)+GDAL。

QT所有版本下载链接:https://download.qt.io/archive/qt/

    1.QT自行下载.
    2.已经编译好的GDAL库下载:https://download.csdn.net/download/carry_qt/10648004
    3.添加GDAL库
       ①右键项目——>添加库——>外部库——>浏览选择对应文件——>完成。
    4.添加完成后在.pro项目文件中会多出几行代码,要删除掉else:win32最后的d字母。
    5.执行qmake,然后将解压的GDAL库文件夹下的bin目录下面的.dll动态链接库添加到Debug文件夹下面即可。

测试代码:
    OGRRegisterAll();

    OGRDataSource *poDS;
    
    poDS = OGRSFDriverRegistrar::Open( "H:\\行政区\\县界.shp", FALSE );
    if( poDS == NULL )
    {
        qDebug()<<"Open failed!";
        exit( 1 );
    }
    
    OGRLayer  *poLayer;
    poLayer = poDS->GetLayerByName( "县界" );
    OGRFeature *poFeature;
    poLayer->ResetReading();
    while( (poFeature = poLayer->GetNextFeature()) != NULL )//获得要素
    {
        OGRFeatureDefn *poFDefn = poLayer->GetLayerDefn();
        int iField;
        poFDefn->GetFieldCount(); //获得字段的数目
    
        for( iField = 0; iField < poFDefn->GetFieldCount(); iField++ )
        {
            OGRFieldDefn *poFieldDefn = poFDefn->GetFieldDefn( iField );
           //根据字段值得类型,选择对应的输出
            if( poFieldDefn->GetType() == OFTInteger )
               qDebug()<GetFieldAsString(iField);
            else if( poFieldDefn->GetType() == OFTReal )
                qDebug()<GetFieldAsString(iField);
            else if( poFieldDefn->GetType() == OFTString )
                qDebug()<GetFieldAsString(iField);
            else
                qDebug()<GetFieldAsString(iField);
        }
    
        OGRGeometry *poGeometry;
        poGeometry = poFeature->GetGeometryRef();
        if( poGeometry != NULL
            && wkbFlatten(poGeometry->getGeometryType()) == wkbPoint )
        {
            OGRPoint *poPoint = (OGRPoint *) poGeometry;
            qDebug()<getX();
            qDebug()<getY();
        }
        else
        {
            qDebug()<<"no point geometry!";
        }
        OGRFeature::DestroyFeature( poFeature );
    }
    OGRDataSource::DestroyDataSource( poDS );
    return;
 

你可能感兴趣的:(QT,GDAL库)