geopy не возвращает правильные координаты для канадских почтовых индексов - PullRequest
1 голос
/ 21 октября 2019

Я пытаюсь преобразовать канадские почтовые коды в лат, длинные координаты, однако geopy возвращает их как ноль или где-то в другой стране

postal_code = "A1B 2C3" #<-- in this format
location = geolocator.geocode(postal_code)

print(location.latitude, location.longitude)

Вывод AttributeError: 'NoneType' object has no attribute 'latitude' ИЛИ какой-нибудь случайный адрес

1 Ответ

1 голос
/ 21 октября 2019

Я думаю, что проблема здесь в том, что либо API, который вы используете для geopy, не поддерживает почтовый индекс CA, либо вы не установили «CA» в качестве опции страны. Поэтому, когда геокод не может извлечь информацию из ввода, он возвращает None.

Для достижения той же цели я бы предпочел использовать библиотеку pgeocode.

import pgeocode
nomi = pgeocode.Nominatim('ca')
postal_code = "A1B C14"
location = nomi.query_postal_code(postal_code)
print(location.latitude, location.longitude)
47.5698 -52.7796
...