Android için Yerler SDK'sı, yerin adı ve adresi, enlem/boylam koordinatları olarak belirtilen coğrafi konum ve yerin türü (gece kulübü, evcil hayvan mağazası, müze vb.) dahil olmak üzere, yerler hakkında zengin bilgiler sağlar. Belirli bir yerle ilgili bu bilgilere erişmek için, yeri benzersiz bir şekilde tanımlayan sabit bir tanımlayıcı olan yer kimliğini kullanabilirsiniz.
Yer ayrıntıları
Place
nesnesi belirli bir yer hakkında bilgi sağlar. Place
nesnesini aşağıdaki şekillerde ele alabilirsiniz:
- Ara
PlacesClient.findCurrentPlace()
– Mevcut yeri alma ile ilgili kılavuzu inceleyin. - Arayın
PlacesClient.fetchPlace()
– Kimliğe göre yer alma rehberini inceleyin.
Bir yer istediğinizde, hangi yer verilerinin döndürüleceğini belirtmeniz gerekir. Bunu yapmak için, döndürülecek verileri belirten Place.Field değerleri listesini iletin. Bu liste, her bir isteğin maliyetini etkilediğinden dikkat edilmesi gereken önemli bir konudur.
Yer verisi sonuçları boş olmayacağı için yalnızca veri içeren yer sonuçları döndürülür (örneğin, istenen bir yerin fotoğrafı yoksa sonuçta photos
alanı görünmez).
Aşağıdaki örnekte, bir istek tarafından döndürülen verileri belirtmek için üç Place.Field değeri listesi verilmiştir:
Java
// Specify the fields to return. final ListplaceFields = Arrays.asList(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS);
Kotlin
// Specify the fields to return. val placeFields = listOf(Place.Field.NAME, Place.Field.RATING, Place.Field.OPENING_HOURS)
Place
nesnesini aldıktan sonra, yer verilerini almak için nesnenin yöntemlerini kullanın.
Aşağıda, mevcut yöntemlerden birkaçı gösterilmiştir. Tüm yöntemlerin tam listesi için Place
API referansına bakın.
getAddress()
– Yerin, kullanıcılar tarafından okunabilir biçimdeki adresi.getAddressComponents()
– Bu yer içinList
adres bileşeni. Bu bileşenler, örneğin bir yerin bulunduğu şehri bulmak gibi, bir yerin adresiyle ilgili yapılandırılmış bilgileri ayıklamak amacıyla sağlanır. Adres biçimlendirmesi için bu bileşenleri kullanmayın; bunun yerine, yerelleştirilmiş bir biçimlendirilmiş adres sağlayangetAddress()
öğesini çağırın.getID()
– Yerin metin tanımlayıcısı. Bu sayfanın geri kalanında yer kimlikleri hakkında daha fazla bilgi edinebilirsiniz.getLatLng()
– Yerin enlem ve boylam koordinatları olarak belirtilen coğrafi konumu.getName()
– Yerin adı.getOpeningHours()
– Bu yerinOpeningHours
. Haftanın her günü için açılış ve kapanış saatlerini temsil eden bir dize listesi döndürmek içinOpeningHours.getWeekdayText()
yöntemini çağırın.getWeekdayText()
tarafından sağlanan verilere eşdeğer olan daha ayrıntılı bilgiler içerenperiod
nesnelerinin listesini döndürmek içinOpeningHours.getPeriods()
yöntemini çağırın. Not: Yer her zaman açıksa dönem, gece yarısı Pazar olarak temsil edilir vecloseEvent
boştur.isOpen()
– Yerin şu anda açık olup olmadığını gösteren bir boole. Herhangi bir saat belirtilmezse varsayılan değer şu anda belirtilir.isOpen
yalnızcaPlace.Field.UTC_OFFSET
vePlace.Field.OPENING_HOURS
kullanılabiliyorsa döndürülür. Doğru sonuçlar elde etmek için orijinal yer isteğinizdekiPlace.Field.BUSINESS_STATUS
vePlace.Field.UTC_OFFSET
alanlarını isteyin. İstenmezse işletmenin faaliyet gösterdiği varsayılır.isOpen
adlı yeri Yer Ayrıntıları ile nasıl kullanacağınızı öğrenmek için bu videoya göz atın.
Bazı basit örnekler:
Java
final CharSequence name = place.getName(); final CharSequence address = place.getAddress(); final LatLng location = place.getLatLng();
Kotlin
val name = place.name val address = place.address val location = place.latLng
Kimliğe göre bir yer bulun
Yer kimliği, bir yeri benzersiz şekilde tanımlayan metinsel tanımlayıcıdır. Android için Yerler SDK'sında Place.getId()
çağırarak bir yerin kimliğini alabilirsiniz.
Otomatik Otomatik Tamamlama hizmeti de sağlanan arama sorgusu ve filtreyle eşleşen her yer için bir yer kimliği döndürür. Yer kimliğini depolayabilir ve daha sonra tekrar Place
nesnesini almak için kullanabilirsiniz.
Kimliğe göre yer almak için
PlacesClient.fetchPlace()
numaralı telefonu
FetchPlaceRequest
iletin.
API bir Task
içinde FetchPlaceResponse
döndürür.
FetchPlaceResponse
, sağlanan yer kimliğiyle eşleşen bir Place
nesnesi içerir.
Aşağıdaki kod örneğinde, belirtilen yerle ilgili ayrıntıları almak için fetchPlace()
işlevi aranır.
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") } }
İlişkilendirmeleri uygulamanızda gösterin
Uygulamanız yer bilgilerini görüntülediğinde ilişkilendirmeleri de görüntülemelidir. İlişkilendirmeler ile ilgili belgelere bakın.
Yer kimlikleri hakkında daha fazla bilgi
Android için Yerler SDK'sında kullanılan yer kimliği, Places API'de kullanılanla aynıdır. Her bir yer kimliği yalnızca bir yeri ifade edebilir, ancak tek bir yerin birden fazla yer kimliği olabilir. Bir yerin yeni bir yer kimliği almasına neden olabilecek başka durumlar da vardır. Örneğin, bir işletme yeni bir konuma taşınırsa bu durumla karşılaşılabilir.
Bir yer kimliği belirterek istekte bulunduğunuzda, yanıtta her zaman aynı yeri alacağınızdan emin olabilirsiniz (bu yer hâlâ mevcutsa). Bununla birlikte, yanıtın isteğinizdekinden farklı bir yer kimliği içerebileceğini unutmayın.
Daha fazla bilgi için yer kimliğine genel bakış bölümünü inceleyin.