AdvancedPlaceSearchElement
to element HTML, który wyświetla wyniki wyszukiwania miejsc w postaci listy. Element gmp-advanced-place-search można skonfigurować na 2 sposoby:
-
Aby wyszukać miejsca określonego typu w danym obszarze, użyj
żądania wyszukiwania w pobliżu, aby wyświetlić wyniki wyszukiwania za pomocą
PlaceNearbySearchRequestElement. -
Aby wyszukać miejsca w danym obszarze na podstawie zapytania tekstowego, użyj
żądania wyszukiwania tekstu, aby wyświetlić
wyniki wyszukiwania za pomocą
PlaceTextSearchRequestElement.
Zarówno wyszukiwanie w pobliżu, jak i wyszukiwanie tekstu oferują te same funkcje zaawansowane, w tym dostosowywanie przycisków działania, filtrowanie opinii i multimediów, konfigurowanie informacji o źródle miejsca oraz obsługę wyboru miejsca i błędów.
Żądanie wyszukiwania w pobliżu
Wybierz typ miejsca z menu, aby zobaczyć wyniki wyszukiwania w pobliżu dla tego typu miejsca.
Wyszukiwanie w pobliżu jest skonfigurowane głównie do wyszukiwania według typu miejsca i lokalizacji,
a wyniki można sortować według odległości lub popularności za pomocą
rankPreference właściwości. Więcej informacji znajdziesz w dokumentacji referencyjnej klasy
PlaceNearbySearchRequestElement.
Ten przykład wyświetla zaawansowany element wyszukiwania miejsc w odpowiedzi na a wyszukiwanie w pobliżu z typem miejsca wybranym przez użytkownika. Wyświetla też element AdvancedPlaceDetailsCompactElement dla wybranego miejsca.
Aby dodać zaawansowany element wyszukiwania miejsc do mapy, dodaj do strony HTML element
gmp-advanced-place-search z zagnieżdżonym elementem
gmp-place-nearby-search-request.
<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>
Element select umożliwia użytkownikowi wybranie typu miejsca z
menu. Dla uproszczenia wymienione są tylko 3 typy miejsc: restauracja, kawiarnia, i stacja ładowania EV.
<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>
Gdy użytkownik wybierze typ miejsca z menu, element
gmp-place-nearby-search-request zostanie zaktualizowany, a
zaawansowany element wyszukiwania miejsc wyświetli wyniki.
Żądanie wyszukiwania tekstu
Wpisz wyszukiwane hasło w polu do wprowadzania danych i kliknij przycisk Szukaj , aby uzyskać listę miejsc pasujących do tego hasła.
Wyszukiwanie tekstu jest skonfigurowane głównie do wyszukiwania za pomocą zapytania tekstowego i
lokalizacji, a wyniki można zawęzić według poziomu cen, oceny i tego, czy miejsce
jest obecnie otwarte. Wyniki można też sortować według odległości lub popularności
za pomocą właściwości rankPreference. Więcej informacji znajdziesz w dokumentacji referencyjnej klasy
PlaceTextSearchRequestElement.
Ten przykład wyświetla zaawansowany element wyszukiwania miejsc w odpowiedzi na tekst wpisany przez użytkownika. Wyświetla też element AdvancedPlaceDetailsCompactElement dla wybranego miejsca.
Aby dodać zaawansowany element wyszukiwania miejsc do mapy, dodaj do strony HTML element
gmp-advanced-place-search z zagnieżdżonym elementem
gmp-place-text-search-request.
<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>
Element input umożliwia użytkownikowi wpisanie tekstu wyszukiwania.
<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>
Gdy użytkownik kliknie przycisk Szukaj, zostanie uruchomiona funkcja wyszukiwania,
element gmp-place-text-search-request zostanie zaktualizowany, a
zaawansowany element wyszukiwania miejsc wyświetli wyniki.
Funkcje zaawansowane
Dostosowywanie przycisków działania
Dodaj przyciski działania jako elementy podrzędne w elemencie
<template slot="place-list-item"> zaawansowanego
komponentu wyszukiwania miejsc. W przypadku standardowych połączeń nawigacyjnych użyj elementu <gmp-place-link> i jawnie określ atrybut action. Opcjonalnie możesz określić atrybut slot. Prawidłowe
predefiniowane działania to open-website,
open-directions, open-map, i call. Jeśli
atrybut slot zostanie pominięty, domyślnie przyjmie wartość
action-main.
<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>Filtrowanie opinii i multimediów
Ten przykładowy kod wyświetla tylko multimedia i opinie, w których pojawia się słowo „kawa”.
<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>Konfigurowanie informacji o źródle miejsca
Aby skonfigurować informacje o źródle wizualnym, dodaj element
<gmp-place-attribution> , który będzie wyświetlać ogólne konfiguracje informacji o źródle danych z interfejsu Maps
API, takie jak źródło zdjęcia lub opinii.
Musisz go dodać jako bezpośredni element równorzędny elementu <template>.
Informacje o źródle umieszczone wewnątrz elementu <template> zostaną zignorowane.
<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>Obsługa wyboru miejsca i błędów
Gdy atrybut selectable jest obecny, możesz nasłuchiwać zdarzenia
gmp-select aby pobrać miejsce wybrane przez użytkownika. Możesz
też nasłuchiwać zdarzenia gmp-error, aby elegancko obsługiwać
sytuacje, w których nie można pobrać danych o miejscu.
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); });