zoukankan      html  css  js  c++  java
  • GDAL读取Shapefile


    --------------------------------------------------------------------------------------

    #include <gdal_priv.h>
    #include <ogrsf_frmts.h>
    
    GDALAllRegister();
    OGRDataSource* poDS;
    const char* pszDriverName = "ESRI Shapefile";
    //
    GDALDriverManager* pDriverManager = GetGDALDriverManager(); //new GDALDriverManager();
    GDALDriver* pDriver = pDriverManager->GetDriverByName(pszDriverName);
    if (pDriver == nullptr)
    {
      qDebug() << pszDriverName << " driver not available.";            
      return;
    }
    //
    const char* filePathChar1 = "D:\data";
    OGRSFDriver* pSFDriver = static_cast<OGRSFDriver*>(pDriver);
    OGRDataSource* pDataSource = pSFDriver->Open(filePathChar, FALSE);
    
    /*
    OGRSFDriverRegistrar* pDriverRegistrar = OGRSFDriverRegistrar::GetRegistrar();
    OGRSFDriver* pSFDriver = (OGRSFDriver*)pDriverRegistrar->GetDriverByName(pszDriverName);
    OGRDataSource* pDataSource = pSFDriver->Open(filePathChar, FALSE);
    */
    
    ------------------------------------------------------------------------------------------------
    
    
    OGRLayer* pLayer = pDataSource->GetLayerByName(baseNameChar);
    /*const char* geometryColumnName = pLayer->GetGeometryColumn();
    int fieldIndex = pLayer->FindFieldIndex(geometryColumnName, TRUE);*/
    // pEnvelopeDisplay
    if (pLayerList.size() == 0) {
      OGREnvelope* pEnvelope = new OGREnvelope();
      pLayer->GetExtent(pEnvelope, TRUE);
      double centerX = (pEnvelope->MinX + pEnvelope->MaxX) / 2;
      double centerY = (pEnvelope->MinY + pEnvelope->MaxY) / 2;
      double distanceX = pEnvelope->MaxX - pEnvelope->MinX;
      double distanceY = pEnvelope->MaxY - pEnvelope->MinY;
      //
    }


    --------------------------------------------------------------------------------------------------

  • 相关阅读:
    PAT甲级——1095 Cars on Campus (排序、映射、字符串操作、题意理解)
    PAT甲级——1096 Consecutive Factors (数学题)
    PAT甲级——1097 Deduplication on a Linked List (链表)
    博客作业06--图
    博客作业05--查找
    博客作业04--树
    博客作业03--栈和队列
    博客作业2---线性表
    博客作业01-抽象数据类型
    C语言最后一次作业--总结报告
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/10890185.html
Copyright © 2011-2022 走看看