मौजूदा जगह

प्लैटफ़ॉर्म चुनें: Android iOS

Android के लिए Places SDK का उपयोग करके, आप मौजूदा डिवाइस की जगह की जानकारी. स्थानीय जगहों के उदाहरण कारोबार, लोकप्रिय जगहें, और भौगोलिक जगहें.

अनुमतियां

लाइब्रेरी का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन के मेनिफ़ेस्ट में किसी भी अतिरिक्त अनुमति के बारे में बताने की ज़रूरत नहीं है, क्योंकि लाइब्रेरी अपने मेनिफ़ेस्ट में इस्तेमाल की जाने वाली सभी अनुमतियों के बारे में बताती है. हालांकि, अगर आपका ऐप्लिकेशन PlacesClient.findCurrentPlace() रनटाइम के दौरान, आपको जगह की जानकारी की अनुमतियों का अनुरोध करना होगा.

अगर आपका ऐप्लिकेशन PlacesClient.findCurrentPlace() का इस्तेमाल नहीं करता, तो इसे ACCESS_FINE_LOCATION और ACCESS_COARSE_LOCATION अनुमतियां लॉन्च की गईं लाइब्रेरी के ज़रिए अपने मेनिफ़ेस्ट में इन्हें जोड़कर:

<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>

के बारे में और पढ़ें अनुमतियां शामिल करें और शुरू करने के लिए, EasyPermissions पर जाएं.

वर्तमान स्थान पाएं

उस स्थानीय कारोबार या अन्य जगह का पता लगाने के लिए जहां डिवाइस अभी मौजूद है तो इन चरणों का पालन करें:

  1. ContextCompat.checkSelfPermission पर कॉल करें यह देखने के लिए कि उपयोगकर्ता ने अपना डिवाइस ऐक्सेस करने की अनुमति दी है या नहीं स्थान. आपके ऐप्लिकेशन में कोड भी शामिल होना चाहिए, ताकि लोगों से अनुमति मांगी जा सके, और नतीजे को मैनेज करने में मदद मिलती है. ऐप्लिकेशन अनुमतियों का अनुरोध करना देखें देखें.
  2. FindCurrentPlaceRequest बनाएं, Place.Field में से List पास करना, जो डेटा के उस टाइप को चुनें जिसे आपके ऐप्लिकेशन को अनुरोध करना चाहिए.
  3. PlacesClient.findCurrentPlace() पर कॉल करें, पिछले FindCurrentPlaceRequest में बनाए गए चरण पूरा करें.
  4. PlaceLikelihood की सूची यहां से पाएं: FindCurrentPlaceResponse.

फ़ील्ड, जगह के बारे में खोज के नतीजों के मुताबिक हैं और इन्हें तीन बिलिंग कैटगरी में बांटा गया है: बुनियादी, संपर्क, और माहौल. बेसिक फ़ील्ड का बिल, मूल दर के हिसाब से भेजा जाता है. इसके लिए, अलग से कोई शुल्क नहीं देना पड़ता शुल्क. संपर्क और वातावरण फ़ील्ड के लिए ज़्यादा शुल्क लिया जाता है. Reader Revenue Manager को सेट अप करने के बारे में स्थान डेटा अनुरोधों को बिल करने के तरीके के बारे में, देखें इस्तेमाल और बिलिंग.

एपीआई, FindCurrentPlaceResponse में Task. FindCurrentPlaceResponse में PlaceLikelihood ऐसी जगहों के बारे में बताने वाले ऑब्जेक्ट जहां डिवाइस के मौजूद होने की संभावना है. इसके लिए नतीजे शामिल होते हैं, तो नतीजे में यह बताया जाता है कि आपकी जगह सही है. अगर किसी जगह की जानकारी नहीं है, तो हो सकता है कि यह सूची खाली हो दिए गए डिवाइस की जगह से मेल खाना चाहिए.

कॉल किया जा सकता है PlaceLikelihood.getPlace() को वापस पाने के लिए Place ऑब्जेक्ट और PlaceLikelihood.getLikelihood() ताकि किसी जगह की संभावित रेटिंग जान सकें. ज़्यादा वैल्यू का मतलब है कि ज़्यादा यह संभावना होगी कि वह स्थान सबसे ज़्यादा मेल खाता है.

नीचे दिया गया कोड सैंपल, उन जगहों की सूची हासिल करता है जहां डिवाइस के नतीजों में दिखने की संभावना सबसे ज़्यादा होती है. साथ ही, यह हर जगह के नाम और संभावना की जानकारी लॉग करता है.

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

      

संभावित वैल्यू के बारे में नोट:

  • यह संभावना, रिलेटिव प्रॉबबिलिटी देता है के लिए लौटाए गए स्थानों की सूची के भीतर सर्वश्रेष्ठ मिलान का स्थान है एक बार अनुरोध करना होगा. अलग-अलग अनुरोधों के हिसाब से, मिलने वाली संभावना की तुलना नहीं की जा सकती.
  • संभावना की वैल्यू 0.0 और 1.0 के बीच होगी.

उदाहरण के लिए, 55% संभावना को दिखाने के लिए कि सही जगह मौजूद है A और इस बात की 35% संभावना है कि यह जगह B है. इस जवाब में दो सदस्य हैं, जगह A के आधार पर 0.55 और जगह B होने की संभावना 0.35 है.

अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं

जब आपका ऐप्लिकेशन इनसे मिली जानकारी को दिखाता है PlacesClient.findCurrentPlace() ऐप्लिकेशन को एट्रिब्यूशन भी दिखाने चाहिए. दस्तावेज़ यहां देखें एट्रिब्यूशन.