Place Search memperkenalkan Text Search (Baru) yang menerima kueri teks dan menampilkan serangkaian tempat.
Text Search (Baru)
Text Search (Baru) menampilkan informasi tentang serangkaian tempat berdasarkan suatu string — misalnya "pizza di Bandung" atau "toko sepatu di dekat Solo" atau "Jl. Rajawali 3". Layanan ini merespons dengan daftar tempat yang cocok dengan string teks dan bias lokasi yang telah ditetapkan. Text Search (Baru) memungkinkan Anda menelusuri tempat berdasarkan jenis, memfilter menggunakan kriteria seperti jam buka dan rating, serta membatasi atau membiaskan hasil ke lokasi tertentu. Text Search (Baru) adalah fitur yang sepenuhnya baru, serta menawarkan performa dan kualitas data yang lebih baik dibandingkan dengan Places API yang lama.
Prasyarat
Untuk menggunakan Text Search (Baru), Anda harus mengaktifkan "Places API (Baru)" di project Google Cloud Anda. Lihat bagian Memulai untuk mengetahui detailnya.
Sorotan Text Search
Text Search (Baru) memiliki peningkatan berikut:
- Filter penelusuran tambahan, yang menawarkan banyak jenis tempat baru serta kemampuan untuk memfilter berdasarkan rating minimum.
- Penyamaran kolom kini didukung.
- Kolom Tempat kini mencakup rating dan ulasan.
Menemukan tempat berdasarkan kueri teks
Panggil searchByText
untuk menampilkan daftar tempat dari kueri teks atau nomor telepon. Jika kuerinya berisi nomor telepon, parameter region harus ditetapkan ke region yang sama dengan region domain yang mengirimkan permintaan. Misalnya, jika Anda menggunakan nomor telepon untuk menelusuri sebuah tempat di Jepang, dan domain yang mengirimkan permintaan adalah jp
, Anda harus menetapkan parameter region
ke 'jp'. Jika region
dihapus dari permintaan, API secara default akan ditetapkan ke region Amerika Serikat ('us').
Gunakan parameter fields
untuk menentukan daftar yang dipisahkan koma yang berisi satu atau beberapa kolom data dalam format camel case.
Contoh berikut menunjukkan pemanggilan searchByText
untuk menemukan tempat berdasarkan kueri teks.
TypeScript
let map; let center; async function initMap() { const { Map } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; center = {lat: 37.4161493, lng: -122.0812166}; map = new Map(document.getElementById('map') as HTMLElement, { center: center, zoom: 14, // ... }); findPlaces(); } async function findPlaces() { const { Place } = await google.maps.importLibrary("places") as google.maps.PlacesLibrary; //@ts-ignore const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; const request = { textQuery: 'Tacos in Mountain View', fields: ['displayName', 'location', 'businessStatus'], includedType: 'restaurant', isOpenNow: true, language: 'en-US', maxResultCount: 7, minRating: 3.2, region: 'us', useStrictTypeFiltering: false, }; //@ts-ignore const { places } = await Place.searchByText(request); if (places.length) { console.log(places); const { LatLngBounds } = await google.maps.importLibrary("core") as google.maps.CoreLibrary; const bounds = new LatLngBounds(); // Loop through and get all the results. places.forEach((place) => { const markerView = new AdvancedMarkerElement({ map, position: place.location, title: place.displayName, }); bounds.extend(place.location); console.log(place); }); map.setCenter(bounds.getCenter()); } else { console.log('No results'); } } initMap();
JavaScript
let map; let center; async function initMap() { const { Map } = await google.maps.importLibrary("maps"); center = { lat: 37.4161493, lng: -122.0812166 }; map = new Map(document.getElementById("map"), { center: center, zoom: 14, // ... }); findPlaces(); } async function findPlaces() { const { Place } = await google.maps.importLibrary("places"); //@ts-ignore const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); const request = { textQuery: "Tacos in Mountain View", fields: ["displayName", "location", "businessStatus"], includedType: "restaurant", isOpenNow: true, language: "en-US", maxResultCount: 7, minRating: 3.2, region: "us", useStrictTypeFiltering: false, }; //@ts-ignore const { places } = await Place.searchByText(request); if (places.length) { console.log(places); const { LatLngBounds } = await google.maps.importLibrary("core"); const bounds = new LatLngBounds(); // Loop through and get all the results. places.forEach((place) => { const markerView = new AdvancedMarkerElement({ map, position: place.location, title: place.displayName, }); bounds.extend(place.location); console.log(place); }); map.setCenter(bounds.getCenter()); } else { console.log("No results"); } } initMap();