AdvancedPlaceSearchElement
adalah elemen HTML yang merender hasil penelusuran tempat dalam daftar. Ada dua cara untuk mengonfigurasi elemen gmp-advanced-place-search:
-
Untuk menelusuri tempat dengan jenis tertentu di area tertentu, gunakan
permintaan penelusuran di sekitar untuk merender hasil penelusuran menggunakan
PlaceNearbySearchRequestElement. -
Untuk menelusuri tempat di area tertentu berdasarkan kueri teks, gunakan
permintaan penelusuran menurut teks untuk merender
hasil penelusuran menggunakan
PlaceTextSearchRequestElement.
Penelusuran di sekitar dan penelusuran menurut teks menawarkan fitur lanjutan yang sama, termasuk menyesuaikan tombol tindakan, memfilter ulasan dan media, mengonfigurasi atribusi Tempat, serta menangani pemilihan dan error tempat.
Permintaan penelusuran di sekitar
Pilih jenis tempat dari menu untuk melihat hasil penelusuran di sekitar untuk jenis tempat tersebut.
Penelusuran di sekitar terutama dikonfigurasi untuk menelusuri menurut jenis dan lokasi tempat,
dan hasilnya dapat diberi peringkat berdasarkan jarak atau popularitas menggunakan properti rankPreference. Lihat dokumentasi referensi class
PlaceNearbySearchRequestElement
untuk mengetahui detail selengkapnya.
Contoh ini merender elemen Penelusuran Tempat Lanjutan sebagai respons terhadap penelusuran di sekitar dengan jenis tempat yang dipilih pengguna. Contoh ini juga menampilkan AdvancedPlaceDetailsCompactElement untuk tempat yang dipilih.
Untuk menambahkan elemen Penelusuran Tempat Lanjutan ke peta, tambahkan
gmp-advanced-place-search elemen dengan
gmp-place-nearby-search-request elemen bertingkat ke halaman HTML.
<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>
Elemen select memungkinkan pengguna memilih jenis tempat dari
menu. Untuk mempermudah, hanya tiga jenis tempat yang tercantum: restoran, kafe,
dan stasiun pengisian daya kendaraan listrik.
<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>
Saat pengguna memilih jenis tempat dari menu, elemen
gmp-place-nearby-search-request akan diperbarui, dan elemen
Penelusuran Tempat Lanjutan akan menampilkan hasilnya.
Permintaan penelusuran menurut teks
Masukkan istilah penelusuran di kolom input, lalu klik tombol Telusuri untuk mendapatkan daftar tempat yang cocok dengan istilah tersebut.
Penelusuran menurut teks terutama dikonfigurasi untuk menelusuri menggunakan kueri teks dan
lokasi, dan hasilnya dapat disaring berdasarkan tingkat harga, rating, dan apakah tempat tersebut
saat ini buka. Hasil juga dapat diberi peringkat berdasarkan jarak atau popularitas
menggunakan properti rankPreference. Lihat dokumentasi referensi class
PlaceTextSearchRequestElement
untuk mengetahui detail selengkapnya.
Contoh ini merender elemen Penelusuran Tempat Lanjutan sebagai respons terhadap input teks pengguna. Contoh ini juga menampilkan AdvancedPlaceDetailsCompactElement untuk tempat yang dipilih.
Untuk menambahkan elemen Place Search Lanjutan ke peta, tambahkan elemen
gmp-advanced-place-search dengan elemen
gmp-place-text-search-request bertingkat ke halaman HTML.
<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>
Elemen input memungkinkan pengguna memasukkan teks penelusuran.
<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>
Saat pengguna mengklik tombol Telusuri, fungsi penelusuran akan dijalankan,
elemen gmp-place-text-search-request akan diperbarui, dan
elemen Place Search Lanjutan akan menampilkan hasilnya.
Fitur lanjutan
Menyesuaikan tombol tindakan
Tambahkan tombol tindakan sebagai turunan di dalam elemen
<template slot="place-list-item"> dari komponen Place Search Lanjutan. Gunakan <gmp-place-link> untuk koneksi navigasi standar, dan tentukan atribut action
secara eksplisit. Anda dapat secara opsional menentukan atribut slot. Tindakan standar yang valid adalah open-website,
open-directions, open-map, dan call. Jika
atribut slot dihilangkan, nilai defaultnya adalah
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>Memfilter ulasan dan media
Contoh kode ini hanya menampilkan media dan ulasan yang menyebutkan "kopi".
<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>Mengonfigurasi atribusi Tempat
Untuk mengonfigurasi atribusi visual, tambahkan elemen
<gmp-place-attribution> untuk menampilkan konfigurasi atribusi data Maps
API menyeluruh, seperti sumber foto atau ulasan.
Elemen ini harus ditambahkan sebagai kerabat langsung dari <template>.
Atribusi yang ditempatkan di dalam elemen <template> akan diabaikan.
<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>Menangani pemilihan dan error tempat
Jika atribut selectable ada, Anda dapat memproses peristiwa
gmp-select untuk mengambil tempat yang dipilih pengguna. Anda juga dapat memproses peristiwa gmp-error untuk menangani skenario dengan baik saat data tempat gagal diambil.
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); });