進階地點詳細資料元素 (預先發布版)

「進階地點詳細資料」元素和「進階地點詳細資料」密集元素是 HTML 元素,可顯示地點的詳細資料:

「進階地點詳細資料」元素和「進階地點詳細資料精簡」元素都提供相同的進階功能,包括自訂動作按鈕、省略地點名稱,以及篩選評論和媒體。

使用自訂工具,以視覺化方式呈現不同屬性組合對地點詳細資料元素外觀的影響,並存取 HTML/CSS、Kotlin/XML 和 Swift 中的程式碼。

進階地點詳細資料元素 (預先發布版)

按一下地圖上的標記,即可在「進階地點詳細資料元素」中查看地點詳細資料。

AdvancedPlaceDetailsElement 支援各種內容元素,包括完整營業時間、網站、電話號碼、AI 摘要 (如果無法生成 AI 摘要,則會顯示編輯摘要)、特定類型的重點、評論、AI 評論摘要、加號代碼和功能清單。

如要在地圖上顯示地點詳細資料,請在 HTML 網頁的 gmp-map 元素中新增 gmp-advanced-place-details 元素。加入子項元素 gmp-place-details-place-request,選取地點。這可以是地點物件地點 ID 或地點的資源名稱:

<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-summarygmp-place-review-summary 元素分別提供地點和評論的AI 輔助摘要。子項元素的順序無關緊要,因為所選詳細資料一律會以預先定義的固定順序轉譯。

您可以使用內容專屬屬性,進一步設定部分元素:

  • gmp-place-media 元素用於顯示單一相片,並包含 lightbox-preferred 屬性,點選後會在燈箱中開啟相片。燈箱預設為停用。
  • gmp-place-attribution 元素用於顯示整體 Maps API 資料出處設定,例如相片或評論的來源。light-scheme-colordark-scheme-color 屬性用於設定淺色和深色模式中出處資訊文字的顏色。

如要進一步瞭解所有支援的內容元素,請參閱「地點小工具內容自訂」參考文件。

為求簡單,您也可以使用 gmp-place-all-content 顯示「進階地點詳細資料」元素中的所有詳細資料,或使用 gmp-place-standard-content 顯示標準設定。

設定外觀

建議 gmp-advanced-place-details 元素的寬度範圍為 250 像素到 400 像素。寬度小於 250 像素時,可能無法正確顯示。請根據應用程式設定高度。「進階地點詳細資料」元素的設計可視需要,在分配的空間內捲動。

gmp-advanced-place-details 元素也支援多種自訂 CSS 屬性,可設定元素的顏色和字型。詳情請參閱「Places UI Kit 自訂樣式」。

進階 Place Details 緊湊元素 (預先發布版)

按一下地圖上的標記,即可在「進階地點詳細資料」精簡元素中查看地點詳細資料。

AdvancedPlaceDetailsCompactElement 會以最少的空間,顯示所選地點的詳細資料。這項功能可能適用於資訊視窗,用來醒目顯示地圖上的地點;也可能用於社群媒體體驗,例如在即時通訊中分享位置資訊;或是做為選取目前位置的建議;也可能用於媒體文章,用來參照 Google 地圖上的地點。AdvancedPlaceDetailsCompactElement 可顯示名稱、地址、評分、類型、價格、無障礙圖示、營業狀態和單一相片。可依 orientation 屬性選取,以水平或垂直方式顯示。

在下列程式碼片段中,gmp-advanced-place-details-compact 會設定為 orientation,並設為 horizontal。另一個屬性 truncation-preferred 會截斷特定內容,以便在單行顯示所有內容,而不是換行。gmp-advanced-place-details-compact 元素包含子元素 gmp-place-details-place-request,用於選取地點。可以是地點物件地點 ID 或地點的資源名稱。

  <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 顯示「進階地點詳細資料精簡」元素中的所有詳細資料,或使用 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 自訂樣式」。

請注意,如果將「進階地點詳細資料密集」元素新增至資訊視窗,自訂樣式必須直接套用至 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;
}

本範例示範如何使用 InfoWindowAdvancedMarkerElement,以程式輔助方式在地圖中加入 AdvancedPlaceDetailsCompactElement

進階功能

自訂動作按鈕

將動作按鈕新增為 Advanced Place Details 元件的直接子項。使用 <gmp-place-link> 建立標準導覽連結,並明確指定 action 屬性。您可以視需要指定 slot 屬性。 有效預先定義的動作為 open-websiteopen-directionsopen-mapcall。如果省略 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 讀取 searchMediaCountsearchReviewsCount 屬性,擷取符合指定搜尋查詢的項目總數。您必須等待 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);
});