经纬度计算距离
Posted yanshw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经纬度计算距离相关的知识,希望对你有一定的参考价值。
根据经纬度计算距离是有固定公式的,按照公式写个函数很简单。
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 #因此AB两点的球面距离为:arccos[sinb*siny+cosb*cosy*cos(a-x)]*R #地球半径 R = 6378.137 d = math.acos(math.sin(latitude1)*math.sin(latitude2)+ math.cos(latitude1)*math.cos(latitude2)*math.cos(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
以上是关于经纬度计算距离的主要内容,如果未能解决你的问题,请参考以下文章