Google Maps Places API — мощный инструмент, позволяющий разработчикам получать доступ к подробной информации о местах по всему миру. В этом руководстве мы покажем вам процесс использования нового API Google Maps Places на Python: от настройки проекта Google Cloud до выполнения запросов API и обработки ответов.
Что такое API Google Maps Places?
Карты Google имеют две версии API Адресов:
- Устаревший API – Позволяет подключаться с помощью простого ключа API.
- API нового поколения – Для аутентификации требуется OAuth 2.0 и предоставляет более расширенные функции.
Настройка вашего проекта Google Cloud
- Перейдите в Google Cloud Console.: Идти к Облачная консоль Google.
- Создать проект: Если у вас нет проекта, создайте его, щелкнув раскрывающееся меню и выбрав «Новый проект».
- Включить API и службы: перейдите в раздел «API и сервисы» > «Панель управления» и включите API Places.
- Настройте OAuth 2.0: перейдите в раздел API и службы > Экран согласия OAuth, настройте экран согласия и создайте учетные данные OAuth 2.0.
Аутентификация с помощью OAuth 2.0
- Создать идентификатор клиента OAuth: выберите «Приложение для ПК» в качестве типа приложения и загрузите секретный файл клиента.
- Установите необходимые библиотеки: используйте pip для установки клиентской библиотеки Google Python и пакета Python dotenv.
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client python-dotenv
Выполнение запросов API
Инициализация API-клиента
Создайте скрипт Python (например, maps_textsearch.py
) и инициализируйте клиент API, используя загруженные учетные данные.
from google.oauth2 import service_account
from googleapiclient.discovery import build
import json
def create_service(client_secret_file, api_name, api_version, scopes):
credentials = service_account.Credentials.from_service_account_file(client_secret_file, scopes=scopes)
return build(api_name, api_version, credentials=credentials)
CLIENT_SECRET_FILE = 'path/to/client_secret.json'
API_SERVICE_NAME = 'places'
API_VERSION = 'v1'
SCOPES = ['https://www.googleapis.com/auth/maps']
service = create_service(CLIENT_SECRET_FILE, API_SERVICE_NAME, API_VERSION, SCOPES)
Пример: текстовый поиск
Определить параметры поиска: Создайте запрос для поиска определенных мест.
query = 'ramen places in New York'
response = service.places().textSearch(query=query).execute()
print(json.dumps(response, indent=4))
Обработать ответ: Извлечение и отображение соответствующей информации.
for place in response['results']:
print(place['name'], place['formatted_address'])
Пример: сведения о месте
Получить информацию о месте: получение подробной информации о конкретном месте по его идентификатору.
place_id = 'ChIJN1t_tDeuEmsRUsoyG83frY4'
response = service.places().get(place_id=place_id).execute()
print(json.dumps(response, indent=4))
Отображение деталей: Извлечение и печать таких сведений, как отзывы, часы работы и т. д.
print('Name:', response['name'])
print('Address:', response['formatted_address'])
print('Phone:', response['formatted_phone_number'])
Цены и квоты
Google предлагает бесплатный кредит в размере $200 в месяц для всех продуктов Карт. Контролируйте использование, чтобы избежать непредвиденных расходов.
Заключение
Выполнив эти шаги, вы сможете успешно интегрировать API Google Maps Places в свои приложения Python, предоставляя обширные данные о местах для повышения удобства работы пользователей.
Таблица: Ключевые моменты
Шаг | Описание |
---|---|
Настройка проекта | Создайте проект в Google Cloud Console, включите Places API и настройте учетные данные OAuth 2.0. |
Аутентификация | Используйте OAuth 2.0 для аутентификации запросов API. |
API-запросы | Делайте запросы API, используя клиентскую библиотеку Python. |
Обработка ответов | Извлекайте и отображайте соответствующую информацию из ответов API. |
Цены | Воспользуйтесь бесплатным кредитом $200, предоставленным Google Maps. |
Пример фрагмента кода
from google.oauth2 import service_account
from googleapiclient.discovery import build
def create_service(client_secret_file, api_name, api_version, scopes):
credentials = service_account.Credentials.from_service_account_file(client_secret_file, scopes=scopes)
return build(api_name, api_version, credentials=credentials)
CLIENT_SECRET_FILE = 'path/to/client_secret.json'
API_SERVICE_NAME = 'places'
API_VERSION = 'v1'
SCOPES = ['https://www.googleapis.com/auth/maps']
service = create_service(CLIENT_SECRET_FILE, API_SERVICE_NAME, API_VERSION, SCOPES)
query = 'ramen places in New York'
response = service.places().textSearch(query=query).execute()
print(json.dumps(response, indent=4))
for place in response['results']:
print(place['name'], place['formatted_address'])
Следуя этому руководству, вы сможете легко начать работу с API Google Maps Places и разблокировать множество данных о местоположении для своих приложений. Наслаждайтесь исследованием мира Google Maps!
Комментарии (0)
Здесь пока нет комментариев, вы можете быть первым!