Yer kimlikleri

Platform seçin: Android iOS JavaScript Web Hizmeti

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 Coğrafi Kodlama Hizmeti, Maps JavaScript API'de yer kimliği için adres alma.
  • Routes API ve Directions API web hizmetinde ve Yol Tarifi Hizmeti, Maps JavaScript API'de başlangıç, hedef ve ara ara noktaları belirtme.
  • Rotalar API'sinde ve Mesafe Matrisi API'si web hizmetinde ve Mesafe Matrisi Hizmeti'nde, Maps JavaScript API'de başlangıç noktalarını ve hedefleri belirtme.
  • Yerler API'si web hizmetinde, Android için Yerler SDK'sı, iOS için Yerler SDK'sı ve Yerler Kitaplığı'nda Yer Ayrıntıları alınıyor.
  • Maps Embed API'de Yer Kimliği parametrelerini kullanma.
  • Haritalar URL'lerinden arama sorgularını alma.
  • Roads API'de hız sınırları gösteriliyor.
  • Sınırlar için veriye dayalı stilde sınır poligonlarını bulma ve stil özelliklerini ayarlama.

Belirli bir yerin kimliğini bulma

Belirli bir yerin yer kimliğini mi arıyorsunuz? Bir yeri aramak ve kimliğini öğrenmek için aşağıdaki yer kimliği bulucuyu kullanın:

Alternatif olarak, Maps JavaScript API dokümanlarındaki koduyla birlikte yer kimliği bulucuyu 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şiklik gösterebilir (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 olmak üzere çoğu konum için kullanılabilir. Aynı yer veya konum için birden fazla 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, Maps 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ı alın

Yer kimliklerini kullanmanın yaygın bir yolu, bir yer aramak (örneğin, Maps JavaScript API'deki Places API'yi veya 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 depolayabilir ve daha sonra aynı yer ayrıntılarını almak için kullanabilirsiniz. Aşağıdan yer kimliklerini kaydetme hakkında bilgi edinebilirsiniz.

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ıldıysa oturum jetonu. Aksi takdirde boş bırakın.
  • 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 kaydedin

Yer kimlikleri, Google Haritalar Platformu Hizmet Şartları'nın Bölüm 3.2.3(b)'sinde belirtilen önbelleğe alma kısıtlamalarından muaftır. Bu nedenle, yer kimliği değerlerini daha sonra kullanmak üzere saklayabilirsiniz.

Saklanan yer kimlikleri yenileniyor

12 aydan eski olan yer kimliklerini yenilemenizi öneririz. Yer Ayrıntısı isteği oluşturup fields parametresinde yalnızca GMSPlaceFieldPlaceID alanını belirterek Yer Kimliklerini ücretsiz yenileyebilirsiniz. Bu çağrı, Yer Ayrıntıları - Kimlik Yenileme SKU'sunu tetikler.

Bu istek, NOT_FOUND durum kodu 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. Ancak bu istek ücretlidir.

Yer kimlikleri kullanılırken karşılaşılan hata kodları

INVALID_REQUEST durum kodu, belirtilen yer kimliğinin geçerli olmadığını belirtir. Yer kimliği kısaltıldığında veya başka bir şekilde değiştirildiğinde ve artık doğru olmadığında INVALID_REQUEST 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 tür 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 farklı bir yer kimliği döndürebilir. Bu yer kimliği türleri şunlardır:

  • Google Haritalar'da kesin adres olarak var olmayan ancak bir adres aralığından belirlenen açık adresler.
  • Uzun bir rotanın, istekte bir şehir veya konum da belirtildiği segmentlerdir.
  • 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