4

geopy を使用して、経度と緯度に基づいて 2 つの住所間の距離を計算すると、個々のデータ ペアで正常に機能します。しかし、より多くのデータがある場合、常に次のエラーが表示されます。

ファイル "/Library/Python/2.7/site-packages/geopy/geocoders/osm.py"、193 行目、ジオコードの self._call_geocoder(url, timeout=timeout), exact_one ファイル "/Library/Python/2.7/site- packages/geopy/geocoders/base.py", line 171, in _call_geocoder raise GeocoderServiceError(message) geopy.exc.GeocoderServiceError: urlopen エラー [Errno 65] ホストへのルートがありません

どうすればこの問題を回避できるか知っていますか?

私のコードは単純です: (このためのデータ入力には多くのデータのペアがあります)

from geopy.geocoders import Nominatim
from geopy.distance import vincenty

def calculate_distance(add1, add2):
    geolocator = Nominatim()

    location1 = geolocator.geocode(add1)
    al1 = (location1.latitude, location1.longitude)

    location2 = geolocator.geocode(add2)
    al2 = (location2.latitude, location2.longitude)

    distce = vincenty(al1, al2).miles
    return distce
4

2 に答える 2

0

上記の Google マップ API は 2016 年に機能しましたが、今日 (2017-08-30) 使用しようとすると、座標を介して場所を返すことができなくなりました。しかし!ここでかなり良いものを見つけましたが、今ではうまく機能し、必要なコード行もはるかに少なくなりました。https://chrisalbon.com/python/geocoding_and_reverse_geocoding.html

于 2017-08-31T03:14:38.987 に答える