来自纬度和经度坐标的半径

时间:2016-02-18 18:18:04

标签: python google-maps math geometry

我在Python(3)中这样做,但这可能是一个更普遍的问题。

基本上我想要实现的是获取周围邮政编码的列表,在某个邮政编码旁边,范围是动态的。所以在20英里范围内的邮政编码90210周围有什么邮政编码。我需要查询SQL DB以获取结果。

所以我需要计算2个lat,lang点,它们会创建一个矩形搜索区域(是的,它不完全准确,因为它不是圆形的,但这不是什么大问题),所以像这样:

P1 (lat, long) -------------------------+
|                                       |
|                                       |
|                                       |
|          Original (lat, long)         |
|                                       |
|                                       |
|                                       |
-------------------------- P2 (lat, long)
"radius" given = 30 miles 

所以我们所有的输入都是lat,long,radius,需要计算P1和P2。由于我的数学很好,在高中时,我会喜欢这方面的帮助。还需要考虑这是在Miles中,无论Lat的公式如何,Long都是Miles(不是KM)

1 个答案:

答案 0 :(得分:1)

在Google地球上进行一些研究并在整个美国标记点(我假设美国,因为你参考邮政编码)我可以估计平均1°纬度相当于68.97英里或70英里和1°经度相当于55.77英里或56英里。

因此,对于30平方英里(注意:不是半径),您需要搜索+/- 0.43°或26'纬度和+/- 0.54°或32'经度。

所以要完成你的答案:

P1 = Origin + 0°26'N, Origin + 0°32'W
P2 = Origin - 0°26'N, Origin - 0°32'W

请注意这些是近似值,但应在美国各地给出令人满意的结果。