地球上一个点(经纬度),求其周围360度,距离1米的采样点的经纬度坐标(每10度采一个点,共36个点)

这篇博客介绍了一个结构体`pointInEarth`,用于存储经纬度和高程信息。然后提供了一个函数`surroundPoints`,计算给定点周围360度、每隔10度的36个点,每个点距离原始点1米。通过计算经度和纬度的步长,结合三角函数确定新的经纬度坐标,并利用osgEarth获取每个点的高程。最后,博主邀请读者查找可能的错误并提出建议。
摘要由CSDN通过智能技术生成
struct pointInEarth
{
	double lon;//经度
	double lat;//纬度
	double height;//高程
};

void surroundPoints(double longtitude, double latitude)
{
	pointInEarth points[36];//结果在这里
	double dis = 0.001;//两点之间的距离设为1米。单位是千米,即0.001千米=1米
	double lonStep = dis / (111 * cos(latitude));//1米对应的经度步长,单位是度
	double latStep = dis / 111;//1米对应的纬度步长,单位是度
	for (int i = 0; i < 36; i++)//36个点
	{
		double angle = i * 10;//10度间隔
		double lon = 0.0, lat = 0.0;
		if (angle >= 0 && angle < 90)
		{
			lon = longtitude + lonStep *sin(angle*ONEANGLE);
			lat = latitude + latStep *cos(angle*ONEANGLE);
		}
		else if (angle >= 90 && angle < 180)
		{
			lon = longtitude - lonStep *sin(angle*ONEANGLE);
			lat = latitude + latStep *cos(angle*ONEANGLE);
		}
		else if (angle >= 180 && angle < 270)
		{
			lon = longtitude - lonStep *sin(angle*ON
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值