我有一个包含开始和结束邮政编码(英国相当于美国邮政编码)的 csv 文件,我想计算两者之间的简单距离、道路行驶距离和行驶时间。我想要走的路是以一种或另一种方式使用谷歌地图。我首先尝试使用一些电子表格和以下网址 http://maps.google.com/maps?saddr= “&B2&”&daddr=“&A2&” 但是
- 我不知道如何从谷歌地图中检索结果距离
- 我想知道一些更多的 pythonic 方法来解决这个问题
原文由 famargar 发布,翻译遵循 CC BY-SA 4.0 许可协议
查找 2 个邮政编码之间的距离的主要问题是它们不是为此而设计的。
邮政编码本身不提供有用的信息,因此您是对的,您需要外部资源的帮助。 http://maps.google.com 上的 Google 地图服务没有用,因为它不是为您检索此类信息而设计的。
选项 1 - Google 地图 API
Google Maps API 功能丰富,将为您提供多种选择。上面的链接指向 Distance Matrix API,这将有助于计算两点之间的距离。结果将基于行程(即行驶距离),这可能是您想要的,也可能不是。
例子
蟒蛇3
选项 2 - 使用 postcodes.io 自己动手
postcodes.io 有一个很好的 API,由公共数据集支持。 示例查找。结果在 JSON 中,可以使用 json 模块将其映射到 Python 字典。这里的缺点是它无法提供检查距离的方法,因此您必须使用返回的经度和纬度自行完成。
例子
蟒蛇3
计算距离
我不想过多地讨论这个问题,因为它是一个很大的话题,并且根据您要实现的目标而有很大差异,但是一个好的起点是 Haversine Formula ,它考虑了地球的曲率。然而,它假设地球是一个完美的球体(事实并非如此)。
这是一个用 Python 实现的示例: https ://stackoverflow.com/a/4913653/7220776