GDAL地理与投影坐标系
#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);
}
转载自:https://blog.csdn.net/u010771437/article/details/46780281