DevGang
Авторизоваться

Python: делаем запросы в Google Geocoding API 

В этом коротком руководстве мы покажем вам, как выполнять вызовы API для API геолокации Google. Цель состоит в том, чтобы иметь возможность быстро и легко получать данные адреса, почтового индекса или просто города с помощью API, который является важной частью Google Maps.

Чем больше мы используем сторонних API, тем лучше могут быть наши сервисы. API геолокации может очистить наши адресные данные без особых усилий.

Установка

Мы собираемся использовать Python requests, чтобы сделать наши вызовы API намного проще.

pip install requests

Google Geocoding API

Помните, что у API Google есть несколько бесплатных запросов, но после определенного момента они начинают взимать с вас плату.

  1. Зарегистрируйтесь в Google Cloud Compute (GCP)
  2. Войдите в консоль .
  3. Зайдите в API Geocoding, нажмите здесь «Включить». Если эта ссылка не работает, выполните поиск API Geocoding , откройте его и нажмите «Включить»

Возможно, вам придется создать проект и выполнить несколько других настроек, чтобы добраться до точки, где вы можете активировать API Geocoding

Получите свои учетные данные Google Cloud API:

  • Выполните поиск «Credentials» в GCP
  • Нажмите «Create Credentials» > «API Key»
  • Скопируйте значение ключа, мое было AIzaSyBSXMpu6lqd8kViIpy1GNWQ1symTXdMRzw это ваш ключ API Google Cloud.

Ключи API Google Cloud Compute имеют неограниченные привилегии, поэтому настоятельно рекомендуется ограничить ключ API как API Geocoding, так и локальным IP-адресом.

Код

Ниже мы собираемся извлечь широту и долготу из любого заданного адреса, почтового индекса или города. Это действительно просто и легко.

GOOGLE_API_KEY = 'your_api_key_from_above'

def extract_lat_long_via_address(address_or_zipcode):
   lat, lng = None, None
   api_key = GOOGLE_API_KEY
   base_url = "https://maps.googleapis.com/maps/api/geocode/json"
   endpoint = f"{base_url}?address={address_or_zipcode}&key={api_key}"
   # Посмотрите, как наша конечная точка включает наш ключ API? Да, это еще одна причина, чтобы ограничить ключ
   r = requests.get(endpoint)
   if r.status_code not in range(200, 299):
       return None, None
   try:
       '''
       Этот блок try в случае, если любой из наших входов недействителен. 
       Это делается вместо того, чтобы на самом деле писать обработчики для всех видов ответов.
       '''
       results = r.json()['results'][0]
       lat = results['geometry']['location']['lat']
       lng = results['geometry']['location']['lng']
   except:
       pass
   return lat, lng
#Python
Комментарии 1

Подскажите, а как получить адрес по координатам?

Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу