AdvancedPlaceListElement ist ein HTML-Element, das eine Sammlung von Orten in einer Liste anhand ihrer Ortsressourcennamen rendert.
Das Element „Erweiterte Ortsliste“ bietet erweiterte Funktionen, z. B. das Anpassen von Aktionsschaltflächen, das Konfigurieren der Ortsattribution und die Fehlerbehandlung.
Grundlegende Nutzung
Wenn Sie die Komponente verwenden möchten, fügen Sie Ihrer Seite ein <gmp-advanced-place-list>-Element hinzu und übergeben Sie eine durch Leerzeichen getrennte Liste von Ortsressourcennamen über das Attribut places.
Vollständiges Codebeispiel ansehen
TypeScript
async function init() { await google.maps.importLibrary('places'); await customElements.whenDefined('gmp-advanced-place-list'); const listElement = document.querySelector('gmp-advanced-place-list'); if (listElement) { listElement.addEventListener('gmp-error', (e: Event) => { const customEvent = e as CustomEvent<{ errors?: unknown }>; console.error( 'Failed to load places: ', customEvent.detail.errors ?? customEvent ); }); } } void init();
JavaScript
async function init() { await google.maps.importLibrary('places'); await customElements.whenDefined('gmp-advanced-place-list'); const listElement = document.querySelector('gmp-advanced-place-list'); if (listElement) { listElement.addEventListener('gmp-error', (e) => { const customEvent = e; console.error( 'Failed to load places: ', customEvent.detail.errors ?? customEvent ); }); } } void init();
CSS
html, body { height: 100%; margin: 0; padding: 0; font-family: Roboto, Arial, sans-serif; }
HTML
<!doctype html>
<html>
<head>
<title>Advanced Place List</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<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>
<gmp-advanced-place-list
places="places/ChIJLU7jZClu5kcR4PcOOO6p3I0 places/ChIJrRMgU7ZhLxMRxAOFkC7I8Sg places/ChIJbf8C1yFxdDkR3n12P4DkKt0 places/ChIJPTacEpBQwokRKwIlDXelxkA places/ChIJVVVViV-abZERJxqgpA43EDo">
<template slot="details-item">
<gmp-place-name></gmp-place-name>
<gmp-place-address></gmp-place-address>
<gmp-place-media query="coffee"></gmp-place-media>
</template>
</gmp-advanced-place-list>
</body>
</html>Erweiterte Funktionen
Aktionsschaltflächen anpassen
Fügen Sie Aktionsschaltflächen als untergeordnete Elemente im <template slot="details-item">-Element der Komponente „Erweiterte Ortsliste“ hinzu. Verwenden Sie <gmp-place-link> für standardmäßige Navigationsverbindungen und geben Sie das Attribut action 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 weggelassen wird, wird standardmäßig action-main verwendet.
<gmp-advanced-place-list places="places/ChIJT7FdmYiAhYAROFOvrIxRJDU">
<template slot="details-item">
<gmp-place-name></gmp-place-name>
<gmp-place-link action="open-website" target="_blank"></gmp-place-link>
<gmp-place-link action="open-directions" slot="action-corner"></gmp-place-link>
</template>
</gmp-advanced-place-list>Attribution für Orte konfigurieren
Wenn Sie die visuelle Quellenangabe konfigurieren möchten, fügen Sie ein <gmp-place-attribution>-Element hinzu, um übergreifende Konfigurationen für die Quellenangabe von Google Maps-API-Daten anzuzeigen, z. B. die Quelle eines Fotos oder einer Rezension.
Es muss als direktes gleichgeordnetes Element von <template> hinzugefügt werden.
Quellenangaben, die innerhalb des <template>-Elements platziert werden, werden ignoriert.
<gmp-advanced-place-list places="places/ChIJT7FdmYiAhYAROFOvrIxRJDU">
<template slot="details-item">
<gmp-place-name></gmp-place-name>
</template>
<gmp-place-attribution light-scheme-color="black" dark-scheme-color="gray"></gmp-place-attribution>
</gmp-advanced-place-list>Fehler verarbeiten
Sie können das Ereignis gmp-error überwachen, um Szenarien, in denen ein oder mehrere angeforderte Orte nicht geladen werden können, ordnungsgemäß zu verarbeiten.
const listElement = document.querySelector('gmp-advanced-place-list'); listElement.addEventListener('gmp-error', (e) => { // e.detail.errors contains an array of failure objects with specific failed Resource Names console.error('Failed to load places: ', e.detail.errors); });