Выберите версию SDK

Places SDK для Android версии 3.4.0 поддерживает две версии SDK: Places SDK для Android — это существующий SDK, а Places SDK для Android (новый) — это версия SDK следующего поколения.

С выпуском Places SDK для Android версии 3.4.0 ваша первая задача — решить, какой SDK использовать. Это верно, если вы новый клиент или существующий клиент, уже использующий SDK. Используйте это руководство, чтобы понять ключевые различия между двумя SDK.

Как выбрать версию SDK

На серверной стороне Places SDK для Android использует службу Places API: Places API (новый) или Places API. Прежде чем вы сможете использовать Places SDK для Android, вам необходимо включить службу Places API в своем проекте Google Cloud.

В Android необходимо выполнить два действия, чтобы определить, какие API-интерфейсы можно использовать в своем приложении:

  1. В вашем проекте вы должны включить Places API (новый), Places API или оба в вашем ключе API, в зависимости от того, что вы собираетесь использовать в своем приложении.

  2. Инициализируйте свое приложение, вызвав метод Places.initializeWithNewPlacesApiEnabled() или Places.initialize() .

Выберите свой SDK

Версия службы Places API, которую вы включаете, определяет версию SDK, используемую вашим приложением:

  • Оба : включают все функции как для Places SDK для Android, так и для Places SDK для Android (новая версия) . Используйте методы Places.initializeWithNewPlacesApiEnabled() и Places.initialize() для управления доступными функциями.

  • API Places : включает существующий SDK Places для Android . У вас нет доступа к новым функциям, добавленным в Places SDK для Android версии 3.4.0.

  • API Places (новое) : включает Places SDK для Android (новое) и все новые функции, описанные в разделе «Основные функции, добавленные в Places SDK для Android (новое), но не включает существующие функции, такие как текущее место и автозаполнение мест».

Дополнительную информацию о выборе службы Places API см. в разделе Настройка проекта Google Cloud .

Инициализируйте свое приложение

При инициализации приложения необходимо вызвать либо метод Places.initializeWithNewPlacesApiEnabled() , либо метод Places.initialize() .

В следующей таблице показаны последствия включения каждого пакета SDK и вызова каждого метода инициализации. Например, если вы включите Places SDK (New) и вызовете Places.initializeWithNewPlacesApiEnabled() , вы сможете использовать все новые API и все существующие API.

Если вы включите Places SDK (New) и вызовете Places.initialize() , вы не сможете использовать новые функции Place Details и Place Photos, но сможете вызвать новый текстовый поиск. Если вы не включите Places API, вы не сможете получить доступ к старой версии Place Details, но вы все равно сможете вызвать новый текстовый поиск.

Версия API SDK включен по ключу API Метод инициализации
API мест API мест (новое) initialize() initializeWithNewPlacesApiEnabled()
v3.3.0 Детали мест
Подробности о местах (новое)
Метаданные фотографий (новое)
Текстовый поиск (новинка) Любой метод
v3.4.0 Фото Ури (новое)
Растровое изображение фотографии Любой метод
Текущее место Любой метод
Автозаполнение Любой метод

Какой SDK вы выберете?

Чтобы помочь решить, какую версию выбрать:

  1. Если вы новый клиент и только начинаете работать с Places SDK для Android, начните с Places API (нового) и нового SDK .

  2. Если вы разработчик Kotlin , вы можете использовать любой SDK, но новые функции Places SDK для Android (новинка) доступны только на Java в версии 3.4.0.

  3. Если вы уже являетесь клиентом и используете токены сеанса, продолжайте использовать существующий SDK. Places SDK для Android (новинка) в настоящее время не поддерживает токены сеанса.

  4. Если вы уже являетесь клиентом , вы можете продолжать использовать существующий SDK. Однако, чтобы воспользоваться преимуществами повышения производительности и расширенными функциями Places SDK для Android (новая версия), вы можете использовать новый SDK.

    При переходе на новый SDK миграция не требуется. Вам нужно только:

    1. Включите Places API (новый) для ключа API, используемого в вашем приложении. Дополнительную информацию см. в разделе Использование ключей API .
    2. В разделе dependencies вашего файла build.gradle на уровне модуля обновите зависимость places и добавьте зависимость kotlin-bom :

        dependencies {
            implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
            implementation 'com.google.android.libraries.places:places:3.3.0'
        }

      Дополнительную информацию о зависимости kotlin-bom см. в разделе Использование последней версии kotlin-stdlib в транзитивных зависимостях .

    3. Обновите существующее приложение, чтобы вызвать новый метод Places.initializeWithNewPlacesApiEnabled() для инициализации вашего приложения. Дополнительную информацию см. в разделе Инициализация клиента Places API .

    Ваши существующие приложения продолжат работать без изменений, но теперь вы можете воспользоваться всеми новыми функциями SDK.

Ключевые функции, добавленные в Places SDK для Android (новинка)

В этом разделе описаны ключевые функции, добавленные в Places SDK для Android (новинка).

Реализовано на стандартной платформе Google Cloud.

Places SDK для Android (новинка) реализован в инфраструктуре сервиса Google Cloud. Эта реализация обеспечивает более безопасную и надежную платформу. Этот стандартный дизайн обеспечивает уровень согласованности между SDK, что повышает эффективность разработки с помощью Places SDK для Android (новая версия).

Улучшенная производительность

Places SDK для Android (новый) обеспечивает повышенную производительность, поэтому стоит заменить приложения, использующие существующий SDK.

Новый сервис текстового поиска

Текстовый поиск возвращает информацию о наборе мест на основе строки — например, «пицца в Нью-Йорке», «обувные магазины недалеко от Оттавы» или «Мейн-стрит, 123». Служба отвечает списком мест, соответствующих текстовой строке, и любым установленным смещениям местоположения.

В раздел «Сведения о размещении» и «Фотографии места» добавлены новые данные ответов.

  • Сведения о месте теперь включают новый класс Review в объект ответа Place . Класс Place содержит новый метод getReviews() для поддержки этого поля. Вызовите getReviews() , чтобы получить до пяти отзывов о месте.

  • Place Photo добавляет AuthorAttributions в класс PhotoMetadata . AuthorAttributions содержит List объектов AuthorAttribution .

Добавлен новый ответ URI в Place Photos

Теперь вы можете использовать Place Photos для возврата URI к растровому изображению. Раньше можно было вернуть только растровое изображение.

Упрощенное ценообразование

Благодаря Places SDK для Android (новая версия) ценообразование упрощается, поэтому вы платите только за те данные, которые используете. Упрощенное ценообразование реализуется с помощью списков полей, также называемых масками полей .

При использовании сведений о месте и текстового поиска вы используете списки полей для управления списком полей, возвращаемых в ответе. В этом случае вам будет выставлен счет только за запрошенные данные. Использование списка полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать ненужного времени обработки и затрат на выставление счетов.

Подробную информацию о ценах на оба SDK см. в разделе «Использование и выставление счетов» .

Расширенные типы мест

Новый SDK добавляет типы мест, показанные в следующей таблице. Эти типы возвращаются как часть ответа о месте и текстовом поиске. Вы также можете использовать эти новые и существующие типы при поиске с помощью текстового поиска. Новые типы включены в Таблицу А.

Тип
американский_ресторан скидка_магазин магазин мороженого сэндвич_магазин
центр развлечений собака_парк индийский_ресторан школьный округ
спортивная площадка electric_vehicle_charging_station индонезийский_ресторан ресторан морепродуктов
auto_parts_store событие_место проведения Итальянский ресторан лыжный курорт
банкетный зал расширенный_отель_отель Японский ресторан испанский_ресторан
барбекю_ресторан ферма корейский_ресторан магазин спортивных товаров
парикмахерская проживание на ферме lebanese_restaurant спортивный клуб
кровать и завтрак Ресторан быстрого питания Марина спортивный комплекс
бразильский_ресторан паромный терминал рынок стейк-хаус
завтрак_ресторан фитнес-центр медицинская_лаборатория суши_ресторан
бранч_ресторан французский ресторан средиземноморский_ресторан бассейн
автобусная остановка магазин подарков мексиканский ресторан портной
кемпинг_кабина поле для гольфа middle_eastern_restaurant поставщик_телекоммуникационных_услуг
cell_phone_store греческий_ресторан мотель тайский_ресторан
child_care_agency продуктовый магазин Национальный парк транзит_депо
Китайский ресторан гостевой дом park_and_ride грузовик_стоп
кофейный магазин парикмахерская театр_исполнительского_искусства турецкий_ресторан
общественный центр гамбургер_ресторан пицца_ресторан веганский_ресторан
консультант вертолетная площадка детская площадка вегетарианский_ресторан
конференц-центр зона походов дошкольный вьетнамский_ресторан
коттедж исторический_ориентир Private_guest_room посетитель_центр
курьерская служба home_improvement_store рамэн_ресторан место свадьбы
Центр культуры общежитие курортный отель оптовик
Стоматологическая клиника Гостиница привал
Наряду с этими новыми типами Places API (новый) переместил следующие типы из таблицы B из таблицы A. Это означает, что теперь вы можете использовать эти типы как часть поиска:
  • country
  • administrative_area_level_1
  • administrative_area_level_2
  • postal_code
  • locality