【发布时间】:2015-12-14 08:54:12
【问题描述】:
我想在 Python 中找到距给定纬度和经度 500 米范围内的用户位置。
给定纬度和经度 = 19.114315,72.911174
我想检查新的经纬度是否在给定经纬度 500 米的范围内..
新的经纬度 = 19.112398,72.912743
我在python中使用这个公式..
math.acos(math.sin(19.114315) * math.sin(19.112398) + math.cos(19.114315) * math.cos(19.112398) * math.cos(72.912743 - (72.911174))) * 6371 <= 0.500
但它没有给我预期的结果..我错过了什么吗? 请帮忙..
【问题讨论】:
-
嗯,
math.sin()和math.cos()想要 弧度,而不是 度。 -
可以在python中转成弧度吗?
-
是的,你可以在 python 中进行乘法运算。如果你将一个数乘以度数,用 ~
0.0174532925得到它的弧度.. (2*PI / 360) -
@user2927983 查看this question 接受的答案。基本上,使用
math.radians(degrees)。 -
不是一个真正的答案,但我发现使用 python
haversine模块非常简单和准确:from haversine import haversine; distance_km = haversine((lat_a, lng_a), (lat_b, lng_b))..pip install haversine一如既往;)