Вы можете запросить дополнительную информацию о конкретном заведении или достопримечательности, используя его идентификатор места и отправив запрос Place Details (New). информация о местах (New) возвращает более подробную информацию об указанном месте, например полный адрес, номер телефона, средняя оценка и отзывы пользователей.
Получить идентификатор места можно разными способами. Вы можете использовать:
Запросы информации о местах (New)
Чтобы запросить информацию о месте, вызовите метод PlacesClient.fetchPlace() и передайте ему объект FetchPlaceRequest, содержащий идентификатор места и список полей, а также любые необязательные параметры.
// Define a place ID.
final String placeId = "INSERT_PLACE_ID_HERE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList("INSERT_PLACE_FIELDS_HERE");
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);
Ответы на запросы информации о местах (New)
Информация о местах (New) возвращает данные в виде объекта Place, который содержит только поля, указанные в списке полей. Поскольку ответ на запрос информации из таких полей не может быть пустым, возвращаются только результаты для мест, о которых такая информация есть. Например, если у места нет фотографий, поля с ними в результатах не будет.
Чтобы получить доступ к полям данных, вызовите соответствующий метод.
Например, чтобы получить название места, вызовите getName().
Обязательные параметры
Для FetchPlaceRequest требуются следующие параметры:
-
Идентификатор места
Текстовый идентификатор, который уникальным образом определяет место, возвращенное из текстового поиска (New), поиска поблизости (New) или Autocomplete (New). Подробнее об идентификаторах мест…
-
Список полей
При запросе места необходимо указать, какие данные о нем нужно вернуть. Для этого передайте список значений
Place.Field, указывающих, какие данные нужно вернуть. В ответе нет списка полей по умолчанию.Списки полей помогут вам не запрашивать ненужные данные и тем самым сократить время обработки и снизить расходы.Это важно, поскольку от списка полей зависит стоимость каждого запроса. Подробнее об использовании и оплате…
Укажите одно или несколько из следующих полей:
Следующие поля активируют Place Details Essentials IDs Only SKU:
Place.Field.ID
Place.Field.PHOTO_METADATAS
Place.Field.RESOURCE_NAME
Полный список полей и связанных с ними кодов приведен в разделе Поля данных о местах (новая версия).
Следующие поля активируют SKU "Информация о местах. Essentials":
Place.Field.ADDRESS_COMPONENTS
ADR_FORMAT_ADDRESS
Place.Field.FORMATTED_ADDRESS*
* Используйте вместоPlace.Field.ADDRESS(поддержка прекращена).
Place.Field.LOCATION*
* Используйте вместоPlace.Field.LAT_LNG(поддержка прекращена).
Place.Field.PLUS_CODE
Place.Field.SHORT_FORMATTED_ADDRESS
Place.Field.TYPES
Place.Field.VIEWPORTПолный список полей и связанных с ними кодов приведен в разделе Поля данных о местах (новые).
Код Place Details Pro применяется, если вы запрашиваете следующие поля:
Place.Field.ACCESSIBILITY_OPTIONS*
* Используйте вместоPlace.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE(поддержка прекращена).
Place.Field.BUSINESS_STATUS
Place.Field.DISPLAY_NAME*
* Используйте вместо устаревшего тегаPlace.Field.NAME.
Place.Field.GOOGLE_MAPS_URI
Place.Field.ICON_BACKGROUND_COLOR
Place.Field.ICON_MASK_URL*
* Используйте вместоPlace.Field.ICON_URL(поддержка прекращена).
Place.Field.PRIMARY_TYPE
Place.Field.PRIMARY_TYPE_DISPLAY_NAME
Place.Field.SUB_DESTINATIONS
Place.Field.UTC_OFFSETПолный список полей и связанных с ними кодов приведен в разделе Поля данных о местах (новые).
Следующие поля активируют информация о местах Enterprise SKU:
Place.Field.CURRENT_OPENING_HOURS
Place.Field.CURRENT_SECONDARY_OPENING_HOURS
Place.Field.INTERNATIONAL_PHONE_NUMBER*
* Используйте вместоPlace.Field.PHONE_NUMBER, который больше не поддерживается.
Place.Field.NATIONAL_PHONE_NUMBER
Place.Field.OPENING_HOURS
Place.Field.PRICE_LEVEL
Place.Field.RATING
Place.Field.SECONDARY_OPENING_HOURS
Place.Field.USER_RATING_COUNT*
* Используйте вместоPlace.Field.USER_RATINGS_TOTAL, который больше не поддерживается.
Place.Field.WEBSITE_URIПолный список полей и связанных с ними кодов приведен в разделе Поля данных о местах (новая версия).
Следующие поля активируют Place Details Enterprise Plus SKU:
Place.Field.ALLOWS_DOGS
Place.Field.CURBSIDE_PICKUP
Place.Field.DELIVERY
Place.Field.DINE_IN
Place.Field.EDITORIAL_SUMMARY
Place.Field.EV_CHARGE_OPTIONS
Place.Field.FUEL_OPTIONS
Place.Field.GOOD_FOR_CHILDREN
Place.Field.GOOD_FOR_GROUPS
Place.Field.GOOD_FOR_WATCHING_SPORTS
Place.Field.LIVE_MUSIC
Place.Field.MENU_FOR_CHILDREN
Place.Field.OUTDOOR_SEATING
Place.Field.PARKING_OPTIONS
Place.Field.PAYMENT_OPTIONS
Place.Field.RESERVABLE
Place.Field.RESTROOM
Place.Field.REVIEWS
Place.Field.SERVES_BEER
Place.Field.SERVES_BREAKFAST
Place.Field.SERVES_BRUNCH
Place.Field.SERVES_COCKTAILS
Place.Field.SERVES_COFFEE
Place.Field.SERVES_DESSERT
Place.Field.SERVES_DINNER
Place.Field.SERVES_LUNCH
Place.Field.SERVES_VEGETARIAN_FOOD
Place.Field.SERVES_WINE
Place.Field.TAKEOUTПолный список полей и связанных с ними кодов приведен в разделе Поля данных о местах (новые).
Необязательные параметры
Необязательные параметры для FetchPlaceRequest:
Код области
Код региона, используемый для форматирования ответа, в виде двухсимвольного кода CLDR. Значение по умолчанию отсутствует.
Если название страны в поле
Place.Field.FORMATTED_ADDRESSв ответе совпадает сregionCode, код страны в полеPlace.Field.FORMATTED_ADDRESSопускается.Большинство кодов CLDR совпадают с кодами ISO 3166-1, однако имеются некоторые исключения. Например, ccTLD Великобритании – uk (.co.uk), а код ISO 3166-1 – gb (технически для "Соединенного Королевства Великобритании и Северной Ирландии"). Параметр может влиять на результаты в соответствии с действующим законодательством.
Чтобы задать параметр кода региона, вызовите метод
setRegionCode()при создании объектаFetchPlaceRequest.-
Токен сеанса
Токены сеансов – это создаваемые пользователем строки, которые отслеживают вызовы Autocomplete (New) как сеансы. Autocomplete (New) использует токены сеансов, чтобы сгруппировать этапы запроса и выбора места выполняемого пользователем поиска с функцией автозаполнения в отдельный сеанс для выставления счетов. Токены сеанса передаются в вызовы информации о местах (New), которые следуют за вызовами Autocomplete (New). Подробнее о токенах сеансов…
Чтобы задать параметр токена сеанса, вызовите метод
setSessionToken()при создании объектаFetchPlaceRequest.
Пример запроса информации о местах
В следующем примере показан запрос полей ID, DISPLAY_NAME и FORMATTED_ADDRESS для Эмпайр-стейт-билдинг в Нью-Йорке.
// Define a place ID.
final String placeId = "ChIJaXQRs6lZwokRY6EFpJnhNNE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS);
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);