GDAL地理與投影座標系
阿新 • • 發佈:2019-02-09
#include "ogr_p.h" int main() { int a=0; /**************定義地理座標系**************/ OGRSpatialReference oSRS; oSRS.SetGeogCS("My GCS",//設定定義的地理座標系的名字 "WGS_1984", "My WGS84 Sopheroid", SRS_WGS84_SEMIMAJOR,SRS_WGS84_INVFLATTENING, "Greenwich",0.0, "degree",0.0174532925199433); oSRS.SetWellKnownGeogCS("WGS84"); //oSRS.SetWellKnownGeogCS("EPSG:4326"); //為了方便和其他庫進行互動,OGRSpatialReference提供了與OpenGIS的WKT格式的相互轉換 //OGRSpatialReference可以使用一個WKT來進行初始化(importFromWKT()),或者將裡面的資訊匯出為WKT格式(exportToWkt) char * pszWKT=NULL; char * pszTemp=NULL; oSRS.exportToWkt(&pszWKT); oSRS.exportToWkt(&pszTemp); oSRS.importFromWkt(&pszTemp); char* pszPrettyWKT=NULL; oSRS.exportToPrettyWkt(&pszPrettyWKT); printf("普通WKT:\n%s\n\n",pszWKT); printf("漂亮WKT:\n%s\n\n",pszPrettyWKT); /**************定義投影座標系**************/ OGRSpatialReference projSRS; projSRS.SetProjCS("UTM 17(WGS84) in northern hemisphere");//設定投影座標系的名稱 projSRS.SetWellKnownGeogCS("WGS84");//定義該投影座標系所在的地理座標系 projSRS.SetUTM(17,TRUE);//設定投影座標系的投影引數資訊 //一般來說,應該先設定地理座標系,再設定投影座標系 char *pszProjWKT=NULL; char *pszProjPrettyWKT=NULL; projSRS.exportToWkt(&pszProjWKT); projSRS.exportToPrettyWkt(&pszProjPrettyWKT); printf("普通WKT:\n%s\n\n",pszProjWKT); printf("漂亮WKT:\n%s\n",pszProjPrettyWKT); /**************解析空間參考資訊**************/ /* OGRSpatialReference::IsProjected() OGRSpatialReference::IsGeographic()判斷該空間參考是地理座標系還是投影座標系 OGRSpatialReference::GetSemiMajor()獲取參考橢球的長半軸 OGRSpatialReference::GetSemiMinor()獲取參考橢球的短半軸 OGRSpatialReference::GetInvFlattening()獲取參考橢球的扁率的倒數 OGRSpatialReference::GetAttrValue()方法獲取PROJCS、GEOGCS、DATUM、SPHEROID和PROJECTION的名稱字串 OGRSpatialReference::GetProjParm()獲取投影引數資訊 OGRSpatialReference::GetLinearUnits()獲取長度單位型別並將其轉換為米 */ scanf("%d",&a); }