Yer kimlikleri

Platform seçin: Android iOS JavaScript Web Hizmeti

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

  • Geocoding API web hizmetinde bir Yer Kimliği için adres alma ve Coğrafi Kodlama Hizmeti, Maps JavaScript API.
  • Başlangıç, hedef ve ara ara noktaları belirtmek üzere Routes API ve Directions API'si web hizmeti ve Yol Tarifi Hizmeti, Maps JavaScript API.
  • Routes API'de kaynakları ve hedefleri belirterek Mesafe Matrisi API web hizmeti ve Mesafe Matrisi Hizmeti, Maps JavaScript API.
  • Places API web hizmetinde, Android için Yerler SDK'sı, iOS için Yerler SDK'sı ve Yerler Kitaplığı'nda Yer Ayrıntılarını alma.
  • Maps Embed API'de Yer Kimliği parametrelerini kullanma.
  • Haritalar URL'lerindeki arama sorguları alınıyor.
  • Roads API'de hız sınırları gösteriliyor.
  • Sınırlar için veriye dayalı stil oluşturma amacıyla 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? Yer kimliğini kullanın bulmak için aşağıdaki bulucuyu kullanın:

Alternatif olarak göster Maps JavaScript API'deki koduyla birlikte yer kimliği bulucu belgelerinden faydalanabilirsiniz.

Genel Bakış

Yer kimliği, bir yeri benzersiz şekilde tanımlayan metinsel bir tanımlayıcıdır. İlgili içeriği oluşturmak için kullanılan 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, işletmeler ve diğer konumlar dahil olmak üzere kavşaklar bulunuyor. Aynı yer veya konumda, birden fazla yer kimliğine sahip. Yer kimlikleri zaman içinde değişebilir.

Aynı yer kimliğini Places API'de ve bir ve Google Maps Platform API'leri için geçerlidir. Örneğin, aşağıdakileri yapmak için aynı yer kimliğini kullanabilirsiniz: Şurada bir yere referans ver: Places API'yi Haritalar JavaScript API'si Geocoding API Haritalar Yerleştirme API'si ve Roads API hakkında daha fazla bilgi edinin.

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

Yer kimliklerini kullanmanın yaygın bir yolu, bir yeri aramaktır (Places API ile veya Yerler kitaplığı'ndaki izinleri içeriyorsa, yer ayrıntılarını almak için yer kimliği döndürdü. Yer kimliğini ve bu yeri kullanarak aynı yer ayrıntılarını daha sonra alabilirsiniz. Şu konu hakkında bilgi edinin: yer kimliklerini kaydetme bölümünü inceleyin.

Android için Yerler SDK'sının kullanıldığı bir örnek

Android için Yerler SDK'sında bir yerin kimliğini öğrenmek için arama Place.getId(). İlgili içeriği oluşturmak için kullanılan Otomatik Yer Tamamlama hizmeti sağlanan arama sorgusuyla eşleşen her yer için bir yer kimliği de döndürür ve filtre uygulayabilirsiniz. Şunu almak için yer kimliğini kullanın: Place daha sonra tekrar deneyin.

Kimliğe göre bir yer almak için şu numarayı arayın: PlacesClient.fetchPlace() FetchPlaceRequest geçme.

API, FetchPlaceResponse Task. İlgili içeriği oluşturmak için kullanılan FetchPlaceResponse şunu içerir: Place belirtilen yer kimliğiyle eşleşen nesne.

Aşağıdaki kod örneğinde, fetchPlace() işlevinin belirtilen yerle ilgili ayrıntıları almak istiyorum.

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

      

Daha sonra kullanmak üzere yer kimliklerini kaydedin

Yer kimlikleri, Bölüm 3.2.3(b) Google Haritalar Platformu Hizmet Şartları'nı kabul etmiş olursunuz. Bu nedenle, yer kimliği değerlerini daha sonra kullanmak üzere pek de iyi olmadığını unutmayın.

Depolanan yer kimliklerini yenileme

12 aydan eski yer kimliklerini yenilemenizi öneririz. Siz alan kimlik bilgilerini ücretsiz olarak yenileyebilir. Yer Ayrıntıları isteği, yalnızca Place.Field.ID belirterek fields parametresindeki alana girin. Bu çağrı, Yer Ayrıntıları - Kimlik Yenileme SKU.

Bu istek, NOT_FOUND durumunu da döndürebilir girin. Stratejilerden biri, her yeri döndüren orijinal isteği saklamaktır Kimlik. Bir yer kimliği geçersiz hale gelirse, yeni bir alan adı almak için bu isteği sonuç. 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, yer kimliği geçerli değil. INVALID_REQUEST, yer kimliği kısaltılmış veya başka şekilde değiştirilmiştir ve artık doğru değildir.

NOT_FOUND durum kodu, belirtilen yer kimliğinin olduğunu gösterir geçerliliğini yitirmişti. Bir işletme kapanırsa veya bir yere taşınırsa yer kimliği geçersiz olabilir. bir konumdur. Yer kimlikleri, Google'daki büyük ölçekli güncellemeler nedeniyle değişebilir. Haritalar veritabanı. Bu gibi durumlarda, bir yer yeni bir yer kimliği alabilir ve eski konum kimliği Kimlik, NOT_FOUND yanıtı döndürür.

Özellikle, bazı yer kimlikleri bazen, NOT_FOUND yanıtı yoksa API, yanıt verelim. Bu yer kimliği türleri şunlardır:

  • Google Haritalar'da tam adres olarak bulunmayan açık adresler, ancak bir adres aralığından çıkarımda bulunur.
  • İsteğin aynı zamanda bir şehri veya şehir.
  • Kesişimler.
  • subpremise türünde adres bileşenine sahip yerler.

Bu kimlikler genellikle uzun bir dizedir (maksimum uzunluk yoktur.) bakın). Örneğin:

EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4