python获取AB直线间任意一点经纬度

获取AB直线间任意一点经纬度

1、目标

已知A点经纬度,距离;B点经纬度,距离,如果C点在AB之间,且知道C点距离,求C点的经纬度信息。

目标:在AB这条直线上,根据给定的距离(从A点开始沿直线到某点的距离)来求该点的经纬度。
在这里插入图片描述

2、方法

首先计算AB的总长度(大圆距离),然后根据比例(距离/总长度)在球面上进行插值。

3、流程

1. 计算A到B的大圆路径(即球面上的直线)。

2. 计算大圆路径的总角距离(以弧度表示)。

3. 根据给定的距离(沿大圆路径的长度),计算该距离对应的角距离(弧度)。

4. 使用球面线性插值(Slerp)计算该角距离处点的笛卡尔坐标,再转换为经纬度。

步骤:

设地球为球体,半径为R(通常取6371千米,注意单位转换:1000米=1千米)。

具体步骤:

a) 将A、B的经纬度转换为笛卡尔坐标(单位球)。

b) 计算A、B两点间的角距离θ(通过点积和反余弦函数)。

c) 总距离d_total = R * θ(千米)。

d) 对于给定距离d(米),先转换为千米,然后计算对应的角距离:α = d / R(弧度)。

注意:这里d是从A点出发的距离,所以α就是沿大圆路径从A点出发的角距离。

e) 使用球面线性插值公式:

P = (A 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东木月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值