GDAL空間參考 C

2021-10-02 19:35:34 字數 1881 閱讀 2337

//註冊gdal

osgeo.gdal.gdal.

allregister()

;osgeo.ogr.driver dr = osgeo.ogr.ogr.

getdriverbyname

("esri shapefile");

osgeo.ogr.datasource ds = dr.

open

("shp檔案路徑",0

);osgeo.ogr.layer layer = ds.

getlayerbyindex(0

);spatialreference = layer.

getspatialref()

;

//註冊gdal

osgeo.gdal.gdal.

allregister()

;osgeo.gdal.dataset ds = osgeo.gdal.gdal.

open

("tif檔案路徑"

, osgeo.gdal.access.ga_readonly)

;string wkt = ds.

getprojectionref()

;osgeo.osr.spatialreference projection =

newosgeo.osr.spatialreference

(wkt)

;

//spatialreference是已經獲得的投影座標,可以通過上述方法從檔案獲得,也可從其他方式獲取

osgeo.osr.spatialreference projection = spatialreference;

//獲取投影座標的地理座標

osgeo.osr.spatialreference latlng = projection.

clonegeogcs()

;//建立座標變換的規則

osgeo.osr.coordinatetransformation latlng2xy =

newosgeo.osr.coordinatetransformation

(latlng, projection)

;double

lon =

;double

lat =

;double

z =

;latlng2xy.

transformpoints(2

, lon, lat, z)

;

/*

* 與latlng2xy思路一樣,先獲取要轉換的2種座標,只不過在轉換規則的時候換一下位置即可

*//spatialreference是已經獲得的投影座標,可以通過上述方法從檔案獲得,也可從其他方式獲取

osgeo.osr.spatialreference projection = spatialreference;

//獲取投影座標的地理座標

osgeo.osr.spatialreference latlng = projection.

clonegeogcs()

;//建立座標變換的規則

osgeo.osr.coordinatetransformation latlng2xy =

newosgeo.osr.coordinatetransformation

(projection, latlng)

;double

lon =

;double

lat =

;double

z =

;latlng2xy.

transformpoints(2

, lon, lat, z)

;

GDAL資料集寫入空間座標參考

可以通過gdal給地理資料寫入空間參考資訊,不過要注意的是gdal給向量資料和柵格資料寫入空間座標參考的介面不太一樣。實現 如下 include include include using namespace std intmain 空間參考 ogrspatialreference spatialr...

GDAL讀寫向量檔案 C

在c 中使用ogr讀寫向量資料時,需要引用 using osgeo.ogr 同時為了處理中文路徑和中文字段,需要在開始設定下面兩個屬性,如下 為了支援中文路徑,請新增下面這句 大多數情況下不需要這句 gdal filename is utf8 no 為了使屬性表字段支援中文,請新增下面這句 osge...

C 下GDAL演算法進度顯示

以生成金字塔為例,在c 下,可以用以下 if ds.buildoverviews args 1 levels,new gdal.gdalprogressfuncdelegate progressfunc sample data int cplerr.ce none 其中progressfunc為乙個...