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

2021-10-24 01:38:51 字數 2756 閱讀 4149

可以通過gdal給地理資料寫入空間參考資訊,不過要注意的是gdal給向量資料和柵格資料寫入空間座標參考的介面不太一樣。

實現**如下:

#include

#include

#include

using

namespace std;

intmain()

//空間參考

ogrspatialreference spatialreference;

spatialreference.

importfromepsg

(4326);

//wgs84地理座標系

char

*pszwkt =

nullptr

; spatialreference.

exporttowkt

(&pszwkt)

; dst-

>

setprojection

(pszwkt)

;cplfree

(pszwkt)

; pszwkt =

nullptr

;//座標資訊

double padftransform[6]

=;dst-

>

setgeotransform

(padftransform)

;gdalclose

(dst)

;}

這裡建立了乙個wgs84地理座標系空間參考的柵格資料,通過ogrspatialreference類匯出了描述空間參考的wkt字串,寫入到gdal資料集中。

實現**如下:

#include

#include

#include

using

namespace std;

intmain()

gdaldataset* dataset = driver-

>

create

("dst.shp",0

,0,0

, gdt_unknown,

null);

ogrlayer* polayer = dataset-

>

createlayer

("housetype"

,&spatialreference, wkbpolygon,

null);

//建立屬性字段

// 浮點數

ogrfielddefn ofield2

("面積"

, oftreal)

; ofield2.

setprecision(3

);if(polayer-

>

createfield

(&ofield2)

!= ogrerr_none)

// 整型

ogrfielddefn ofield3

("結點數"

, oftinteger);if

(polayer-

>

createfield

(&ofield3)

!= ogrerr_none)

}//建立特徵

ogrfeature *pofeature =

newogrfeature

(polayer-

>

getlayerdefn()

);ogrlinearring ogrring;

int pnum =4;

ogrring.

setnumpoints

(pnum)

; ogrring.

setpoint(0

,114.0

,34.0

,0.0);

ogrring.

setpoint(1

,115.0

,34.0

,0.0);

ogrring.

setpoint(2

,115.0

,35.0

,0.0);

ogrring.

setpoint(3

,114.0

,35.0

,0.0);

ogrpolygon polygon;

polygon.

addring

(&ogrring)

; pofeature-

>

setgeometry

(&polygon)

; pofeature-

>

setfield

("名稱"

,"多邊形");

pofeature-

>

setfield

("面積"

, polygon.

get_area()

);pofeature-

>

setfield

("結點數"

, pnum);if

(polayer-

>

createfeature

(pofeature)

!= ogrerr_none)

//釋放

gdalclose

(dataset)

; dataset =

nullptr

;}

與寫入到柵格資料不同,空間參考資訊寫入到向量資料是寫入到gdal資料集的圖層類中的,並且直接傳入ogrspatialreference類即可。

GDAL空間參考 C

註冊gdal osgeo.gdal.gdal.allregister osgeo.ogr.driver dr osgeo.ogr.ogr.getdriverbyname esri shapefile osgeo.ogr.datasource ds dr.open shp檔案路徑 0 osgeo.og...

資料庫表空間滿了,資料無法寫入排查步驟

資料庫表空間滿了,資料無法寫入排查步驟 最近遇到乙個問題,我們資料庫滿了,無法寫入資料。第一步 查詢表空間使用情況 select a.tablespace name 表空間名 total 表空間大小 free 表空間剩餘大小 total free 表空間使用大小 total 1024 1024 10...

在開發中使用GDAL讀取空間資料的使用心得一

今天不知道怎麼的,有點不想寫 可能是這幾天寫多,寫傷著了吧.既然這樣那就寫寫最近的一些心得吧 最近在我做空間資料共享這方面的,所以要讀取一些空間資料,比如shapefile mif 之類的.這些空間資料的儲存格式不是很複雜,但是完全讀取還是有一點麻煩,特別是要 將幾何資料與屬性資料整合到一塊,更有點...