Permintaan Nearby Search (Baru) mengambil sebagai input wilayah
untuk menelusuri yang ditetapkan sebagai lingkaran, yang didefinisikan oleh lintang dan bujur
koordinat titik tengah lingkaran dan radius dalam meter. Tujuan
permintaan akan menampilkan daftar tempat yang cocok, masing-masing diwakili oleh
Place
, dalam area penelusuran yang ditentukan.
Secara default, respons akan berisi semua jenis tempat dalam area penelusuran. Anda juga bisa memfilter respons dengan menentukan daftar jenis tempat untuk secara eksplisit sertakan dalam atau kecualikan dari respons. Misalnya, Anda dapat menentukan untuk hanya menyertakan tempat tersebut dalam respons yang berjenis "restaurant", "toko roti", dan "cafe", atau mengecualikan semua tempat yang berjenis "sekolah".
Permintaan Nearby Search (Baru)
Buat permintaan Nearby Search (Baru) dengan memanggil
PlacesClient.searchNearby
,
meneruskan
SearchNearbyRequest
yang mendefinisikan parameter permintaan.
Objek SearchNearbyRequest
menentukan semua atribut wajib dan opsional
parameter untuk permintaan. Parameter yang diperlukan mencakup:
- Daftar kolom yang akan ditampilkan dalam objek
Place
, yang juga dikenal sebagai mask kolom. Jika Anda tidak menentukan setidaknya satu {i>field<i} dalam daftar {i>field<i}, atau jika Anda menghilangkan daftar kolom, maka panggilan akan menampilkan error. - Pembatasan lokasi untuk area penelusuran, yang didefinisikan sebagai pasangan garis lintang/bujur dan nilai radius, dalam meter.
Contoh permintaan penelusuran terdekat ini menetapkan bahwa objek Place
respons
berisi kolom tempat Place.Field.ID
dan Place.Field.NAME
untuk masing-masing
Place
dalam hasil penelusuran. Ini juga memfilter respons ke hanya
kembalikan tempat dengan jenis "restaurant" dan "cafe", tetapi mengecualikan tempat jenis
"restoran_pizza" dan "American_restaurant".
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define the search area as a 1000 meter diameter circle in New York, NY. LatLng center = new LatLng(40.7580, -73.9855); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 1000); // Define a list of types to include. final List<String> includedTypes = Arrays.asList("restaurant", "cafe"); // Define a list of types to exclude. final List<String> excludedTypes = Arrays.asList("pizza_restaurant", "american_restaurant"); // Use the builder to create a SearchNearbyRequest object. final SearchNearbyRequest searchNearbyRequest = SearchNearbyRequest.builder(/* location restriction = */ circle, placeFields) .setIncludedTypes(includedTypes) .setExcludedTypes(excludedTypes) .setMaxResultCount(10) .build()); // Call placesClient.searchNearby() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchNearby(searchNearbyRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });
Respons Nearby Search (Baru)
Tujuan
SearchNearbyResponse
mewakili respons dari permintaan penelusuran. SearchNearbyResponse
objek berisi:
- Daftar objek
Place
yang mewakili semua tempat yang cocok, dengan satuPlace
objek per tempat yang cocok. - Setiap objek
Place
hanya berisi kolom yang ditentukan oleh daftar kolom yang diteruskan dalam permintaan.
Misalnya, dalam permintaan, Anda menentukan daftar kolom sebagai:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Daftar kolom ini berarti bahwa setiap objek Place
dalam respons hanya berisi
ID tempat dan nama setiap tempat yang cocok. Anda kemudian dapat menggunakan Place.getId()
dan Place.getName()
untuk mengakses kolom ini di setiap objek Place
.
Untuk contoh lain tentang cara mengakses data dalam objek Place
, lihat Mengakses Tempat
kolom data objek.
Parameter wajib
Gunakan
SearchNearbyRequest
untuk menentukan parameter yang diperlukan untuk penelusuran.
Daftar kolom
Saat meminta detail tempat, Anda harus menentukan data yang akan ditampilkan di Objek
Place
untuk tempat sebagai mask kolom. Untuk menentukan mask kolom, teruskan array nilai dariPlace.Field
ke objekSearchNearbyRequest
. Penyamaran kolom adalah praktik desain yang baik untuk memastikan bahwa Anda tidak meminta data yang tidak perlu, yang membantu menghindari waktu pemrosesan dan biaya penagihan yang tidak perlu.Tentukan satu atau beberapa kolom berikut:
Kolom berikut memicu Nearby Search (Dasar) SKU:
Place.Field.ADDRESS_COMPONENTS
,Place.Field.BUSINESS_STATUS
,Place.Field.ADDRESS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.LAT_LNG
,Place.Field.PHOTO_METADATAS
,Place.Field.PLUS_CODE
,Place.Field.ID
,Place.Field.NAME
,Place.Field.TYPES
,Place.Field.UTC_OFFSET
,Place.Field.VIEWPORT
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
Kolom berikut memicu Nearby Search (Lanjutan) SKU:
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.SECONDARY_OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.OPENING_HOURS
,Place.Field.USER_RATINGS_TOTAL
,Place.Field.WEBSITE_URI
Kolom berikut memicu Nearby Search (Lebih disukai) SKU:
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.RESERVABLE
,Place.Field.REVIEWS
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
Untuk menetapkan parameter daftar kolom, panggil metode
setPlaceFields()
saat membangun objekSearchNearbyRequest
.Contoh berikut mendefinisikan daftar dua nilai {i>field<i} untuk menentukan bahwa Objek
Place
yang ditampilkan oleh permintaan berisiPlace.Field.ID
dan KolomPlace.Field.NAME
:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Pembatasan lokasi
J
LocationRestriction
objek yang mendefinisikan wilayah yang akan ditelusuri, ditetapkan sebagai sebuah lingkaran, yang didefinisikan oleh titik pusat dan radius dalam meter. Radius harus antara lebih besar dari 0,0 dan kurang dari atau sama dengan 50000,0, mengingat bahwa menentukan radius yang terlalu kecil akan tampilkanZERO_RESULTS
sebagai respons.Untuk menetapkan parameter pembatasan lokasi, panggil metode
setLocationRestriction()
saat membangun objekSearchNearbyRequest
.
Parameter opsional
Gunakan
SearchNearbyRequest
guna menetapkan parameter opsional untuk penelusuran.
-
Jenis dan jenis primer
Memungkinkan Anda menentukan daftar jenis dari jenis Tabel A digunakan untuk memfilter hasil penelusuran. Maksimal 50 jenis dapat ditentukan dalam setiap kategori pembatasan jenis.
Sebuah tempat hanya dapat memiliki satu jenis utama dari beberapa jenis Tabel A yang terkait dengan anotasi. Misalnya, tipe utama mungkin
"mexican_restaurant"
atau"steak_house"
. GunakanincludedPrimaryTypes
danexcludedPrimaryTypes
untuk memfilter hasil tipe utama tempat.Tempat juga dapat memiliki beberapa nilai jenis dari jenis Tabel A yang terkait dengannya. Misalnya, restoran mungkin memiliki jenis berikut:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
. GunakanincludedTypes
danexcludedTypes
untuk memfilter hasil pada daftar jenis yang terkait dengan di suatu tempat.Saat Anda menentukan jenis primer umum, seperti
"restaurant"
atau"hotel"
, respons dapat berisi tempat dengan jenis utama yang spesifik dari yang ditentukan. Misalnya, Anda menentukan untuk menyertakan jenis utama"restaurant"
. Responsnya kemudian dapat berisi tempat dengan jenis utama"restaurant"
, tetapi respons juga dapat berisi tempat dengan jenis utama yang lebih spesifik, seperti"chinese_restaurant"
atau"seafood_restaurant"
.Jika penelusuran ditentukan dengan beberapa pembatasan jenis, hanya tempat yang memenuhi semua batasan akan ditampilkan. Misalnya, jika Anda menentukan
includedTypes = Arrays.asList("restaurant")
danexcludedPrimaryTypes = Arrays.asList("steak_house")
, tempat yang ditampilkan menyediakan layanan terkait"restaurant"
, tetapi tidak beroperasi secara utama sebagai"steak_house"
.Untuk contoh cara menggunakan
includedTypes
danexcludedTypes
, lihat Permintaan Nearby Search (Baru).Jenis yang disertakan
Daftar jenis tempat dari Tabel A yang akan ditelusuri. Jika parameter ini dihilangkan, semua jenis tempat akan ditampilkan.
Untuk menetapkan parameter jenis yang disertakan, panggil metode
setIncludedTypes()
saat membuat objekSearchNearbyRequest
.Jenis yang dikecualikan
Daftar jenis tempat dari Tabel A yang akan dikecualikan dari cari.
Jika Anda menentukan
includedTypes
(seperti"school"
) danexcludedTypes
(seperti"primary_school"
) dalam permintaan, lalu menyertakan tempat yang dikategorikan sebagai"school"
, tetapi bukan sebagai"primary_school"
. Respons mencakup tempat yang cocok dengan setidaknya salah satu dariincludedTypes
dan tidak satu pun dariexcludedTypes
.Jika ada jenis yang bertentangan, seperti jenis yang muncul di kedua
includedTypes
danexcludedTypes
, errorINVALID_REQUEST
akan ditampilkan.Untuk menetapkan parameter jenis yang dikecualikan, panggil metode
setExcludedTypes()
saat membuat objekSearchNearbyRequest
.Jenis utama yang disertakan
Daftar jenis tempat utama dari Tabel A yang akan disertakan dalam penelusuran.
Untuk menetapkan parameter jenis utama yang disertakan, panggil metode
setIncludedPrimaryTypes()
saat membuat objekSearchNearbyRequest
.Jenis utama yang dikecualikan
Daftar jenis tempat utama dari Tabel A yang akan dikecualikan dari penelusuran.
Jika ada jenis utama yang bertentangan, seperti jenis yang muncul di kedua
includedPrimaryTypes
danexcludedPrimaryTypes
,INVALID_ARGUMENT
error yang ditampilkan.Untuk menetapkan parameter jenis utama yang dikecualikan, panggil metode
setExcludedPrimaryTypes()
saat membuat objekSearchNearbyRequest
. -
Jumlah hasil maksimum
Menentukan jumlah maksimum hasil tempat yang akan ditampilkan. Harus antara 1 dan 20 (default) inklusif.
Untuk menetapkan parameter jumlah hasil maksimum, panggil metode
setMaxResultCount()
saat membuat objekSearchNearbyRequest
. -
Preferensi peringkat
Jenis peringkat yang akan digunakan. Jika parameter ini dihilangkan, hasil akan diurutkan berdasarkan popularitas. Mungkin berupa salah satu dari hal berikut:
POPULARITY
(default) Mengurutkan hasil berdasarkan popularitasnya.DISTANCE
Mengurutkan hasil dalam urutan menaik berdasarkan jaraknya dari lokasi yang ditentukan.
Untuk menetapkan parameter preferensi peringkat, panggil metode
setRankPreference()
saat membuat objekSearchNearbyRequest
. -
Kode wilayah
Kode wilayah yang digunakan untuk memformat respons, yang ditetapkan sebagai kode CLDR dua karakter. Tidak ada nilai default.
Jika nama negara kolom
formattedAddress
dalam respons cocok denganregionCode
, kode negara dihilangkan dariformattedAddress
.Sebagian besar kode CLDR identik dengan kode ISO 3166-1, dengan beberapa pengecualian. Misalnya, ccTLD Inggris Raya adalah "uk" (.co.uk) sedangkan kode ISO 3166-1-nya adalah "gb" (secara teknis untuk entitas "Inggris Raya dan Irlandia Utara"). Parameter ini dapat memengaruhi hasil berdasarkan hukum yang berlaku.
Untuk menetapkan parameter kode wilayah, panggil metode
setRegionCode()
saat membuat objekSearchNearbyRequest
.
Menampilkan atribusi dalam aplikasi Anda
Saat aplikasi Anda menampilkan informasi yang diperoleh dari
PlacesClient
,
seperti foto dan ulasan, aplikasi juga harus menampilkan atribusi yang diperlukan.
Untuk informasi selengkapnya, lihat Kebijakan untuk Places SDK untuk Android.