Places SDK для Android поддерживает Place Details (Legacy) . Если вы знакомы с Place Details (Legacy), то Place Details (New) вносит следующие изменения:
Используется новая модель ценообразования. Информацию о ценах на все API см. в разделе Places SDK для Android (новая версия) .
Для инициализации приложения необходимо вызвать метод
Places.initializeWithNewPlacesApiEnabled(). Дополнительную информацию о выборе службы Places API см. в разделе «Настройка проекта Google Cloud» .Необходимо указать, какие поля вы хотите получить в ответе. Список возвращаемых полей по умолчанию отсутствует. Если вы его не укажете, методы вернут ошибку.
В следующих разделах описаны дополнительные изменения.
Получите доступ к новым типам мест.
Каждое место может иметь одно или несколько связанных с ним значений типа . SDK Places для Android версии 3.3.0 и более поздних версий добавляет множество новых значений типа. Полный список см. в разделе «Расширенные типы мест» .
Метод Place.getPlaceTypes() возвращает значения типов в виде списка строковых значений. Возвращаемые значения зависят от вашей версии Places SDK для Android:
Places SDK для Android (новое) : Возвращает строки, определенные таблицами A и B, показанные в разделе «Типы мест (новое)» , включая все добавленные типы мест, появившиеся в версии 3.3.0.
Places SDK для Android : Возвращает перечисления, определенные в
Place.Types, за исключением новых типов, добавленных в версии 3.3.0 и более поздних.
Отзывы о местах доступа
В состав SDK Places для Android (новая версия) добавлен класс Review , содержащий отзыв о месте. Объект Place может содержать до пяти отзывов.
Класс Review также может содержать информацию об авторстве и указание на автора. Если вы отображаете отзыв в своем приложении, то вы также должны отобразить любую информацию об авторстве или указание на автора. Для получения дополнительной информации см. раздел «Отображение отзыва» .
Для получения более подробной информации см. документацию по атрибуции .
Код языка названия места доступа
В SDK Places для Android (устаревшая версия) метод Place.getName() возвращает текстовую строку, содержащую название места. Чтобы заполнить объект Place названием места, необходимо включить Place.Field.DISPLAY_NAME в список полей запроса с подробными сведениями о месте.
Объект Place теперь содержит код языка для строки имени. Чтобы заполнить объект Place кодом языка, необходимо:
Включите поле
Place.Field.DISPLAY_NAMEв список полей запроса. Это значение настраивает ответ таким образом, чтобы в объектеPlaceсодержались как название места, так и код языка.Вызовите метод
PlacesClient.fetchPlace().PlacesClient.findCurrentPlace()не поддерживает поле кода языка.Для доступа к полю кода языка в объекте
Placeиспользуйте методPlace.getNameLanguageCode().
Установить код региона
В новом SDK для Android добавлен параметр запроса кода региона в раздел «Подробности о месте». Код региона используется для форматирования ответа и указывается в виде двухсимвольного кода CLDR . Этот параметр также может влиять на результаты поиска. Значение по умолчанию отсутствует. Для установки кода региона необходимо включить новый SDK.
Если название страны в адресном поле ответа совпадает с кодом региона, то код страны опускается в адресе.
Большинство кодов CLDR идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, национальный домен верхнего уровня Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически обозначающий «Соединенное Королевство Великобритании и Северной Ирландии»). Параметр может влиять на результаты в зависимости от применимого законодательства.
Пример запроса
Полный пример см. в разделе «Подробности о месте (новое)» .