当我使用 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",第 171 行,在 _call_geocoder 中引发 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