2016-04-29 26 views
0

google APIを使用して2つの場所の距離を検索したいとします。私は出力が見えるようにしたい - "場所1と場所2の間の距離は500マイルです(ここの距離は例の目的です)"しかし、現在のプログラムが様々な出力を表示しているので、どのようにして希望の出力を得ることができますか彼は希望の出力を得るために)。あなたは私に道を見せるか、それを行う正確な手順は何ですか?ジオコーディングを使用して2つの場所間の距離を取得する

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

を使用したい場合があり、地球上の2点間の距離が必要な場合:

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 
4

Googleはそのための具体的なAPIを持って、それがGoogle Maps Distance Matrix APIと呼ばれています。複数の宛先や輸送モードため

距離&期間。
開始点と終了点の間の推奨ルート に基づいて期間と距離の値を取得します。


あなたはちょうどあなたがgeopyパッケージを使用し、あなたがlatlonを知っている場合Haversine formula

関連する問題