ID tempat secara unik mengidentifikasi tempat di database Google Places dan Google Maps. ID tempat diterima dalam permintaan ke Maps API berikut:
- Mengambil alamat untuk ID Tempat di layanan web Geocoding API dan Geocoding Service, Maps JavaScript API.
- Menentukan titik jalan asal, tujuan, dan perantara di layanan web Routes API dan Directions API serta Directions Service, Maps JavaScript API.
- Menentukan asal dan tujuan di layanan web Routes API dan Distance Matrix API serta Distance Matrix Service, Maps JavaScript API.
- Mengambil Place Details di layanan web Places API, Places SDK for Android, Places SDK for iOS, dan Places Library.
- Menggunakan parameter Place ID di Maps Embed API.
- Mengambil kueri penelusuran di URL Maps.
- Menampilkan batas kecepatan di Roads API.
- Menemukan dan menata gaya poligon batas dalam gaya visual berbasis data untuk batas.
Menemukan ID tempat tertentu
Anda mencari ID tempat tertentu? Gunakan pencari ID tempat di bawah ini untuk menelusuri tempat dan mendapatkan ID-nya:
Atau, Anda dapat melihat pencari ID tempat beserta kodenya dalam dokumentasi Maps JavaScript API.
Ringkasan
ID tempat adalah ID tekstual yang secara unik mengidentifikasi tempat. Panjang ID dapat bervariasi (tidak ada panjang maksimum untuk ID Tempat). Contoh:
-
ChIJgUbEo8cfqokR5lP9_Wh_DaM
-
GhIJQWDl0CIeQUARxks3icF8U8A
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
-
IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ
ID Tempat tersedia untuk sebagian besar lokasi, termasuk lokasi bisnis, tempat terkenal, taman, dan persimpangan. Tempat atau lokasi yang sama dapat memiliki beberapa ID tempat yang berbeda. ID tempat dapat berubah seiring waktu.
Anda dapat menggunakan ID tempat yang sama di seluruh Places API dan sejumlah Google Maps Platform API. Misalnya, Anda dapat menggunakan ID tempat yang sama untuk mereferensikan tempat dalam Places API, Maps JavaScript API, Geocoding API, Maps Embed API, dan Roads API.
Mengambil detail tempat menggunakan ID tempat
Cara umum untuk menggunakan ID tempat adalah dengan menelusuri suatu tempat (menggunakan Places API atau Library Tempat di Maps JavaScript API, misalnya) lalu menggunakan ID tempat yang ditampilkan untuk mengambil detail tempat. Anda juga bisa menyimpan ID tempat dan menggunakannya untuk mengambil detail tempat yang sama nanti. Baca cara menyimpan ID tempat di bawah.
Contoh penggunaan Places SDK for Android
Di Places SDK for Android, Anda bisa mengambil ID tempat dengan
menelepon
Place.getId()
Tujuan
Layanan Place Autocomplete
juga mengembalikan ID tempat untuk setiap tempat yang cocok dengan kueri penelusuran yang diberikan
dan filter. Gunakan ID tempat untuk mengambil
Place
objek lagi nanti.
Untuk mendapatkan tempat menurut ID, panggil
PlacesClient.fetchPlace()
,
meneruskan FetchPlaceRequest
.
API menampilkan
FetchPlaceResponse
di
Task
.
Tujuan
FetchPlaceResponse
berisi
Place
yang cocok dengan ID tempat yang diberikan.
Contoh kode berikut menunjukkan pemanggilan fetchPlace()
ke
mendapatkan detail untuk tempat yang ditentukan.
Kotlin
// Define a Place ID. val placeId = "INSERT_PLACE_ID_HERE" // Specify the fields to return. val placeFields = listOf(Place.Field.ID, Place.Field.NAME) // Construct a request object, passing the place ID and fields array. val request = FetchPlaceRequest.newInstance(placeId, placeFields) placesClient.fetchPlace(request) .addOnSuccessListener { response: FetchPlaceResponse -> val place = response.place Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}") }.addOnFailureListener { exception: Exception -> if (exception is ApiException) { Log.e(TAG, "Place not found: ${exception.message}") val statusCode = exception.statusCode TODO("Handle error with given status code") } }
Java
// Define a Place ID. final String placeId = "INSERT_PLACE_ID_HERE"; // Specify the fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Construct a request object, passing the place ID and fields array. final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields); placesClient.fetchPlace(request).addOnSuccessListener((response) -> { Place place = response.getPlace(); Log.i(TAG, "Place found: " + place.getName()); }).addOnFailureListener((exception) -> { if (exception instanceof ApiException) { final ApiException apiException = (ApiException) exception; Log.e(TAG, "Place not found: " + exception.getMessage()); final int statusCode = apiException.getStatusCode(); // TODO: Handle error with given status code. } });
Menyimpan ID tempat untuk digunakan nanti
ID tempat dikecualikan dari pembatasan penyimpanan cache yang disebutkan di Pasal 3.2.3(b) dalam Persyaratan Layanan Google Maps Platform. Oleh karena itu, Anda dapat menyimpan nilai ID tempat untuk digunakan nanti.
Memperbarui ID tempat tersimpan
Sebaiknya perbarui ID tempat jika sudah lebih dari 12 bulan. Anda dapat memperbarui ID Tempat tanpa biaya, dengan membuat permintaan Place Details, dan menentukan hanya kolom Place.Field.ID
di parameter fields
.
Panggilan ini akan memicu SKU Places Details - ID Refresh.
Permintaan ini mungkin juga menampilkan status NOT_FOUND
pada kode sumber. Salah satu strateginya adalah dengan menyimpan permintaan asli yang menampilkan setiap ID tempat. Jika ID tempat menjadi tidak valid, Anda dapat menerbitkan ulang permintaan tersebut untuk mendapatkan hasil yang baru. Hasil ini mungkin menyertakan atau tidak menyertakan tempat asli. Namun, permintaan ini
dapat dikenakan biaya.
Kode error saat menggunakan ID tempat
Kode status INVALID_REQUEST
menunjukkan bahwa ID tempat yang ditentukan tidak valid. INVALID_REQUEST
dapat ditampilkan jika ID tempat terpotong atau diubah, dan tidak lagi tepat.
Kode status NOT_FOUND
menunjukkan bahwa ID tempat yang ditentukan sudah tidak digunakan lagi. ID tempat mungkin sudah tidak berlaku jika bisnis tutup atau pindah ke lokasi baru. ID Tempat dapat berubah karena pembaruan skala besar pada database Google Maps. Dalam kasus seperti itu, tempat dapat menerima ID tempat baru, dan ID lama akan menampilkan respons NOT_FOUND
.
Secara khusus, beberapa jenis ID tempat terkadang dapat menyebabkan respons NOT_FOUND
, atau API dapat menampilkan ID tempat yang berbeda dalam respons. Jenis ID tempat ini meliputi:
- Alamat yang tidak ada di Google Maps sebagai alamat akurat, tetapi diambil dari rentang alamat.
- Segmen dari rute yang panjang, dengan permintaan juga menentukan kota atau lokalitas.
- Persimpangan.
- Tempat dengan komponen alamat jenis
subpremise
.
ID ini sering berbentuk string panjang (tidak ada panjang maksimum untuk ID Tempat). Contoh:
EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4