我想使用google API查找两个位置之间的距离。我希望输出看起来像 - “位置1和位置2之间的距离是500英里(此处的距离是示例目的)”,但是如何在当前程序显示各种输出(我无法使用)时获得所需的输出得到他想要的输出)。你们可以告诉我这样的方式,或者告诉我这样做的具体步骤是什么?
import urllib
import json
serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?'
while True:
address = raw_input('Enter location: ')
if len(address) < 1 : break
url = serviceurl + urllib.urlencode({'sensor':'false', 'address': address})
print 'Retrieving', url
uh = urllib.urlopen(url)
data = uh.read()
print 'Retrieved',len(data),'characters'
try: js = json.loads(str(data))
except: js = None
if 'status' not in js or js['status'] != 'OK':
print '==== Failure To Retrieve ===='
print data
continue
print json.dumps(js, indent=4)
lat = js["results"][0]["geometry"]["location"]["lat"]
lng = js["results"][0]["geometry"]["location"]["lng"]
print 'lat',lat,'lng',lng
location = js['results'][0]['formatted_address']
print location
答案 0 :(得分:4)
Google有一个特定的API,它被称为 Google Maps Distance Matrix API 。
距离&amp;多个目的地和运输方式的持续时间 根据推荐的路线检索持续时间和距离值 在起点和终点之间。
如果你只需要地球上两点之间的距离,你可能想要使用Haversine formula
答案 1 :(得分:0)
如果您知道lat
和lon
,请使用geopy包:
In [1]: from geopy.distance import great_circle
In [2]: newport_ri = (41.49008, -71.312796)
In [3]: cleveland_oh = (41.499498, -81.695391)
In [4]: great_circle(newport_ri, cleveland_oh).kilometers
Out[4]: 864.4567616296598