Ringkasan migrasi

Panduan ini menyoroti perbedaan utama antara layanan Places lama dan class Place baru. Mengupgrade ke class Place menawarkan keunggulan yang signifikan, termasuk peningkatan performa dan model harga baru. Untuk mendapatkan hasil maksimal dari Places dan memastikan aplikasi Anda sudah yang terbaru, pahami perubahan yang dijelaskan dalam panduan ini.

Mengaktifkan Places API

Class Place mengandalkan layanan Places API. Untuk menggunakan fitur class Place baru, Anda harus mengaktifkan Places API (Baru) di project Google Cloud terlebih dahulu. Untuk informasi selengkapnya, lihat Memulai.

Perubahan umum

Tabel berikut mencantumkan beberapa perbedaan utama antara PlacesService dan Place:

PlacesService (Lama) Place (Baru)
Metode memerlukan penggunaan callback untuk menangani objek hasil dan respons google.maps.places.PlacesServiceStatus. Menggunakan Promise, dan berfungsi secara asinkron.
Metode memerlukan pemeriksaan PlacesServiceStatus. Tidak diperlukan pemeriksaan status, dapat menggunakan penanganan error standar.
Kolom data tempat diformat menggunakan snake case. Kolom data tempat diformat menggunakan camel case.
Dibatasi pada kumpulan tetap jenis tempat dan kolom data tempat. Memberikan pilihan yang diperluas untuk jenis tempat dan kolom data tempat yang diperbarui secara berkala.

Perubahan khusus API

Class Place menyediakan API untuk menggunakan library Places, dan mendukung pola penggunaan modern seperti Promise. Class Place mengekspos kolom data tempat dan jenis tempat yang sama dengan Layanan Places lama, dan menyertakan banyak nilai baru untuk kolom data tempat dan jenis tempat.

Tabel ini menunjukkan cara fitur layanan Places dipetakan ke fitur class Place:

Layanan Places (Lama) Class Tempat (Baru)
Kolom Data Tempat Kolom Data Class Place
Jenis Tempat Jenis Tempat
PlacesService.findPlaceFromQuery() Place.searchByText()
PlacesService.findPlaceFromPhoneNumber() Place.searchByText()
PlacesService.textSearch() Place.searchByText()
PlacesService.nearbySearch() Place.searchNearby()
PlacesService.getDetails() Place.fetchFields()
Places.AutocompletionRequest Places.AutocompleteRequest
Places.AutocompletePrediction Places.PlacePrediction
Class Autocomplete Class PlaceAutocompleteElement
Class SearchBox ---

Memuat library Places

Cara aplikasi memuat library Places bergantung pada loader bootstrap yang digunakan. Jika aplikasi Anda menggunakan impor library dinamis, Anda dapat memuat library yang diperlukan saat runtime menggunakan operator await untuk memanggil importLibrary(), seperti yang ditunjukkan di sini:

const { Place } = await google.maps.importLibrary("places");

Jika aplikasi Anda menggunakan tag pemuatan skrip langsung, minta library places dalam skrip loader:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

Pelajari lebih lanjut cara memuat Maps JavaScript API.

Bagian ini menyertakan panduan berikut untuk membantu Anda memigrasikan aplikasi agar dapat menggunakan Places API versi terbaru: