在C++中使用GDAL庫進行坐標系統的轉換,可以通過以下步驟實現:
GDALDataset *poDataset = (GDALDataset *)GDALOpen("input_file.tif", GA_ReadOnly);
if (poDataset == NULL) {
// 文件打開失敗處理
}
OGRErr err = OGRERR_NONE;
OGRErr err2 = OGRERR_NONE;
OGRSpatialReference *poSrcSRS = poDataset->GetSpatialRef();
OGRSpatialReference *poDstSRS = new OGRSpatialReference();
err2 = poDstSRS->importFromEPSG(4326); // 目標坐標系統為WGS84
if (err != OGRERR_NONE || err2 != OGRERR_NONE) {
// 獲取投影信息失敗處理
}
OGRCoordinateTransformation *poCT = OGRCreateCoordinateTransformation(poSrcSRS, poDstSRS);
if (poCT == NULL) {
// 創建坐標轉換對象失敗處理
}
double x = 100.0; // 原始點的X坐標
double y = 50.0; // 原始點的Y坐標
double z = 0.0; // 原始點的Z坐標
if (poCT->Transform(1, &x, &y, &z) == 0) {
// 坐標轉換失敗處理
}
delete poDstSRS;
GDALClose(poDataset);
OCTDestroyCoordinateTransformation(poCT);
以上就是使用C++和GDAL庫進行坐標系統轉換的基本步驟,可以根據具體需求和文件格式做相應的調整和擴展。