2016-04-29 3 views
0

Я хочу найти расстояние между двумя местоположениями с помощью API Google. Я хочу, чтобы результат выглядел так: «Расстояние между местоположением 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

Если вы знаете 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 
4

Google имеет специфический API для этого, это называется Google Maps Distance Matrix API.

Расстояние & продолжительность для нескольких направлений и видов транспорта.
Извлечь значения продолжительности и расстояния по рекомендованному маршруту между начальной и конечной точками.


Если вам просто нужно расстояние между двумя точками на земном шаре вы можете использовать Haversine formula

Смежные вопросы