经纬度计算距离与方位角

经纬度计算距离与⽅位⾓
距离
根据经纬度计算距离是有固定公式的,按照公式写个函数很简单。
import math
def cal_dis(lat1, lon1,lat2, lon2):
latitude1 = (math.pi/180)*lat1
latitude2 = (math.pi/180)*lat2
longitude1 = (math.pi/180)*lon1
longitude2= (math.pi/180)*lon2
中央一号文件2018全文
#因此AB两点的球⾯距离为:{arccos[sinb*siny+cosb*cosy*cos(a-x)]}*R
#地球半径
文章与人品
中国同学录
R = 6378.137
d = math.acos(math.sin(latitude1)*math.sin(latitude2)+ s(latitude1)*s(latitude2)*s(longitude2-longitude1))*R
return d
if__name__ == '__main__':
print cal_dis(23.0,101.1,23.06,113.34)
注意,经纬度是⾓度,⽽三⾓函数的输⼊是弧度,⾓度与弧度的关系  180=pi
有⼀次我在⼀个项⽬中发现 matlab 的计算距离和上⾯这个函数有些出⼊,虽然相差不⼤,但是确实不⼀样,当时也折腾了好久,后来发现python 有个⾃带的函数计算结果和 matlab 相同。
from geopy.distance import geodesic
丙烯腈-丁二烯-苯乙烯
geodesic((30.28708,120.12802999999997), (28.7427,115.86572000000001)).m
⽅位⾓
def calc_azimuth(lat1, lon1, lat2, lon2):
lat1_rad = lat1 * math.pi / 180
lon1_rad = lon1 * math.pi / 180
lat2_rad = lat2 * math.pi / 180
lon2_rad = lon2 * math.pi / 180
大气稳定度
y = math.sin(lon2_rad - lon1_rad) * s(lat2_rad)
三叶草成人x = s(lat1_rad) * math.sin(lat2_rad) - \
math.sin(lat1_rad) * s(lat2_rad) * s(lon2_rad - lon1_rad)
brng = math.atan2(y, x) * 180 / math.pi
return float((brng + 360.0) % 360.0)
所谓⽅位⾓是与正北⽅向、顺时针之间的夹⾓

本文发布于:2024-09-20 17:49:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/574096.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:距离   经纬度   公式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议