基于proj库对GPS转换,2000坐标互转wgs84坐标

之前在忙一个小项目,好久没有更新了,确实对不住粉丝们。
废话不多说,直接干货:
从2000坐标转wgs84坐标,C++代码

void 2UTMToWGS84(double longitude, double latitude, double hight, double X, double Y, double Z)
{
	projPJ wgs84 = pj_init_plus("+proj=latlong +datum=WGS84");
	projPJ utm = pj_init_plus("+proj=utm +zone=50N +ellps=WGS84 +no_defs");


	pj_get_def(utm, 0);
	pj_transform(utm, wgs84, 1, 1, &longitude, &latitude, &hight);
	const char *strRelease = pj_get_release();
	char*strError = pj_strerrno(2);
	int iErrorNo = *pj_get_errno_ref();

	longitude /= DEG_TO_RAD;
	latitude /= DEG_TO_RAD;
	X = longitude;
	Y = latitude;
	Z = hight;
	pj_free(utm);

}

从wgs84坐标转2000坐标,C++代码

void WGS842UTM(double longitude, double latitude, double hight, double *X, double *Y, double *Z)
{
	projPJ wgs84 = pj_init_plus("+proj=latlong +datum=WGS84 +no_defs");
	projPJ utm = pj_init_plus("+proj=utm +zone=50N +ellps=WGS84");
	longitude *= DEG_TO_RAD;
	latitude *= DEG_TO_RAD;

	pj_get_def(wgs84, 0);
	pj_transform(wgs84, utm, 1, 1, &longitude, &latitude, &hight);
	const char *strRelease = pj_get_release();
	char*strError = pj_strerrno(2);
	int iErrorNo = *pj_get_errno_ref();

	*X = longitude;
	*Y = latitude;
	*Z = hight;
	pj_free(utm);
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值