Das
AdvancedPlaceSearchElement
ist ein HTML-Element, das die Ergebnisse einer Ortssuche in einer Liste rendert. Es gibt zwei Möglichkeiten, das gmp-advanced-place-search Element zu konfigurieren:
-
Wenn Sie in einem bestimmten Bereich nach Orten eines bestimmten Typs suchen möchten, verwenden Sie
die Anfrage „Search nearby“, um Suchergebnisse mit dem
PlaceNearbySearchRequestElementzu rendern. -
Wenn Sie in einem bestimmten Bereich anhand einer Textabfrage nach Orten suchen möchten, verwenden Sie
die Anfrage „Search by text“, um
Suchergebnisse mit dem
PlaceTextSearchRequestElementzu rendern.
Sowohl die Suche in der Nähe als auch die Textsuche bieten dieselben erweiterten Funktionen, darunter das Anpassen von Aktionsschaltflächen, das Filtern von Rezensionen und Medien, das Konfigurieren der Ortsattribution sowie die Verarbeitung der Ortsauswahl und von Fehlern.
Anfrage „Search nearby“
Wählen Sie im Menü einen Ortstyp aus, um Suchergebnisse in der Nähe für diesen Ortstyp zu sehen.
Die Suche in der Nähe ist hauptsächlich so konfiguriert, dass nach Ortstyp und Standort gesucht wird,
und die Ergebnisse können mit der
rankPreference Property nach Entfernung oder Beliebtheit sortiert werden. Weitere Informationen finden Sie in der Referenzdokumentation zur
PlaceNearbySearchRequestElement
Klasse.
In diesem Beispiel wird das Element „Advanced Place Search“ als Antwort auf eine Suche in der Nähe mit einem vom Nutzer ausgewählten Ortstyp gerendert. Außerdem wird ein AdvancedPlaceDetailsCompactElement für den ausgewählten Ort angezeigt.
Wenn Sie das Element „Advanced Place Search“ der Karte hinzufügen möchten, fügen Sie der HTML-Seite ein
gmp-advanced-place-search Element mit einem verschachtelten
gmp-place-nearby-search-request Element hinzu.
<gmp-advanced-place-search selectable>
<!-- Nearby search requests require a location restriction to return results. Often set programmatically. -->
<gmp-place-nearby-search-request max-result-count="5"></gmp-place-nearby-search-request>
<template slot="place-list-item">
<gmp-place-all-content></gmp-place-all-content>
</template>
</gmp-advanced-place-search>
Mit dem select Element kann der Nutzer im Menü einen Ortstyp auswählen. Der Einfachheit halber sind nur drei Ortstypen aufgeführt: Restaurant, Café,
und Ladestation für Elektrofahrzeuge.
<div class="controls">
<label for="type-select">
Select a place type:
<select id="type-select" class="type-select">
<option value="restaurant">Restaurant</option>
<option value="cafe" selected>Cafe</option>
<option value="electric_vehicle_charging_station">
EV charging station
</option>
</select>
</label>
</div>
Wenn der Nutzer im Menü einen Ortstyp auswählt, wird das
gmp-place-nearby-search-request Element aktualisiert und das
Element „Advanced Place Search“ zeigt die Ergebnisse an.
Anfrage „Search by text“
Geben Sie einen Suchbegriff in das Eingabefeld ein und klicken Sie auf die Schaltfläche Search (Suchen), um eine Liste von Orten zu erhalten, die dem Begriff entsprechen.
Die Textsuche ist hauptsächlich so konfiguriert, dass anhand einer Textabfrage und
eines Standorts gesucht wird. Die Ergebnisse können nach Preisklasse, Bewertung und danach gefiltert werden, ob der Ort derzeit geöffnet ist. Die Ergebnisse können auch nach Entfernung oder Beliebtheit
mit der rankPreference Property sortiert werden. Weitere Informationen finden Sie in der Referenzdokumentation zur
PlaceTextSearchRequestElement
Klasse.
In diesem Beispiel wird das Element „Advanced Place Search“ als Antwort auf eine Nutzer Texteingabe gerendert. Außerdem wird ein AdvancedPlaceDetailsCompactElement für den ausgewählten Ort angezeigt.
Wenn Sie das Element „Advanced Place Search“ der Karte hinzufügen möchten, fügen Sie der HTML-Seite ein
gmp-advanced-place-search Element mit einem verschachtelten
gmp-place-text-search-request Element hinzu.
<gmp-advanced-place-search selectable>
<gmp-place-text-search-request max-result-count="5"></gmp-place-text-search-request>
<template slot="place-list-item">
<gmp-place-all-content></gmp-place-all-content>
</template>
</gmp-advanced-place-search>
Mit dem Element input kann der Nutzer Suchtext eingeben.
<div class="controls">
<input
type="text"
id="query-input"
class="query-input"
placeholder="Search for a place"
value="cafe" />
<button id="search-button" class="search-button">
Search
</button>
</div>
Wenn der Nutzer auf die Schaltfläche Search (Suchen) klickt, wird die Suchfunktion ausgeführt,
das Element gmp-place-text-search-request wird aktualisiert und das
Element „Advanced Place Search“ zeigt die Ergebnisse an.
Erweiterte Funktionen
Aktionsschaltflächen anpassen
Fügen Sie Aktionsschaltflächen als untergeordnete Elemente in das
<template slot="place-list-item"> Element der Komponente „Advanced
Place Search“ ein. Verwenden Sie <gmp-place-link> für standard
Navigationsverbindungen 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 weggelassen wird, wird standardmäßig
action-main verwendet.
<gmp-advanced-place-search selectable>
<gmp-place-text-search-request text-query="pizza" max-result-count="5"></gmp-place-text-search-request>
<template slot="place-list-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-search>Rezensionen und Medien filtern
In diesem Codebeispiel werden nur Medien und Rezensionen angezeigt, in denen „Kaffee“ erwähnt wird.
<gmp-advanced-place-search selectable>
<gmp-place-text-search-request text-query="pizza" max-result-count="5"></gmp-place-text-search-request>
<template slot="place-list-item">
<gmp-place-name></gmp-place-name>
<gmp-place-media query="coffee"></gmp-place-media>
<gmp-place-reviews query="coffee" rank-preference="newest"></gmp-place-reviews>
</template>
</gmp-advanced-place-search>Ortsattribution konfigurieren
Wenn Sie die visuelle Attribution konfigurieren möchten, fügen Sie ein
<gmp-place-attribution> Element hinzu, um übergreifende Datenattributionskonfigurationen der Maps
API anzuzeigen, z. B. die Quelle eines Fotos oder einer Rezension.
Es muss als direktes gleichgeordnetes Element des <template> hinzugefügt werden.
Attributionen, die innerhalb des <template> Elements
platziert werden, werden ignoriert.
<gmp-advanced-place-search selectable>
<gmp-place-text-search-request text-query="pizza" max-result-count="5"></gmp-place-text-search-request>
<template slot="place-list-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-search>Ortsauswahl und Fehler verarbeiten
Wenn das Attribut selectable vorhanden ist, können Sie auf das Ereignis
gmp-select warten, um den vom Nutzer ausgewählten Ort abzurufen. Sie können
auch auf das gmp-error Ereignis warten, um Szenarien zu verarbeiten,
in denen Ortsdaten nicht abgerufen werden können.
const searchElement = document.querySelector('gmp-advanced-place-search'); searchElement.addEventListener('gmp-select', (e) => { console.log('User selected place: ', e.place); }); searchElement.addEventListener('gmp-error', (e) => { // e.detail contains the structured error payload console.error('Failed to load places: ', e.detail.error); });