需求:一个表单中需要确认下两个定位点直线距离是否符合要求(如:不超过300m 超过则提示)
测试角度:需要对比两个定位点的距离 经纬度+三角形勾股定理
下方是网上找到的信息==增加补全以及对一些方法的优化
import math
EARTH_REDIUS = 6378.137
lat1 = float(input("请输入经度1:"))
lng1 = float(input("请输入纬度1:"))
lat2 = float(input("请输入经度2:"))
lng2 = float(input("请输入纬度2:"))
# lat1 = 120.0756
# lat2 = 120.075432
# lng1 = 30.293411
# lng2 = 30.293884
def rad(d):
return d * math.pi / 180.0
def getDistance(lat1, lng1, lat2, lng2):
radLat1 = rad(lat1)
radLat2 = rad(lat2)
a = radLat1 - radLat2
b = rad(lng1) - rad(lng2)
s = 2 * math.asin(math.sqrt(math.pow(math.sin(a / 2), 2) + math.cos(radLat1) * math.cos(radLat2) * math.pow(math.sin(b / 2), 2)))
s = s * EARTH_REDIUS
return s
print(getDistance(lat1, lng1, lat2, lng2))
避免忘记-小记录 来自-大雅