Die Elemente „Advanced Place Details“ und „Advanced Place Details Compact“ Elemente sind HTML-Elemente, die Details für einen Ort rendern:
-
Das
AdvancedPlaceDetailsElementunterstützt alle visualisierbaren Ortsdaten und kann mehrere Fotos enthalten. -
Das
AdvancedPlaceDetailsCompactElementist so konzipiert, dass es nur wenig Platz benötigt und eine kurze Zusammenfassung von Informationen zu einem Ort anzeigt, einschließlich Name, Adresse, Bewertung usw. Es kann auch ein einzelnes Foto enthalten.
Sowohl das Element „Advanced Place Details“ als auch das Element „Advanced Place Details Compact“ bieten dieselben erweiterten Funktionen, einschließlich der Anpassung von Aktionsbuttons, dem Auslassen des Ortsnamens und dem Filtern von Rezensionen und Medien.
Mit dem Anpassungstool können Sie visualisieren, wie sich verschiedene Eigenschaftssätze auf das Erscheinungsbild eines Elements „Place Details“ auswirken, und auf den Code in HTML/CSS, Kotlin/XML, und Swift zugreifen.
Element „Advanced Place Details“ (Vorabversion)
Klicken Sie auf eine Markierung auf der Karte, um die zugehörigen Ortsdetails in einem Element „Advanced Place Details“ aufzurufen.
Das
AdvancedPlaceDetailsElement
unterstützt eine Vielzahl von Inhaltselementen, darunter vollständige Öffnungszeiten,
Website, Telefonnummer,
KI-gestützte Zusammenfassung
mit Fallback auf eine redaktionelle Zusammenfassung, typspezifische Highlights, Rezensionen,
KI-gestützter Rezensionsüberblick, Plus Code und Featurelisten.
Wenn Sie Ortsdetails auf einer Karte anzeigen möchten, fügen Sie auf der HTML-Seite dem
gmp-map Element ein
gmp-advanced-place-details Element hinzu. Fügen Sie ein untergeordnetes Element,
gmp-place-details-place-request, hinzu, um den Ort auszuwählen. Dabei kann es sich um ein
Place-Objilkt, eine
Orts-ID oder den Ressourcennamen eines Orts handeln:
<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>Inhalt konfigurieren
Sie können den spezifischen Ortsinhalt, der vom
gmp-advanced-place-details Element angezeigt wird, steuern, indem Sie untergeordnete Elemente
verschachteln, um die Ortsdetails auszuwählen und zu konfigurieren. Ein Beispiel:
<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>
Jedes untergeordnete Inhaltselement wählt ein entsprechendes Ortsdetail aus, das angezeigt werden soll:
gmp-place-address
wählt die Adresse des Orts aus,
gmp-place-price
wählt die Preisstufe des Orts aus usw. Die Elemente
gmp-place-summary
und
gmp-place-review-summary
bieten eine
KI-generierte
Zusammenfassung des Orts bzw. seiner Rezensionen. Die Reihenfolge der untergeordneten
Elemente ist irrelevant, da die ausgewählten Details immer in einer
festen vordefinierten Reihenfolge gerendert werden.
Einige dieser Elemente können mit inhaltsspezifischen Attributen weiter konfiguriert werden:
-
Das
gmp-place-mediaElement wird verwendet, um ein einzelnes Foto anzuzeigen, und enthält einlightbox-preferredAttribut, das das Foto beim Klicken in einem Lightbox-Fenster öffnet. Lightbox ist standardmäßig deaktiviert. -
Das
gmp-place-attributionElement wird verwendet, um übergreifende Konfigurationen für Quellenangaben zu Daten der Maps API anzuzeigen, z. B. die Quelle eines Fotos oder einer Rezension. Mit den Attributenlight-scheme-colorunddark-scheme-colorwird die Farbe des Quellenangabetexts im hellen und dunklen Modus festgelegt.
Weitere Informationen zu allen unterstützten Inhaltselementen finden Sie in der Referenzdokumentation zur Anpassung von Inhalten des Orts-Widgets.
Zur Vereinfachung können Sie auch
gmp-place-all-content
verwenden, um alle im Element „Advanced Place Details“ verfügbaren Details anzuzeigen, oder
mit
gmp-place-standard-content
, um eine Standardkonfiguration anzuzeigen.
Erscheinungsbild konfigurieren
Der empfohlene Breitenbereich für das
gmp-advanced-place-details Element liegt zwischen 250 und 400 Pixel. Bei Breiten unter
250 Pixel werden die Details möglicherweise nicht richtig angezeigt. Legen Sie die Höhe entsprechend Ihrer
Anwendung fest. Das Element „Advanced Place Details“ ist so konzipiert, dass es bei Bedarf innerhalb des zugewiesenen Bereichs gescrollt werden kann.
Das gmp-advanced-place-details Element unterstützt auch eine Vielzahl benutzerdefinierter CSS-Eigenschaften, mit denen Sie die Farben und Schriftarten des Elements konfigurieren können. Weitere Informationen finden Sie unter
Benutzerdefiniertes Styling des Places UI Kit.
Vollständiges Codebeispiel ansehen
TypeScript
// Use querySelector to select elements for interaction. const map = document.querySelector<google.maps.MapElement>('gmp-map')!; const placeDetails = document.querySelector< HTMLElement & { place?: google.maps.places.Place } >('gmp-advanced-place-details')!; const placeDetailsRequest = document.querySelector<HTMLElement>( 'gmp-place-details-place-request' )!; const marker = document.querySelector<google.maps.marker.AdvancedMarkerElement>( 'gmp-advanced-marker' )!; async function init(): Promise<void> { // Request needed libraries. await Promise.all([ google.maps.importLibrary('maps'), google.maps.importLibrary('marker'), google.maps.importLibrary('places'), ]); // Hide the map type control. map.innerMap.setOptions({ mapTypeControl: false }); // Function to update map and marker based on place details const updateMapAndMarker = () => { if (placeDetails.place?.location) { map.innerMap.panTo(placeDetails.place.location); map.innerMap.setZoom(16); // Set zoom after panning if needed marker.position = placeDetails.place.location; marker.collisionBehavior = 'REQUIRED_AND_HIDES_OPTIONAL'; marker.style.display = 'block'; } }; // Set up map once widget is loaded. placeDetails.addEventListener('gmp-load', () => { updateMapAndMarker(); }); // Add an event listener to handle clicks. map.innerMap.addListener( 'click', (event: google.maps.MapMouseEvent | google.maps.IconMouseEvent) => { marker.position = null; event.stop(); if ('placeId' in event && event.placeId) { // Fire when the user clicks a POI. placeDetailsRequest.setAttribute( 'place', `places/${event.placeId}` ); updateMapAndMarker(); } else { // Fire when the user clicks the map (not on a POI). console.log('No place was selected.'); marker.style.display = 'none'; } } ); } void init();
JavaScript
// Use querySelector to select elements for interaction. const map = document.querySelector('gmp-map'); const placeDetails = document.querySelector('gmp-advanced-place-details'); const placeDetailsRequest = document.querySelector( 'gmp-place-details-place-request' ); const marker = document.querySelector('gmp-advanced-marker'); async function init() { // Request needed libraries. await Promise.all([ google.maps.importLibrary('maps'), google.maps.importLibrary('marker'), google.maps.importLibrary('places'), ]); // Hide the map type control. map.innerMap.setOptions({ mapTypeControl: false }); // Function to update map and marker based on place details const updateMapAndMarker = () => { if (placeDetails.place?.location) { map.innerMap.panTo(placeDetails.place.location); map.innerMap.setZoom(16); // Set zoom after panning if needed marker.position = placeDetails.place.location; marker.collisionBehavior = 'REQUIRED_AND_HIDES_OPTIONAL'; marker.style.display = 'block'; } }; // Set up map once widget is loaded. placeDetails.addEventListener('gmp-load', () => { updateMapAndMarker(); }); // Add an event listener to handle clicks. map.innerMap.addListener('click', (event) => { marker.position = null; event.stop(); if ('placeId' in event && event.placeId) { // Fire when the user clicks a POI. placeDetailsRequest.setAttribute( 'place', `places/${event.placeId}` ); updateMapAndMarker(); } else { // Fire when the user clicks the map (not on a POI). console.log('No place was selected.'); marker.style.display = 'none'; } }); } void init();
CSS
/* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } .container { display: flex; height: 100vh; width: 100%; } gmp-map { flex-grow: 1; } .ui-panel { width: 400px; margin-left: 20px; margin-top: 10px; } gmp-place-details { width: 100%; margin: 0; border: none; }
HTML
<!doctype html>
<html>
<head>
<title>Place Details with Google Maps</title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="module" src="./index.js"></script>
<script>
// prettier-ignore
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "GOOGLE_MAPS_API_KEY",
v: "beta"
});
</script>
</head>
<body>
<div class="container">
<!-- map-id is required to use advanced markers. See https://developers.google.com/maps/documentation/javascript/map-ids/mapid-over. -->
<gmp-map zoom="17" map-id="DEMO_MAP_ID">
<gmp-advanced-marker></gmp-advanced-marker>
</gmp-map>
<div class="ui-panel">
<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-advanced-place-details>
</div>
</div>
</body>
</html>Element „Advanced Place Details Compact“ (Vorabversion)
Klicken Sie auf eine Markierung auf der Karte, um die zugehörigen Ortsdetails in einem Element „Advanced Place Details Compact“ aufzurufen.
Das
AdvancedPlaceDetailsCompactElement
rendert Details für einen ausgewählten Ort und benötigt dabei nur wenig Platz. Das kann in einem Infofenster nützlich sein, in dem ein Ort auf einer Karte hervorgehoben wird, in sozialen Medien
Erfahrung wie das Teilen eines Standorts in einem Chat, als Vorschlag für
die Auswahl Ihres aktuellen Standorts oder in einem Medienartikel, um auf
den Ort in Google Maps zu verweisen. Das
AdvancedPlaceDetailsCompactElement kann Name, Adresse,
Bewertung, Typ, Preis, Symbol für Barrierefreiheit, Öffnungsstatus und ein einzelnes Foto anzeigen.
Es kann horizontal oder vertikal angezeigt werden, je nach Auswahl des
orientation Attributs.
Im folgenden Snippet ist gmp-advanced-place-details-compact mit orientation auf horizontal konfiguriert. Ein zusätzliches
Attribut, truncation-preferred, kürzt bestimmte Inhalte, damit sie in eine Zeile passen, anstatt sie umzubrechen. Das
gmp-advanced-place-details-compact Element enthält ein untergeordnetes
Element gmp-place-details-place-request, um den Ort auszuwählen.
Dabei kann es sich um ein
Place-Objekt, eine
Orts-ID oder den Ressourcennamen eines Orts handeln.
<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>Inhalt konfigurieren
Sie können den spezifischen Ortsinhalt, der vom
gmp-advanced-place-details-compact Element angezeigt wird, steuern, indem Sie untergeordnete
Elemente verschachteln, um die Ortsdetails auszuwählen und zu konfigurieren. Ein Beispiel:
<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>Jedes untergeordnete Inhaltselement wählt ein entsprechendes Ortsdetail aus, das angezeigt werden soll. Die Reihenfolge der untergeordneten Elemente ist irrelevant, da die ausgewählten Details immer in einer festen vordefinierten Reihenfolge gerendert werden. Einige dieser Elemente können mit inhaltsspezifischen Attributen weiter konfiguriert werden.
Weitere Informationen zu allen unterstützten Inhaltselementen finden Sie in der Referenzdokumentation zur Anpassung von Inhalten des Orts-Widgets.
Zur Vereinfachung können Sie auch
gmp-place-all-content
verwenden, um alle im Element „Advanced Place Details Compact“ verfügbaren Details anzuzeigen, oder mit
gmp-place-standard-content
, um eine Standardkonfiguration anzuzeigen.
Erscheinungsbild konfigurieren
Der empfohlene Breitenbereich für das
gmp-advanced-place-details-compact Element in vertikaler
Ausrichtung liegt zwischen 180 und 300 Pixel. Bei Breiten unter 160 Pixel werden die Details möglicherweise nicht richtig angezeigt. Legen Sie keine feste Höhe fest.
Der empfohlene Breitenbereich für das
gmp-advanced-place-details-compact Element in horizontaler
Ausrichtung liegt zwischen 180 und 500 Pixel. Bei Breiten unter 160 Pixel werden die Details möglicherweise nicht richtig angezeigt. Bei Breiten unter 350 Pixel wird das Vorschaubild nicht angezeigt.
Legen Sie keine feste Höhe fest.
Das gmp-advanced-place-details-compact Element unterstützt auch eine Vielzahl benutzerdefinierter CSS-Eigenschaften, mit denen Sie die Farben und Schriftarten des Elements konfigurieren können. Weitere Informationen finden Sie unter
Benutzerdefiniertes Styling des Places UI Kit.
Wenn das Element „Advanced Place Details Compact“ einem
Infofenster hinzugefügt wird, muss das benutzerdefinierte Styling direkt auf das
gmp-advanced-place-details-compact Element angewendet werden. Das liegt daran, dass
das Infofenster Teil des Shadow DOM der Karte ist, sodass externe CSS-Stile
nicht angewendet werden.
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; }
Vollständiges Codebeispiel ansehen
TypeScript
// Use querySelector to select elements for interaction. const map = document.querySelector<google.maps.MapElement>('gmp-map')!; const placeDetails = document.querySelector< HTMLElement & { place?: google.maps.places.Place } >('gmp-advanced-place-details-compact')!; const placeDetailsRequest = document.querySelector<HTMLElement>( 'gmp-place-details-place-request' )!; const marker = document.querySelector<google.maps.marker.AdvancedMarkerElement>( 'gmp-advanced-marker' )!; async function init(): Promise<void> { // Request needed libraries. void Promise.all([ google.maps.importLibrary('marker'), google.maps.importLibrary('places'), ]); const { InfoWindow } = await google.maps.importLibrary('maps'); await window.customElements.whenDefined('gmp-map'); // Set the inner map options. map.innerMap.setOptions({ mapTypeControl: false, streetViewControl: false, }); await window.customElements.whenDefined('gmp-advanced-marker'); marker.collisionBehavior = 'REQUIRED_AND_HIDES_OPTIONAL'; const infoWindow = new InfoWindow(); infoWindow.addListener('close', () => { marker.position = null; }); const showInfoWindow = () => { if (infoWindow.isOpen) return; infoWindow.setContent(placeDetails); infoWindow.open({ anchor: marker }); }; placeDetails.addEventListener('gmp-load', () => { // For the initial load case, with no user click, we fall back to the place's location, and ensure the map has a center set and the InfoWindow is show. // (The clicked POI LatLng will be a more natural marker position, when available.) if (!map.center && placeDetails.place?.location) { map.center = marker.position = placeDetails.place.location; showInfoWindow(); } }); // Add an event listener to handle clicks. map.innerMap.addListener( 'click', (event: google.maps.MapMouseEvent | google.maps.IconMouseEvent) => { event.stop(); if ('placeId' in event && event.placeId) { // When the user clicks a POI. marker.position = event.latLng; placeDetailsRequest.setAttribute( 'place', `places/${event.placeId}` ); showInfoWindow(); } else { // When the user clicks the map (not on a POI). marker.position = null; placeDetailsRequest.removeAttribute('place'); console.log('No place was selected.'); } } ); } void init();
JavaScript
// Use querySelector to select elements for interaction. const map = document.querySelector('gmp-map'); const placeDetails = document.querySelector( 'gmp-advanced-place-details-compact' ); const placeDetailsRequest = document.querySelector( 'gmp-place-details-place-request' ); const marker = document.querySelector('gmp-advanced-marker'); async function init() { // Request needed libraries. void Promise.all([ google.maps.importLibrary('marker'), google.maps.importLibrary('places'), ]); const { InfoWindow } = await google.maps.importLibrary('maps'); await window.customElements.whenDefined('gmp-map'); // Set the inner map options. map.innerMap.setOptions({ mapTypeControl: false, streetViewControl: false, }); await window.customElements.whenDefined('gmp-advanced-marker'); marker.collisionBehavior = 'REQUIRED_AND_HIDES_OPTIONAL'; const infoWindow = new InfoWindow(); infoWindow.addListener('close', () => { marker.position = null; }); const showInfoWindow = () => { if (infoWindow.isOpen) return; infoWindow.setContent(placeDetails); infoWindow.open({ anchor: marker }); }; placeDetails.addEventListener('gmp-load', () => { // For the initial load case, with no user click, we fall back to the place's location, and ensure the map has a center set and the InfoWindow is show. // (The clicked POI LatLng will be a more natural marker position, when available.) if (!map.center && placeDetails.place?.location) { map.center = marker.position = placeDetails.place.location; showInfoWindow(); } }); // Add an event listener to handle clicks. map.innerMap.addListener('click', (event) => { event.stop(); if ('placeId' in event && event.placeId) { // When the user clicks a POI. marker.position = event.latLng; placeDetailsRequest.setAttribute( 'place', `places/${event.placeId}` ); showInfoWindow(); } else { // When the user clicks the map (not on a POI). marker.position = null; placeDetailsRequest.removeAttribute('place'); console.log('No place was selected.'); } }); } void init();
CSS
/* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } .container { display: flex; height: 100vh; width: 100%; } gmp-map { flex-grow: 1; }
HTML
<!doctype html>
<html>
<head>
<title>Place Details Compact with Google Maps</title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="module" src="./index.js"></script>
<script>
// prettier-ignore
(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
key: "GOOGLE_MAPS_API_KEY",
v: "beta"
});
</script>
</head>
<body>
<div class="container">
<!-- map-id is required to use Advanced Markers. See https://developers.google.com/maps/documentation/javascript/map-ids/mapid-over. -->
<gmp-map zoom="17" map-id="DEMO_MAP_ID">
<gmp-advanced-marker></gmp-advanced-marker>
</gmp-map>
</div>
<!--
The gmp-advanced-place-details-compact element is styled inline because it is
conditionally rendered and moved into the info window, which is
part of the map's shadow DOM.
-->
<gmp-advanced-place-details-compact
orientation="horizontal"
truncation-preferred
style="
width: 400px;
padding: 0;
margin: 0;
border: none;
background-color: transparent;
color-scheme: light;
">
<gmp-place-details-place-request
place="places/ChIJC8HakaIRkFQRiOgkgdHmqkk"></gmp-place-details-place-request>
<gmp-place-name></gmp-place-name>
<gmp-place-media lightbox-preferred></gmp-place-media>
<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-open-now-status></gmp-place-open-now-status>
<gmp-place-attribution
light-scheme-color="gray"
dark-scheme-color="white"></gmp-place-attribution>
</gmp-advanced-place-details-compact>
</body>
</html>Erweiterte Funktionen
Aktionsbuttons anpassen
Fügen Sie Aktionsbuttons als direkte untergeordnete Elemente der Komponente „Advanced Place Details“
hinzu. Verwenden Sie <gmp-place-link> für Standard
Verbindungen zur Navigation und geben Sie das action
Attribut explizit an. Optional können Sie das Attribut slot angeben.
Gültige vordefinierte Aktionen sind open-website,
open-directions, open-map, und call.
Wenn das Attribut slot nicht angegeben wird, wird standardmäßig
action-main verwendet.
<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>
Anforderungen für visuelle Quellenangaben
Wichtig: Sie müssen Endnutzer darüber informieren, wenn ein benutzerdefinierter Aktions button Nutzerinformationen an einen anderen Drittanbieter als Google weitergibt. Weitere Informationen finden Sie unter Anforderungen für visuelle Quellenangaben.
Ortsnamen auslassen
Wenn Sie den Ortsnamen auslassen möchten, schließen Sie das
<gmp-place-name> Element explizit aus Ihrem benutzerdefinierten Inhalt aus.
<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>
Rezensionen und Medien filtern
In diesem Codebeispiel werden nur Medien und Rezensionen angezeigt, in denen „Kaffee“ erwähnt wird.
<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>
Sie können auch JavaScript verwenden, um die Gesamtzahl der Elemente abzurufen, die der angegebenen Suchanfrage entsprechen. Lesen Sie dazu die searchMediaCount und searchReviewsCount
Eigenschaften. Sie müssen warten, bis das Ereignis gmp-load ausgelöst wird, bevor Sie auf diese Eigenschaften zugreifen können.
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); });