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