ID Tempat

Pilih platform: Android iOS JavaScript Layanan Web

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 dapat mengambil ID tempat dengan memanggil Place.getId(). Layanan Place Autocomplete juga menampilkan ID tempat untuk setiap tempat yang cocok dengan kueri penelusuran dan filter yang diberikan. Gunakan ID tempat untuk mengambil objek Place lagi nanti.

Untuk mendapatkan tempat berdasarkan ID, panggil PlacesClient.fetchPlace(), dengan meneruskan FetchPlaceRequest.

API menampilkan FetchPlaceResponse dalam Task. FetchPlaceResponse berisi objek Place yang cocok dengan ID tempat yang disediakan.

Contoh kode berikut menunjukkan pemanggilan fetchPlace() untuk mendapatkan detail 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 kode status NOT_FOUND. 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 dikenai 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 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