新版GDAL 讀取shape檔案讀取失敗和亂碼

2021-10-25 07:20:36 字數 1692 閱讀 1278

於是找到網上的**gdal之ogr入門:

#include "ogrsf_frmts.h" 

int main()

ogrlayer *polayer;

polayer = pods->getlayerbyname( "point" );

ogrfeature *pofeature;

polayer->resetreading();

while( (pofeature = polayer->getnextfeature()) != null )

ogrgeometry *pogeometry;

pogeometry = pofeature->getgeometryref();

if( pogeometry != null

&& wkbflatten(pogeometry->getgeometrytype()) == wkbpoint )

else

ogrfeature::destroyfeature( pofeature );

}ogrdatasource::destroydatasource( pods );

}

然而vs提示沒有成員open函式,想必是gdal更新了介面,於是繼續尋找,總算找到了這篇gdal2.x與1.x的主要變化比較(以c++為例說明),這才發現了新介面的使用辦法,於是更改**:

ogrregisterall();

cplsetconfigoption("gdal_filename_is_utf8", "no"); //設定支援中文路徑

cplsetconfigoption("shape_encoding", ""); // 屬性表字段支援中文

gdaldataset *pods = (gdaldataset*) gdalopenex(stsrcpath.c_str(), gdal_of_vector, null, null, null );

if( pods == null )

ogrlayer *polayer = pods->getlayerbyname( "points" );

ogrfeature *pofeature;

polayer->resetreading();

while( (pofeature = polayer->getnextfeature()) != null )

ogrgeometry *pogeometry;

pogeometry = pofeature->getgeometryref();

if( pogeometry != null

&& wkbflatten(pogeometry->getgeometrytype()) == wkbpoint )

else

ogrfeature::destroyfeature( pofeature );

} //關閉資料

gdalclose( pods );

特別注意設定以下兩點,否則會出現shp檔案無法開啟,或者開啟後欄位亂碼的問題:

cplsetconfigoption("gdal_filename_is_utf8", "no");   //設定支援中文路徑

cplsetconfigoption("shape_encoding", ""); // 屬性表字段支援中文

希望能夠幫助到有需要的人。

GDAL讀取midmif檔案(python版)

在工作中,需要經常跟midmif檔案打交道,並且經常都是批量處理,雖然mapinfo工具也可以做到,但是公司沒有購買版權,只有尋求它法。作為乙個產品pm,對技術不怎麼精通,對python也不熟悉,但是產品語言和技術語言都是相通的,於是工作之餘學習研究了一段時間,現在的水平基本可以處理一些基本的業務和...

使用GDAL讀取影像

最近在學習gdal和opencv,gdal的強大功能我就不用說了,大家上網可以查到很多關於它的資料。opencv是乙個開源的計算機視覺庫,可以去opencv中文論壇具體了解它,說下我的構思吧,opencv庫里有很多關於數字影象處理的函式,但是它卻侷限於遙感影象的讀取,而gdal卻對遙感影像的讀取支援...

使用GDAL自帶函式讀取RPC檔案的方法

rpc為有理多項式係數 rational polynomial coefficient 在遙感影像預處理中用於影像畫素座標 行列號 與對應同名點物方座標 經度,緯度,高程 之間的相互計算。rpc檔案,顧名思義,就是包含有理多項式係數的文字檔案。rpc檔案通常有兩種格式 一種為圖1所示,稱為rpc格式...