Yer kimlikleri

Platform seçin: Android iOS JavaScript Web Hizmeti

Yer kimlikleri, bir yeri Google Rehber veritabanında ve Google Haritalar'da benzersiz bir şekilde tanımlar. Yer kimlikleri, aşağıdaki Haritalar API'lerine yapılan isteklerde kabul edilir:

  • Geocoding API web hizmetinde ve Geocoding Hizmeti, Maps JavaScript API'de bir Yer Kimliği için adres alma.
  • Directions API web hizmetinde ve Directions Service'te Maps JavaScript API'de kaynak, hedef ve ara yol noktalarını belirtme.
  • Mesafe Matrisi API web hizmetinde ve Mesafe Matrisi Hizmeti'nde, Haritalar JavaScript API'sinde kalkış ve varış noktalarını belirtme.
  • Yerler API'si Yerler web hizmeti, Android için Yerler SDK'sı, iOS için Yerler SDK'sı ve Yerler Kitaplığı'nda Yer Ayrıntıları alınıyor.
  • Maps Yerleştirme API'sinde Yer Kimliği parametrelerini kullanma.
  • Haritalar URL'lerinde arama sorguları alınıyor.
  • 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 uygulama.

Belirli bir yerin kimliğini bulma

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

Alternatif olarak, Haritalar JavaScript API'si dokümanlarındaki yer kimliği bulucuyu kodlarıyla görüntüleyebilirsiniz.

Genel bakış

Yer kimliği, bir yeri benzersiz şekilde tanımlayan metin tanımlayıcısı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 olmak üzere çoğu konum için kullanılabilir. Bir yer veya konumun birden fazla farklı yer kimliği olabilir. Yer kimlikleri zamanla değişebilir.

Yerler API'sinde ve çeşitli Google Haritalar Platformu API'lerinde aynı yer kimliğini kullanabilirsiniz. Örneğin, Places API, Maps JavaScript API, Geocoding API, Maps Yerleştirme API'si ve Roads API'de bir yere referans vermek için aynı yer kimliğini kullanabilirsiniz.

Yer kimliğini kullanarak yer ayrıntılarını alma

Yer kimlikleri, Google Haritalar Platformu Hizmet Şartları'nın Bölüm 3.2.3(b)'de belirtilen önbelleğe alma kısıtlamalarından muaftır. Bir yerin yer kimliğini tanımladıktan sonra, söz konusu yeri tekrar aradığınızda bu değeri yeniden kullanabilirsiniz. Daha fazla bilgi için aşağıdaki Yer kimliklerini daha sonra kullanmak için kaydetme bölümüne bakın.

Yer kimliklerini kullanmanın yaygın bir yolu, bir yer aramak (örneğin, Maps JavaScript API'deki Places API veya Places kitaplığını kullanarak) ve ardından döndürülen yer kimliğini kullanarak yer ayrıntılarını almaktır. Yer kimliğini depolayabilir ve aynı yer ayrıntılarını daha sonra almak için kullanabilirsiniz. Aşağıda yer kimliklerini kaydetme hakkında bilgi edinin.

Android için Yerler SDK'sını kullanma örneği

Android için Yerler SDK'sında, Place.getId() işlevini arayarak bir yerin kimliğini alabilirsiniz. Otomatik Yer Tamamlama hizmeti de sağlanan arama sorgusu ve filtreyle eşleşen her bir yer için bir yer kimliği döndürür. Place nesnesini daha sonra geri almak için yer kimliğini kullanın.

Bir yeri kimliğe göre almak için PlacesClient.fetchPlace() numaralı telefonu FetchPlaceRequest aralığından geçirin.

API, Task içerisinde FetchPlaceResponse değeri döndürür. FetchPlaceResponse, sağlanan yer kimliğiyle eşleşen bir Place nesnesi içerir.

Aşağıdaki kod örneği, belirtilen yerle ilgili ayrıntıları almak için fetchPlace() yöntemini çağırmayı göstermektedir.

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.
    }
});

      

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")
        }
    }

      

Yer kimliklerini daha sonra kullanmak için kaydet

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

Depolanan yer kimlikleri yenileniyor

12 aydan daha eski yer kimliklerini yenilemenizi öneririz. Yer kimliklerini ücretsizyenileyerek, Yer Ayrıntıları isteğinde, Place.Field.ID alanında yalnızca fields parametresini belirterek yenileyebilirsiniz. Bu çağrı, Yer Ayrıntıları - Kimliği Yenileme SKU'yu tetikleyecektir. Ancak, bu istek NOT_FOUND durum kodunu da döndürebilir. Stratejilerden biri, her 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 için ücret alınabilir.

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

INVALID_REQUEST durum kodu, belirtilen yer kimliğinin geçerli olmadığını gösterir. INVALID_REQUEST, yer kimliği kesildiğinde veya başka bir şekilde değiştirildiğinde döndürülebilir ve artık doğru olmayabilir.

NOT_FOUND durum kodu, belirtilen yer kimliğinin eski olduğunu gösterir. Bir işletme kapanırsa veya yeni bir konuma taşınırsa yer kimliği kullanılamaz hale gelebilir. 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 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 şunlardır:

  • Google Haritalar'da tam adres olarak bulunmayan ancak bir adres aralığından tahmin edilen açık adresler.
  • İsteğin bir şehri veya konumu da belirttiği uzun rotanın segmentleri.
  • Kesişmeler.
  • Adres türü subpremise olan yerler.

Bu kimlikler genellikle uzun bir dizeden oluşur (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