Mevcut Yer

Platform seçin: Android iOS

Android için Yerler SDK'sını kullanarak bu yeri cihazın geçerli olarak bildirilen konumu. Yer örnekleri arasında yerel önemli noktaları ve coğrafi konumları gösterebilirsiniz.

İzinler

Kitaplığı kullanmak için uygulamanızın manifest dosyasında ek izinler beyan etmeniz gerekmez. izin verdiğinden emin olun. Ancak, uygulamanızda PlacesClient.findCurrentPlace() çalışma zamanında konum izinleri istemeniz gerekir.

Uygulamanız PlacesClient.findCurrentPlace() kullanmıyorsa şunu açıkça kaldırın: ACCESS_FINE_LOCATION ve ACCESS_COARSE_LOCATION izinleri kullanıma sunuldu aşağıdaki dosyayı manifest dosyanıza ekleyerek kitaplığa göre değerlendirebilirsiniz:

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove"/>
    ...
</manifest>

hakkında daha fazla bilgi edinin izin verin ve Başlamak için EasyPermissions sayfasını ziyaret edin.

Geçerli konumu alma

Yerel işletmeyi veya cihazın şu anda bulunduğu başka bir yeri bulmak için aşağıdaki adımları izleyin:

  1. ContextCompat.checkSelfPermission numaralı telefonu arayın kullanıcının cihazına erişim izni verip vermediğini kontrol etmek için konum. Uygulamanız ayrıca kullanıcıdan izin isteyecek kod, ve sonucu işlemek için kullanır. Uygulama İzinleri İsteme konusuna bakın inceleyebilirsiniz.
  2. Bir FindCurrentPlaceRequest oluşturun, Place.Field içinden List geçirerek uygulamanızın istemesi gereken yer veri türlerini gösterir.
  3. PlacesClient.findCurrentPlace() numaralı telefonu arayın, önceki adımda oluşturduğunuz FindCurrentPlaceRequest gerçekleştiriliyor adımına geçelim.
  4. PlaceLikelihood listesini şuradan al: FindCurrentPlaceResponse.
ziyaret edin.

Alanlar, Yer Arama sonuçlarına karşılık gelir ve üç faturalandırma kategorisine ayrılır: Basic, Contact ve Atmosfer. Temel alanlar, taban ücretle faturalandırılır ve ek ücret ödemez. anlamına gelir. Kişi ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Okuyucu Gelirleri Yöneticisi'ni Yer verisi isteklerinin nasıl faturalandırıldığı hakkında daha fazla bilgi edinmek için bkz. Kullanım ve Faturalandırma.

API, FindCurrentPlaceResponse Task. FindCurrentPlaceResponse, PlaceLikelihood cihazın bulunabileceği yerleri temsil eden nesneler. Örneğin, her yer ziyaret edildiğinde sonuç, çıkarımların yapılıp yapılmadığına dair doğru yer. Bilinen bir yer yoksa liste boş olabilir göre değişir.

Şu numarayı arayabilirsiniz: PlaceLikelihood.getPlace() almak için Place ve PlaceLikelihood.getLikelihood() için bir derecelendirme kullanabilirsiniz. Daha yüksek değer, en iyi eşleşme olma olasılığını ölçer.

Aşağıdaki kod örneğinde, cihazın bulunduğu yerlerin listesini bulunur ve her bir yerin adını ve olasılığını günlüğe kaydeder.

Kotlin



// Use fields to define the data types to return.
val placeFields: List<Place.Field> = listOf(Place.Field.NAME)

// Use the builder to create a FindCurrentPlaceRequest.
val request: FindCurrentPlaceRequest = FindCurrentPlaceRequest.newInstance(placeFields)

// Call findCurrentPlace and handle the response (first check that the user has granted permission).
if (ContextCompat.checkSelfPermission(this, permission.ACCESS_FINE_LOCATION) ==
    PackageManager.PERMISSION_GRANTED) {

    val placeResponse = placesClient.findCurrentPlace(request)
    placeResponse.addOnCompleteListener { task ->
        if (task.isSuccessful) {
            val response = task.result
            for (placeLikelihood: PlaceLikelihood in response?.placeLikelihoods ?: emptyList()) {
                Log.i(
                    TAG,
                    "Place '${placeLikelihood.place.name}' has likelihood: ${placeLikelihood.likelihood}"
                )
            }
        } else {
            val exception = task.exception
            if (exception is ApiException) {
                Log.e(TAG, "Place not found: ${exception.statusCode}")
            }
        }
    }
} else {
    // A local method to request required permissions;
    // See https://developer.android.com/training/permissions/requesting
    getLocationPermission()
}

      

Java


// Use fields to define the data types to return.
List<Place.Field> placeFields = Collections.singletonList(Place.Field.NAME);

// Use the builder to create a FindCurrentPlaceRequest.
FindCurrentPlaceRequest request = FindCurrentPlaceRequest.newInstance(placeFields);

// Call findCurrentPlace and handle the response (first check that the user has granted permission).
if (ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
    Task<FindCurrentPlaceResponse> placeResponse = placesClient.findCurrentPlace(request);
    placeResponse.addOnCompleteListener(task -> {
        if (task.isSuccessful()){
            FindCurrentPlaceResponse response = task.getResult();
            for (PlaceLikelihood placeLikelihood : response.getPlaceLikelihoods()) {
                Log.i(TAG, String.format("Place '%s' has likelihood: %f",
                    placeLikelihood.getPlace().getName(),
                    placeLikelihood.getLikelihood()));
            }
        } else {
            Exception exception = task.getException();
            if (exception instanceof ApiException) {
                ApiException apiException = (ApiException) exception;
                Log.e(TAG, "Place not found: " + apiException.getStatusCode());
            }
        }
    });
} else {
    // A local method to request required permissions;
    // See https://developer.android.com/training/permissions/requesting
    getLocationPermission();
}

      

Olasılık değerleriyle ilgili notlar:

  • Olasılık, göreceli olasılık sağlar bir kullanıcı için döndürülen yerler listesinde en iyi eşleşme olan tek istek. Farklı isteklerin olasılıklarını karşılaştıramazsınız.
  • Olasılığın değeri 0,0 ile 1,0 arasında olur.

Örneğin, doğru yerin "Yer" olma ihtimalini% 55 göstermek için yanıtın iki üyeli, %35 olasılıkla B Yer ise A'yı 0,55 olasılığıyla, B yerini ise 0,35 olasılığıyla yerleştirin.

İlişkilendirmeleri uygulamanızda gösterme

Uygulamanız, PlacesClient.findCurrentPlace() Uygulama, ilişkilendirmeleri de göstermelidir. Dokümanları görüntüleyin: ilişkilendirmeler.