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 Geocoding API dan Geocoding Service, Maps JavaScript API.
- Menentukan titik jalan asal, tujuan, dan perantara di Routes API dan Directions API (Lama) serta Directions Service, Maps JavaScript API (Lama).
- Menentukan asal dan tujuan di Routes API dan Distance Matrix API (Lama) serta Distance Matrix Service, Maps JavaScript API (Lama).
- Mengambil Place Details di Places API (Baru), Places SDK for Android (Baru), Places SDK for iOS (Baru), 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 iOS
ID tempat adalah ID tekstual yang secara unik mengidentifikasi tempat. Di
Places SDK for iOS, Anda dapat mengambil ID tempat dari
objek
GMSPlace
. Anda dapat menyimpan ID tempat dan menggunakannya untuk mengambil objek GMSPlace
lagi nanti.
Untuk mendapatkan tempat berdasarkan ID, panggil
GMSPlacesClient
fetchPlaceFromPlaceID:
, dengan meneruskan parameter berikut:
- String yang berisi ID Tempat.
- Satu atau beberapa
GMSPlaceField
, yang menentukan jenis data yang akan ditampilkan. - Token sesi jika panggilan dilakukan untuk menyelesaikan kueri pelengkapan otomatis. Jika tidak, teruskan nil.
GMSPlaceResultCallback
untuk menangani hasilnya.
API memanggil metode callback yang ditentukan, dengan meneruskan objek
GMSPlace
. Jika tempat tidak ditemukan, objek tempat akan nol.
Places Swift SDK untuk iOS
// Initialize Places Swift Client. let placesClient = PlacesClient.shared // A hotel in Saigon with an attribution let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Fetch Place Request. let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.displayName] ) Task { switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): print("The selected place is: \(place.displayName): \(String(describing: place.description))") case .failure(let placesError): print("Place not found: \(placeID); \(placesError)") } }
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
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
Karena ID Tempat dapat berubah karena pembaruan pada database Google Maps, Google merekomendasikan untuk memperbarui ID tempat jika sudah lebih dari 12 bulan. Anda dapat memperbarui ID Tempat tanpa biaya dengan membuat
permintaan Place Details,
yang hanya menentukan kolom GMSPlaceFieldPlaceID
di parameter fields
.
Panggilan ini akan memicu SKU Places Details - ID Refresh.
Kode error saat menggunakan ID tempat
INVALID_REQUEST
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.
NOT_FOUND
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 juga 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
.
Untuk memuat ulang hasil jika ID tempat sudah tidak berlaku, simpan permintaan asli yang menampilkan setiap ID tempat dan terbitkan ulang permintaan sesuai kebutuhan. Perhatikan bahwa permintaan yang diterbitkan ulang ditagih dengan SKU yang sesuai.
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