как я могу преобразовать адрес в географические координаты

#python-3.x #api #geolocation #geocoding #google-geocoding-api

#python-3.x #API #геолокация #геокодирование #google-геокодирование-api

Вопрос:

ребята

Я пытаюсь написать код, который преобразует адрес в географические координаты.

Ниже приведен код, который я пытаюсь использовать.

проблема в том, что код не возвращает никаких географических координат, вместо этого он выдает ошибку

    File "C:Usersuser.spyder-py3untitled2.py", line 17, in <module>
    my_geo = results[0]['geometry']['location']

   IndexError: list index out of range
 

После поиска причины ошибки я обнаружил, что строка:

 results=geocode_site.json()['results']
 

возвращает пустой список.

Когда я пытаюсь запустить:

 print(geocode_site.json)
 

Это дает мне следующую ошибку:

 {'error_message': 'You must use an API key to authenticate each request to Google Maps Platform APIs. 
For additional information, please refer to http://g.co/dev/maps-no-account', 'results': [], 
'status': 'REQUEST_DENIED'}
 

Я добрый или новичок во всем этом. Эти ошибки меня расстраивают.
кто-нибудь может мне помочь?

Я буду очень благодарен. Спасибо.

Комментарии:

1. Суть вашей проблемы заключается в «REQUEST_DENIED «. » Вы должны использовать ключ API для аутентификации каждого запроса к API платформы Google Maps.. Вы изучили содержимое Для получения дополнительной информации, пожалуйста, обратитесь к g.co/dev/maps-no-account ?

Ответ №1:

Для каждого запроса API Карт Google требуется ключ API. И этот ключ API должен принадлежать проекту, который должен быть связан с открытой учетной записью для выставления счетов. Смотрите Здесь о том, как создать новый проект, и здесь о том, как создать новую учетную запись для выставления счетов.

Хотя вы не предоставили много подробностей о том, как вы делаете запрос, вы, похоже, используете сторонний модуль для реализации геокодирования на стороне клиента. Сначала я бы посоветовал вам ознакомиться с его документацией, чтобы найти, куда добавить необходимый ключ API в ваш код. Если после вашего тщательного исследования окажется, что это невозможно сделать, то лучше всего найти что-то другое.

Наиболее рекомендуемый способ — вместо этого сделать веб-запрос на геокодирование на стороне сервера. Вы можете узнать больше об этом здесь.

Но если вам действительно нужно выполнять запросы геокодирования на стороне клиента, то лучше всего взглянуть на клиентские библиотеки для веб-сервисов Google Maps. Вы можете попробовать следовать их руководству по Python там, Python Client для сервисов Google Maps. Но обратите внимание, что, несмотря на то, что это руководство есть на их официальном веб-сайте, они это не поддерживают. Поскольку клиенты не смогут таким образом ограничить свои ключи API и оставят эти ключи уязвимыми для возможного злоупотребления и неправильного использования в случае компрометации. В их документации упоминается , что:

  • На эти библиотеки не распространяется стандартная политика устаревания Google или соглашение о поддержке.

Чтобы узнать больше о том, как правильно ограничить ключ API, см.: https://developers.google.com/maps/api-key-best-practices?hl=en