Yer Ayrıntıları

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Platform seçin: Android iOS JavaScript Web Hizmeti

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:

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 List placeFields = 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çin List 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ğlayan getAddress() öğ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 yerin OpeningHours. Haftanın her günü için açılış ve kapanış saatlerini temsil eden bir dize listesi döndürmek için OpeningHours.getWeekdayText() yöntemini çağırın. getWeekdayText() tarafından sağlanan verilere eşdeğer olan daha ayrıntılı bilgiler içeren period nesnelerinin listesini döndürmek için OpeningHours.getPeriods() yöntemini çağırın. Not: Yer her zaman açıksa dönem, gece yarısı Pazar olarak temsil edilir ve closeEvent 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ızca Place.Field.UTC_OFFSET ve Place.Field.OPENING_HOURS kullanılabiliyorsa döndürülür. Doğru sonuçlar elde etmek için orijinal yer isteğinizdeki Place.Field.BUSINESS_STATUS ve Place.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.