//註冊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為乙個...