Yer kimlikleri, Google Rehber veritabanında ve Google Haritalar'da bir yeri benzersiz bir şekilde tanımlar. Yer kimlikleri, aşağıdaki Haritalar API'lerine yapılan isteklerde kabul edilir:
- Geocoding API web hizmetinde ve Geocoding Service, Maps JavaScript API'de yer kimliği için adres alma.
- Routes API ve Directions API web hizmetinde ve Directions Service'te ve Maps JavaScript API'de başlangıç noktası, hedef ve ara ara noktaları belirtme.
- Rotalar API'si, Uzaklık Matrisi API'si web hizmeti ve Mesafe Matrisi Hizmeti'nde, Haritalar JavaScript API'sinde başlangıç ve varış noktalarını belirtme.
- Yerler API'si web hizmetinde, Android için Yerler SDK'sına, iOS için Yerler SDK'sına ve Yerler Kitaplığı'nda Yer Ayrıntıları Alma.
- Maps Embed API'de Yer Kimliği parametrelerini kullanma.
- Haritalar URL'lerinde arama sorgularını alma.
- Roads API'de hız sınırları görüntüleniyor.
- Sınırlar için veriye dayalı stilde sınır poligonları bulma ve bunların stil özelliklerini ayarlama.
Belirli bir yerin kimliğini bulma
Belirli bir yerin yer kimliğini mi arıyorsunuz? Bir yeri arayıp kimliğini öğrenmek için aşağıdaki yer kimliği bulucuyu kullanın:
Alternatif olarak, yer kimliği bulucuyu Maps JavaScript API dokümanlarındaki koduyla birlikte görüntüleyebilirsiniz.
Genel bakış
Yer kimliği, bir yeri benzersiz şekilde tanımlayan metin biçimli bir tanımlayıcıdır. Tanımlayıcının uzunluğu değişebilir (Yer Kimlikleri için maksimum uzunluk yoktur). Örnekler:
-
ChIJgUbEo8cfqokR5lP9_Wh_DaM
-
GhIJQWDl0CIeQUARxks3icF8U8A
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
-
IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ
Yer kimlikleri işletmeler, önemli noktalar, parklar ve kavşaklar dahil çoğu konum için kullanılabilir. Aynı yer veya konumun birden fazla farklı yer kimliği olabilir. Yer kimlikleri zaman içinde değişebilir.
Yerler API'sinde ve çeşitli Google Haritalar Platformu API'lerinde aynı yer kimliğini kullanabilirsiniz. Örneğin, Places API, Haritalar JavaScript API, Geocoding API, Haritalar Embed API ve Roads API'deki bir yere referans vermek için aynı yer kimliğini kullanabilirsiniz.
Yer kimliğini kullanarak yer ayrıntılarını alma
Yer kimliklerini kullanmanın yaygın bir yolu, bir yer aramak (örneğin, Maps JavaScript API'deki Places API'yi veya Maps JavaScript API'deki Yerler kitaplığını kullanarak) ve ardından yer ayrıntılarını almak için döndürülen yer kimliğini kullanmaktır. Yer kimliğini saklayabilir ve daha sonra aynı yer ayrıntılarını almak için kullanabilirsiniz. Yer kimliklerini kaydetme hakkında daha fazla bilgi edinin.
iOS için Yerler SDK'sını kullanma örneği
Yer kimliği, bir yeri benzersiz şekilde tanımlayan metin biçimli bir tanımlayıcıdır. iOS için Yerler SDK'sında bir yerin kimliğini GMSPlace
nesnesinden alabilirsiniz. Yer kimliğini depolayabilir ve GMSPlace
nesnesini daha sonra tekrar almak için kullanabilirsiniz.
Bir yeri kimliğe göre almak için aşağıdaki parametreleri ileterek GMSPlacesClient
fetchPlaceFromPlaceID:
çağrısı yapın:
- Yer Kimliği içeren bir dize.
- Döndürülecek veri türlerini belirten bir veya daha fazla
GMSPlaceField
. - Otomatik tamamlama sorgusunu sonlandırmak için çağrı yapılırsa oturum jetonu. Aksi takdirde geçersiz sayılır.
- Sonucu işlemek için
GMSPlaceResultCallback
.
API, bir GMSPlace
nesnesi ileterek, belirtilen geri çağırma yöntemini çağırır. Yer bulunamazsa, yer nesnesi boştur.
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]); } }];
Yer kimliklerini daha sonra kullanmak üzere kaydetme
Yer kimlikleri, Google Haritalar Platformu Hizmet Şartları Bölüm 3.2.3(b)'de belirtilen önbelleğe alma kısıtlamalarından muaftır. Böylece, yer kimliği değerlerini daha sonra kullanmak üzere saklayabilirsiniz.
Saklanan yer kimlikleri yenileniyor
12 aydan eski yer kimliklerini yenilemenizi öneririz. Yer kimliklerini ücretsiz olarak yenileyebilirsiniz. Bunun için, fields
parametresinde yalnızca GMSPlaceFieldPlaceID
alanını belirterek Yer Ayrıntısı isteği gönderebilirsiniz.
Bu çağrı,
Yer Ayrıntıları - Kimlik Yenileme
SKU'sunu tetikler. Ancak bu istek, NOT_FOUND
durum kodunu da döndürebilir. Stratejilerden biri, her bir yer kimliğini döndüren orijinal isteği depolamaktır. Bir yer kimliği geçersiz hale gelirse yeni sonuçlar almak için bu isteği yeniden gönderebilirsiniz. Bu sonuçlar, orijinal yeri içerebilir veya içermeyebilir. İstek ücretlidir.
Yer kimlikleri kullanılırken karşılaşılan hata kodları
INVALID_REQUEST
durum kodu, belirtilen yer kimliğinin geçerli olmadığını belirtiyor. INVALID_REQUEST
, yer kimliği kısaltıldığında veya başka bir şekilde değiştirildiğinde ve artık doğru olmadığında döndürülebilir.
NOT_FOUND
durum kodu, belirtilen yer kimliğinin eski olduğunu belirtir. Bir işletme kapanırsa veya yeni bir konuma taşınırsa yer kimliği geçerliliğini yitirebilir. Google Haritalar veritabanındaki büyük ölçekli güncellemeler nedeniyle yer kimlikleri değişebilir. Bu gibi durumlarda, bir yer yeni bir yer kimliği alabilir ve eski kimlik bir NOT_FOUND
yanıtı döndürür.
Özellikle, bazı yer kimliği türleri bazen NOT_FOUND
yanıtına neden olabilir veya API yanıtta farklı bir yer kimliği döndürebilir. Bu yer kimliği türleri şunları içerir:
- Google Haritalar'da kesin adres olarak yer almayan ancak çeşitli adres aralıklarından tahmin edilen açık adresler.
- İsteğin bir şehir veya yerel birim de belirttiği uzun bir rotanın segmentleri.
- Kesişmeler.
subpremise
türünde adres bileşeni olan yerler.
Bu kimlikler genellikle uzun bir dize biçimindedir (Yer Kimlikleri için maksimum uzunluk yoktur). Örneğin:
EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4