Элементы расширенной информации о месте (предварительный просмотр)

Элементы Advanced Place Details Element и Advanced Place Details Compact Element — это HTML-элементы, отображающие подробную информацию о месте:

Как расширенный элемент «Подробная информация о месте», так и компактный расширенный элемент «Подробная информация о месте» предлагают одинаковые расширенные функции , включая настройку кнопок действий, удаление названия места, а также фильтрацию отзывов и медиафайлов.

Используйте инструмент «Настройка» , чтобы визуализировать, как различные наборы свойств повлияют на внешний вид элемента «Подробная информация о местах», и получите доступ к коду на HTML/CSS, Kotlin/XML и Swift.

Элемент «Подробная информация о месте» (предварительный просмотр)

Щелкните по маркеру на карте, чтобы просмотреть подробную информацию о его местоположении в расширенном элементе «Подробная информация о месте».

Элемент AdvancedPlaceDetailsElement поддерживает широкий спектр элементов контента, включая полные часы работы, веб-сайт, номер телефона, сводку на основе ИИ с возможностью возврата к редакционной сводке, основные характеристики конкретного типа заведения, отзывы, сводку отзывов на основе ИИ , а также код и списки характеристик.

Чтобы отобразить подробную информацию о месте на карте, добавьте элемент gmp-advanced-place-details к элементу gmp-map на HTML-странице. Добавьте дочерний элемент gmp-place-details-place-request для выбора места. Это может быть объект Place , идентификатор места или имя ресурса Place:

<gmp-map center="47.759737, -122.250632" zoom="16" map-id="DEMO_MAP_ID">
  <div class="widget-container" slot="control-inline-start-block-start">
    <gmp-advanced-place-details>
      <gmp-place-details-place-request place="places/ChIJC8HakaIRkFQRiOgkgdHmqkk"></gmp-place-details-place-request>
      <gmp-place-all-content></gmp-place-all-content>
    </gmp-advanced-place-details>
  </div>
  <gmp-advanced-marker></gmp-advanced-marker>
</gmp-map>

Настройте содержимое

Вы можете управлять отображением содержимого конкретного места элементом gmp-advanced-place-details используя вложенные дочерние элементы для выбора и настройки сведений о месте, как показано в этом примере:

        <gmp-advanced-place-details>
            <gmp-place-details-place-request
                place="places/ChIJC8HakaIRkFQRiOgkgdHmqkk"></gmp-place-details-place-request>
                <gmp-place-name></gmp-place-name>
                <gmp-place-address></gmp-place-address>
                <gmp-place-rating></gmp-place-rating>
                <gmp-place-type></gmp-place-type>
                <gmp-place-price></gmp-place-price>
                <gmp-place-accessible-entrance-icon></gmp-place-accessible-entrance-icon>
                <gmp-place-opening-hours></gmp-place-opening-hours>
                <gmp-place-website></gmp-place-website>
                <gmp-place-phone-number></gmp-place-phone-number>
                <gmp-place-summary></gmp-place-summary>
                <gmp-place-type-specific-highlights></gmp-place-type-specific-highlights>
                <gmp-place-review-summary></gmp-place-review-summary>
                <gmp-place-reviews></gmp-place-reviews>
                <gmp-place-feature-list></gmp-place-feature-list>
                <gmp-place-attribution></gmp-place-attribution>
        </gmp-advanced-place-details>

Каждый дочерний элемент контента выбирает соответствующую информацию о месте для отображения: gmp-place-address выбирает адрес места, gmp-place-price — уровень цен и т. д. Элементы gmp-place-summary и gmp-place-review-summary предоставляют, соответственно, сводку о месте и отзывы, созданную с помощью искусственного интеллекта . Порядок дочерних элементов не имеет значения, поскольку выбранные сведения всегда отображаются в фиксированном, предопределенном порядке.

Некоторые из этих элементов можно дополнительно настроить с помощью атрибутов, специфичных для содержимого:

  • Элемент gmp-place-media используется для отображения одной фотографии и включает атрибут lightbox-preferred , который открывает фотографию во всплывающем окне при нажатии. Всплывающее окно по умолчанию отключено.
  • Элемент gmp-place-attribution используется для отображения общих настроек атрибуции данных Maps API, таких как источник фотографии или отзыва. Атрибуты light-scheme-color и dark-scheme-color используются для установки цвета текста атрибуции в светлом и темном режимах.

Для получения более подробной информации обо всех поддерживаемых элементах контента см. справочную документацию по настройке содержимого виджета «Разместить» .

Для простоты можно также использовать gmp-place-all-content для отображения всех сведений, доступных в элементе «Расширенные сведения о месте», или gmp-place-standard-content для отображения стандартной конфигурации.

Настройте внешний вид

Рекомендуемый диапазон ширины для элемента gmp-advanced-place-details составляет 250–400 пикселей. При ширине менее 250 пикселей отображение может быть некорректным. Установите высоту в соответствии с вашим приложением. Элемент Advanced Place Details предназначен для прокрутки в пределах отведенного пространства по мере необходимости.

Элемент gmp-advanced-place-details также поддерживает множество пользовательских свойств CSS для настройки цветов и шрифтов элемента. Подробнее см. раздел «Пользовательские стили в Places UI Kit» .

Расширенные сведения о месте. Компактный элемент (предварительный просмотр).

Щелкните по маркеру на карте, чтобы просмотреть подробную информацию о его местоположении в расширенном компактном элементе «Подробная информация о месте».

Элемент AdvancedPlaceDetailsCompactElement отображает подробную информацию о выбранном месте, занимая минимальное пространство. Это может быть полезно в информационном окне, выделяющем место на карте, в социальных сетях, например, при обмене местоположением в чате, в качестве подсказки для выбора текущего местоположения или в статье в СМИ для ссылки на место на Google Maps. AdvancedPlaceDetailsCompactElement может отображать название, адрес, рейтинг, тип, цену, значок доступности, статус открытия и одну фотографию. Он может отображаться горизонтально или вертикально, в зависимости от выбранного атрибута orientation .

В приведенном ниже фрагменте кода gmp-advanced-place-details-compact настроен с horizontal orientation . Дополнительный атрибут truncation-preferred обрезает определенное содержимое, чтобы оно помещалось на одной строке, а не переносилось на следующую. Элемент gmp-advanced-place-details-compact содержит дочерний элемент gmp-place-details-place-request для выбора места. Это может быть объект Place , идентификатор места или имя ресурса Place.

  <gmp-advanced-place-details-compact orientation="horizontal" truncation-preferred>
    <gmp-place-details-place-request place="places/ChIJC8HakaIRkFQRiOgkgdHmqkk"></gmp-place-details-place-request>
    <gmp-place-all-content></gmp-place-all-content>
  </gmp-advanced-place-details-compact>

Настройте содержимое

Вы можете управлять отображением содержимого конкретного места элементом gmp-advanced-place-details-compact вкладывая дочерние элементы для выбора и настройки сведений о месте, как показано в этом фрагменте кода:

<gmp-advanced-place-details-compact>
  <gmp-place-details-place-request place="places/ChIJC8HakaIRkFQRiOgkgdHmqkk"></gmp-place-details-place-request>
    <gmp-place-photo></gmp-place-photo>
    <gmp-place-name></gmp-place-name>
    <gmp-place-rating></gmp-place-rating>
    <gmp-place-address></gmp-place-address>
    <gmp-place-opening-hours></gmp-place-opening-hours>
    <gmp-place-attribution></gmp-place-attribution>
</gmp-advanced-place-details-compact>

Каждый дочерний элемент контента выбирает соответствующую деталь места для отображения. Порядок дочерних элементов не имеет значения, поскольку выбранные детали всегда отображаются в фиксированном, предопределенном порядке. Некоторые из этих элементов могут быть дополнительно настроены с помощью атрибутов, специфичных для контента.

Для получения более подробной информации обо всех поддерживаемых элементах контента см. справочную документацию по настройке содержимого виджета «Разместить» .

Для простоты можно также использовать gmp-place-all-content для отображения всех сведений, доступных в элементе Advanced Place Details Compact, или gmp-place-standard-content для отображения стандартной конфигурации.

Настройте внешний вид

Рекомендуемый диапазон ширины для элемента gmp-advanced-place-details-compact в вертикальной ориентации составляет 180–300 пикселей. Значения ширины менее 160 пикселей могут отображаться некорректно. Не задавайте фиксированную высоту.

Рекомендуемый диапазон ширины для элемента gmp-advanced-place-details-compact в горизонтальной ориентации составляет 180–500 пикселей. При ширине менее 160 пикселей изображение может отображаться некорректно. При ширине менее 350 пикселей миниатюрное изображение отображаться не будет. Не задавайте фиксированную высоту.

Элемент gmp-advanced-place-details-compact также поддерживает множество пользовательских свойств CSS для настройки цветов и шрифтов элемента. Подробнее см. раздел «Пользовательские стили в Places UI Kit» .

Обратите внимание, что если элемент Advanced Place Details Compact добавлен в информационное окно, пользовательские стили должны применяться непосредственно к элементу gmp-advanced-place-details-compact . Это связано с тем, что информационное окно является частью теневого DOM карты, поэтому внешние стили CSS применяться не будут.

gmp-advanced-place-details-compact {
  --gmp-color-surface: #202124;
  --gmp-color-on-surface: #ffffff;
  --gmp-color-on-surface-variant: #9aa0a6;
  --gmp-color-primary: #8ab4f8;
  --gmp-font-family: "Roboto", sans-serif;
}

В этом примере демонстрируется программное добавление элемента AdvancedPlaceDetailsCompactElement на карту с помощью элементов InfoWindow и AdvancedMarkerElement .

Расширенные функции

Настройка кнопок действий

Добавьте кнопки действий в качестве непосредственных дочерних элементов компонента «Расширенные сведения о месте». Используйте <gmp-place-link> для стандартных навигационных соединений и явно укажите атрибут action . При желании можно указать атрибут slot . Допустимые предопределенные действия: open-website , open-directions , open-map и call . Если атрибут slot опущен, по умолчанию используется action-main .

<gmp-advanced-place-details-compact orientation="vertical" truncation-preferred>
  <gmp-place-details-place-request place="places/ChIJC8HakaIRkFQRiOgkgdHmqkk"></gmp-place-details-place-request>
  <!-- Other content items -->
  <gmp-place-link action="open-website" target="_blank"></gmp-place-link>
  <gmp-place-link action="open-directions" slot="action-corner"></gmp-place-link>
</gmp-advanced-place-details-compact>

Требования к визуальному указанию авторства

Важно: необходимо четко указывать конечным пользователям, когда пользовательская кнопка действия будет передавать информацию о пользователе третьей стороне, помимо Google. См. требования к визуальной атрибуции .

Опустите название места.

Чтобы опустить название места, явно исключите элемент <gmp-place-name> из вашего пользовательского контента.

<gmp-advanced-place-details>
  <gmp-place-details-place-request place="places/ChIJT7FdmYiAhYAROFOvrIxRJDU"></gmp-place-details-place-request>
  <!-- Exclude <gmp-place-name> to hide the place name -->
  <gmp-place-rating></gmp-place-rating>
  <gmp-place-address></gmp-place-address>
</gmp-advanced-place-details>

Фильтр отзывов и медиафайлов

В этом примере кода отображаются только медиафайлы и обзоры, в которых упоминается «кофе».

<gmp-advanced-place-details>
  <gmp-place-details-place-request place="places/ChIJT7FdmYiAhYAROFOvrIxRJDU"></gmp-place-details-place-request>
  <gmp-place-media query="coffee"></gmp-place-media>
  <gmp-place-reviews query="coffee" rank-preference="newest"></gmp-place-reviews>
</gmp-advanced-place-details>

Также можно использовать JavaScript для получения общего количества элементов, соответствующих заданному поисковому запросу, путем чтения свойств searchMediaCount и searchReviewsCount . Перед доступом к этим свойствам необходимо дождаться события gmp-load .

const detailsElement = document.querySelector('gmp-advanced-place-details');
const mediaElement = detailsElement.querySelector('gmp-place-media');
mediaElement.addEventListener('gmp-load', (e) => {
  console.log('Total matching photos: ', e.target.searchMediaCount);
});

const reviewsElement = detailsElement.querySelector('gmp-place-reviews');
reviewsElement.addEventListener('gmp-load', (e) => {
  console.log('Total matching reviews: ', e.target.searchReviewsCount);
});