用于英国邮政编码之间距离的Python模块

时间:2012-04-10 10:10:07

标签: python postal-code

我需要计算英国邮政编码之间的距离。 我不想使用网络API。 是否存在python模块/库? 或者我是否必须使用OrdnanceSurvey中的数据汇总我自己的内容?

谢谢,

4 个答案:

答案 0 :(得分:1)

1 /您可以使用任何其他地理位置api,例如谷歌地图,这将根据密码为您提供准确的距离。

2 /您可以使用任何包含邮政编码和纬度/经度信息的更新数据库,并使用该信息计算两点之间的距离。

有用的链接:

i)http://blog.acmultimedia.co.uk/2008/03/uk-post-code-distance-calculator-using-phpmysql/

ii)Django - how can I find the distance between two locations?

答案 1 :(得分:1)

我不知道一个可直接使用的模块,但您可以使用GRASSQGIS,它们都支持python脚本,因此该功能可以用作python模块。你仍然需要弄清楚如何在这些工具中手动完成,但这并不是非常困难。

答案 2 :(得分:0)

请参阅下文,了解使用postcodes module for python和google maps distance matrix API的简单代码。

from postcodes import PostCoder
import requests
import json
import pprint

pc = PostCoder()
origin_postcode = str.upper(raw_input("Enter origin PostCode:"))
dest_postcode = str.upper(raw_input("Enter destination PostCode:"))

origin = str(pc.get('%s' % origin_postcode)['geo']['lat'])+','+str(pc.get('%s' % origin_postcode)['geo']['lng'])
dest = str(pc.get('%s' % dest_postcode)['geo']['lat'])+','+str(pc.get('%s' % dest_postcode)['geo']['lng'])

data = requests.get('https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=%s&destinations=%s&key=AIzaSyDfTip2PrdaRkF1muCLP8REAk3FsLjmBrU' % (origin, dest))
new = json.loads(data.text)

miles = str(new['rows'][0]['elements'][0]['distance']['text']).replace('mi','miles')
duration = str((new['rows'][0]['elements'][0]['duration']['text']))

print '\n\nThe distance from %s to %s is %s, taking approximately %s (driving).' % (origin_postcode, dest_postcode, miles, duration)

答案 3 :(得分:0)

这个问题现在有点老了,但也许值得指出Google和SatNavs使用的极坐标(长/纬度)与军械调查提供的Eastings&Northings之间的差异,这表明给定的邮政编码质心与给定基准点到锡利群岛西南部某处。

如果您只想计算距离,那么使用毕达哥拉斯就可以实现单线。 EG巨石阵到国会大厦

>>> # Coordinates of Stonehenge and Westminster in E/Northings
... s = (412183, 142346)
... p = (530268, 179545)
... d = ((s[0] - p[0]) ** 2 + (s[1] - p[1]) ** 2) ** 0.5
... print (d)
123805.62517914927

我一直在寻找一个将极坐标转换为笛卡尔坐标的库,即使在一个完美的球体上(世界上肯定不是),这也比较棘手。我目前正在尝试,但大部分都以失败告终: https://scipython.com/book/chapter-2-the-core-python-language-i/additional-problems/converting-between-an-os-grid-reference-and-longitudelatitude/