私はgeopyを使用していくつかのアドレスをジオコーディングしていますが、タイムアウトエラーをキャッチして印刷し、入力の品質管理を行えるようにします。ジオコードリクエストをtry/catchに入れていますが、機能しません。私が何をする必要があるかについてのアイデアはありますか?
ここに私のコードがあります:
try:
location = geolocator.geocode(my_address)
except ValueError as error_message:
print("Error: geocode failed on input %s with message %s"%(a, error_message))
次の例外が発生します。
File "/usr/local/lib/python2.7/site-packages/geopy/geocoders/base.py", line 158, in _call_geocoder
raise GeocoderTimedOut('Service timed out')
geopy.exc.GeocoderTimedOut: Service timed out
前もって感謝します!
これを試して:
from geopy.geocoders import Nominatim
from geopy.exc import GeocoderTimedOut
my_address = '1600 Pennsylvania Avenue NW Washington, DC 20500'
geolocator = Nominatim()
try:
location = geolocator.geocode(my_address)
print(location.latitude, location.longitude)
except GeocoderTimedOut as e:
print("Error: geocode failed on input %s with message %s"%(my_address, e.message))
また、ジオロケーターに対して行っているジオコード呼び出しのタイムアウトを増やすことも検討できます。私の例では、次のようになります。
location = geolocator.geocode(my_address, timeout=10)
または
location = geolocator.geocode(my_address, timeout=None)