Python 使用地理编码获取两个位置之间的距离
我想用谷歌API找到两个位置之间的距离。我希望输出看起来像-“位置1和位置2之间的距离是500英里(此处的距离是示例目的)”,但是当当前程序显示各种输出时,我如何获得所需的输出(我无法使用这些输出来获得所需的输出)。你们能告诉我怎么做吗?或者告诉我做这件事的具体步骤是什么Python 使用地理编码获取两个位置之间的距离,python,python-2.7,google-api,google-geocoding-api,Python,Python 2.7,Google Api,Google Geocoding Api,我想用谷歌API找到两个位置之间的距离。我希望输出看起来像-“位置1和位置2之间的距离是500英里(此处的距离是示例目的)”,但是当当前程序显示各种输出时,我如何获得所需的输出(我无法使用这些输出来获得所需的输出)。你们能告诉我怎么做吗?或者告诉我做这件事的具体步骤是什么 import urllib import json serviceurl = 'http://maps.googleapis.com/maps/api/geocode/json?' while Tru
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
导入urllib
导入json
serviceurl=http://maps.googleapis.com/maps/api/geocode/json?'
尽管如此:
地址=原始输入('输入位置:')
如果len(地址)<1:中断
url=serviceurl+urllib.urlencode({'sensor':'false','address':address})
打印“正在检索”,url
uh=urllib.urlopen(url)
data=uh.read()
打印“已检索”,len(数据),“字符”
try:js=json.loads(str(data))
除外:js=None
如果“状态”不在js或js[“状态”]!='好的:
打印“===检索失败===”
打印数据
持续
打印json.dumps(js,缩进=4)
lat=js[“结果”][0][“几何体”][“位置”][“lat”]
lng=js[“结果”][0][“几何体”][“位置”][“lng”]
打印“lat”,lat,“lng”,lng
location=js['results'][0]['formatted_address']
打印位置
谷歌有一个专门的api,叫做
多个目的地和运输模式的距离和持续时间根据推荐路线检索持续时间和距离值 在起点和终点之间
如果你只需要地球上两点之间的距离,你可能需要使用谷歌有一个专门的api,它叫做 多个目的地和运输模式的距离和持续时间
根据推荐路线检索持续时间和距离值 在起点和终点之间
如果您只需要地球仪上两点之间的距离,您可能需要使用如果您知道
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
如果您知道
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