किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी)

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

Place Autocomplete (लेगसी), उपयोगकर्ता की सर्च क्वेरी के जवाब में जगहों के सुझाव दिखाता है. उपयोगकर्ता के टाइप करने पर, अपने-आप पूरा होने की सुविधा, जगहों के सुझाव दिखाती है. जैसे, कारोबार, पते, प्लस कोड, और लोकप्रिय जगहें.

अपने ऐप्लिकेशन में, खोज क्वेरी के अपने-आप पूरे होने की सुविधा को इन तरीकों से जोड़ा जा सकता है:

ऑटोकंप्लीट विजेट जोड़ना

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

ऐप्लिकेशन में अपने-आप पूरा होने वाला विजेट जोड़ने के दो विकल्प हैं:

पहला विकल्प: AutocompleteSupportFragment को एम्बेड करना

अपने ऐप्लिकेशन में AutocompleteSupportFragment जोड़ने के लिए, यह तरीका अपनाएं:

  1. अपनी गतिविधि के एक्सएमएल लेआउट में फ़्रैगमेंट जोड़ें.
  2. अपनी गतिविधि या फ़्रैगमेंट में लिसनर जोड़ें.

किसी गतिविधि में AutocompleteSupportFragment जोड़ना

किसी गतिविधि में AutocompleteSupportFragment जोड़ने के लिए, किसी एक्सएमएल लेआउट में नया फ़्रैगमेंट जोड़ें. उदाहरण के लिए:

<fragment android:id="@+id/autocomplete_fragment"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:name="com.google.android.libraries.places.widget.AutocompleteSupportFragment"
  />
  • डिफ़ॉल्ट रूप से, फ़्रैगमेंट का कोई बॉर्डर या बैकग्राउंड नहीं होता. विज़ुअल को एक जैसा दिखाने के लिए, फ़्रैगमेंट को किसी दूसरे लेआउट एलिमेंट में नेस्ट करें. जैसे, CardView.
  • अगर ऑटोकंप्लीट फ़्रैगमेंट का इस्तेमाल किया जा रहा है और आपको onActivityResult को बदलना है, तो आपको super.onActivityResult को कॉल करना होगा. ऐसा न करने पर, फ़्रैगमेंट ठीक से काम नहीं करेगा.

किसी गतिविधि में PlaceSelectionListener जोड़ना

PlaceSelectionListener, उपयोगकर्ता के चुने गए विकल्प के हिसाब से जगह की जानकारी दिखाता है. नीचे दिए गए कोड में, फ़्रैगमेंट का रेफ़रंस बनाने और अपने AutocompleteSupportFragment में लिसनर जोड़ने का तरीका दिखाया गया है:

Kotlin

    // Initialize the AutocompleteSupportFragment.
    val autocompleteFragment =
        supportFragmentManager.findFragmentById(R.id.autocomplete_fragment)
                as AutocompleteSupportFragment

    // Specify the types of place data to return.
    autocompleteFragment.setPlaceFields(listOf(Place.Field.ID, Place.Field.DISPLAY_NAME))

    // Set up a PlaceSelectionListener to handle the response.
    autocompleteFragment.setOnPlaceSelectedListener(object : PlaceSelectionListener {
        override fun onPlaceSelected(place: Place) {
            binding.autocompleteResult.text = getString(
                R.string.place_selection,
                place.displayName,
                place.id,
                place.formattedAddress
            )
            Log.i(TAG, "Place: ${place.displayName}, ${place.id}")
        }

        override fun onError(status: Status) {
            binding.autocompleteResult.text = getString(R.string.an_error_occurred, status)
            Log.i(TAG, "An error occurred: $status")
        }
    })

      

Java

    // Initialize the AutocompleteSupportFragment.
    AutocompleteSupportFragment autocompleteFragment = (AutocompleteSupportFragment)
            getSupportFragmentManager().findFragmentById(R.id.autocomplete_fragment);

    // Specify the types of place data to return.
    assert autocompleteFragment != null;
    autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS));

    // Set up a PlaceSelectionListener to handle the response.
    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(@NonNull Place place) {
            binding.autocompleteResult.setText(
                    getString(
                            R.string.place_selection,
                            place.getDisplayName(),
                            place.getId(),
                            place.getFormattedAddress()
                    )
            );
            Log.i(TAG, "Place: " + place.getDisplayName() + ", " + place.getId());
        }


        @Override
        public void onError(@NonNull Status status) {
            binding.autocompleteResult.setText(getString(R.string.an_error_occurred, status));
            Log.e(TAG, "An error occurred: " + status);
        }
    });

      

दूसरा विकल्प: ऑटोकंप्लीट गतिविधि लॉन्च करने के लिए, इंटेंट का इस्तेमाल करना

अगर आपको अपने ऐप्लिकेशन में नेविगेशन के लिए किसी दूसरे फ़्लो का इस्तेमाल करना है (उदाहरण के लिए, खोज फ़ील्ड के बजाय किसी आइकॉन से ऑटोकंप्लीट की सुविधा को ट्रिगर करना है), तो आपका ऐप्लिकेशन इंटेंट का इस्तेमाल करके ऑटोकंप्लीट की सुविधा लॉन्च कर सकता है.

किसी इंटेंट का इस्तेमाल करके, अपने-आप पूरा होने वाले सुझाव दिखाने वाले विजेट को लॉन्च करने के लिए, यह तरीका अपनाएं:

  1. Autocomplete.IntentBuilder का इस्तेमाल करके कोई इंटेंट बनाएं. इसके लिए, Autocomplete मोड पास करें.
  2. गतिविधि के नतीजे का लॉन्चर registerForActivityResult तय करें. इसका इस्तेमाल, इंटेंट को लॉन्च करने और नतीजे में उपयोगकर्ता की चुनी गई जगह के अनुमान को मैनेज करने के लिए किया जा सकता है.

ऑटोकंप्लीट इंटेंट बनाना

यहां दिए गए उदाहरण में, ऑटोकंप्लीट विजेट को इंटेंट के तौर पर लॉन्च करने के लिए इंटेंट बनाने के लिए, Autocomplete.IntentBuilder का इस्तेमाल किया गया है:

Kotlin

    // Set the fields to specify which types of place data to
    // return after the user has made a selection.
    val fields = listOf(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS)

    val intent = Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields)
        .setTypesFilter(listOf(PlaceTypes.ESTABLISHMENT))
        .build(this)

    startAutocomplete.launch(intent)

      

Java

    // Set the fields to specify which types of place data to
    // return after the user has made a selection.
    List<Place.Field> fields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS);

    // Start the autocomplete intent.
    Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields)
            .setTypesFilter(List.of(PlaceTypes.ESTABLISHMENT))
            .build(this);
    startAutocomplete.launch(intent);

      

ऑटोकंप्लीट विजेट लॉन्च करने के लिए इंटेंट का इस्तेमाल करते समय, ओवरले या फ़ुल-स्क्रीन डिसप्ले मोड में से किसी एक को चुना जा सकता है. यहां दिए गए स्क्रीनशॉट में, हर डिसप्ले मोड को दिखाया गया है:

ओवरले मोड में दिखने पर, ऑटोकंप्लीट विजेट, कॉल करने वाले यूज़र इंटरफ़ेस (यूआई) के ऊपर दिखता है.
पहली इमेज: OVERLAY मोड में, ऑटोकंप्लीट विजेट
फ़ुलस्क्रीन मोड में दिखने पर, अपने-आप पूरा होने वाला विजेट पूरी स्क्रीन पर दिखता है.
दूसरी इमेज: फ़ुलस्क्रीन मोड में अपने-आप पूरा होने वाला विजेट

इंटेंट के नतीजे के लिए कॉलबैक रजिस्टर करना

जब उपयोगकर्ता कोई जगह चुनता है, तो सूचना पाने के लिए, registerForActivityResult() लॉन्चर तय करें. यह लॉन्चर, गतिविधि को लॉन्च करता है और नतीजे को भी मैनेज करता है. इसके बारे में यहां दिए गए उदाहरण में बताया गया है. अगर उपयोगकर्ता ने कोई अनुमान चुना है, तो उसे नतीजे वाले ऑब्जेक्ट में मौजूद इंटेंट में डिलीवर किया जाएगा. इंटेंट को Autocomplete.IntentBuilder ने बनाया है. इसलिए, Autocomplete.getPlaceFromIntent() वाला तरीका इससे Place ऑब्जेक्ट को निकाल सकता है.

Kotlin

private val startAutocomplete =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
        if (result.resultCode == RESULT_OK) {
            val intent = result.data
            if (intent != null) {
                val place = Autocomplete.getPlaceFromIntent(intent)
                binding.autocompleteResult.text = getString(
                    R.string.place_selection,
                    place.displayName,
                    place.id,
                    place.formattedAddress)
                Log.i(
                    TAG, "Place: ${place.displayName}, ${place.id}"
                )
            }
        } else if (result.resultCode == RESULT_CANCELED) {
            // The user canceled the operation.
            binding.autocompleteResult.setText(R.string.user_canceled_autocomplete)
            Log.i(TAG, "User canceled autocomplete")
        }
    }

      

Java

private final ActivityResultLauncher<Intent> startAutocomplete = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        result -> {
            if (result.getResultCode() == Activity.RESULT_OK) {
                Intent intent = result.getData();
                if (intent != null) {
                    Place place = Autocomplete.getPlaceFromIntent(intent);
                    binding.autocompleteResult.setText(
                            getString(
                                    R.string.place_selection,
                                    place.getDisplayName(),
                                    place.getId(),
                                    place.getFormattedAddress()
                            )
                    );
                    Log.i(TAG, "Place: " + place.getDisplayName() + ", " + place.getId());
                }
            } else if (result.getResultCode() == Activity.RESULT_CANCELED) {
                // The user canceled the operation.
                binding.autocompleteResult.setText(R.string.user_canceled_autocomplete);
                Log.i(TAG, "User canceled autocomplete");
            }
        });

      

प्रोग्राम के हिसाब से, जगह के सुझाव पाना

ऑटोकंप्लीट विजेट से मिलने वाले यूज़र इंटरफ़ेस (यूआई) के विकल्प के तौर पर, पसंद के मुताबिक खोज यूज़र इंटरफ़ेस (यूआई) बनाया जा सकता है. इसके लिए, आपके ऐप्लिकेशन को प्रोग्राम के हिसाब से जगह के बारे में अनुमान लगाने की सुविधा मिलनी चाहिए. आपका ऐप्लिकेशन, ऑटोकंप्लीट एपीआई से सुझाई गई जगहों के नाम और/या पतों की सूची पा सकता है. इसके लिए, उसे PlacesClient.findAutocompletePredictions() को कॉल करना होगा और इन पैरामीटर के साथ FindAutocompletePredictionsRequest ऑब्जेक्ट को पास करना होगा:

  • ज़रूरी है: query स्ट्रिंग में, उपयोगकर्ता की ओर से टाइप किया गया टेक्स्ट शामिल होना चाहिए.
  • सुझाया गया: A AutocompleteSessionToken, जो बिलिंग के मकसद से, उपयोगकर्ता की खोज की क्वेरी और चुनने के चरणों को अलग-अलग सेशन में ग्रुप करता है. सेशन तब शुरू होता है, जब उपयोगकर्ता कोई क्वेरी टाइप करना शुरू करता है. साथ ही, यह तब खत्म होता है, जब वह कोई जगह चुनता है.
  • सुझाया गया: यह एक RectangularBounds ऑब्जेक्ट है. इसमें अक्षांश और देशांतर की सीमाएं तय की जाती हैं, ताकि नतीजों को तय की गई जगह के हिसाब से सीमित किया जा सके.
  • ज़रूरी नहीं: एक या एक से ज़्यादा दो अक्षरों वाले देश के कोड (आईएसओ 3166-1 ऐल्फ़ा-2). इनसे पता चलता है कि नतीजे किस देश या देशों के लिए सीमित होने चाहिए.
  • ज़रूरी नहीं: TypeFilter, जिसका इस्तेमाल करके नतीजों को किसी खास तरह की जगह तक सीमित किया जा सकता है. जगह की जानकारी के लिए, यहां दिए गए टाइप इस्तेमाल किए जा सकते हैं:

    • TypeFilter.GEOCODE – यह सिर्फ़ जियोकोडिंग के नतीजे दिखाता है, कारोबारों के नहीं. इस अनुरोध का इस्तेमाल करके, उन नतीजों को साफ़ तौर पर समझा जा सकता है जिनमें बताई गई जगह की जानकारी साफ़ तौर पर नहीं दी गई है.
    • TypeFilter.ADDRESS – इससे सिर्फ़ सटीक पते के साथ ऑटोकंप्लीट नतीजे मिलते हैं. इस टाइप का इस्तेमाल तब करें, जब आपको पता हो कि उपयोगकर्ता को पूरा पता चाहिए.
    • TypeFilter.ESTABLISHMENT – सिर्फ़ उन जगहों की जानकारी दिखाता है जो कारोबार हैं.
    • TypeFilter.REGIONS – सिर्फ़ ऐसी जगहों की जानकारी दिखाता है जो इनमें से किसी एक टाइप से मेल खाती हैं:

    • LOCALITY

    • SUBLOCALITY

    • POSTAL_CODE

    • COUNTRY

    • ADMINISTRATIVE_AREA_LEVEL_1

    • ADMINISTRATIVE_AREA_LEVEL_2

    • TypeFilter.CITIES – सिर्फ़ LOCALITY या ADMINISTRATIVE_AREA_LEVEL_3 से मैच होने वाले नतीजे दिखाता है.

  • ज़रूरी नहीं: LatLng, जो अनुरोध की शुरुआत की जगह की जानकारी देता है. setOrigin() को कॉल करने पर, सेवा जवाब में हर ऑटोकंप्लीट सुझाव के लिए, तय किए गए ऑरिजिन से दूरी (distanceMeters) मीटर में दिखाती है.

जगह के टाइप के बारे में जानकारी पाने के लिए, जगह के टाइप की गाइड देखें.

यहां दिए गए उदाहरण में, PlacesClient.findAutocompletePredictions() को कॉल करने का पूरा तरीका बताया गया है.

Kotlin

    // Create a new token for the autocomplete session. Pass this to FindAutocompletePredictionsRequest,
    // and once again when the user makes a selection (for example when calling fetchPlace()).
    val token = AutocompleteSessionToken.newInstance()

    // Create a RectangularBounds object.
    val bounds = RectangularBounds.newInstance(
        LatLng(-33.880490, 151.184363),
        LatLng(-33.858754, 151.229596)
    )
    // Use the builder to create a FindAutocompletePredictionsRequest.
    val request =
        FindAutocompletePredictionsRequest.builder()
            // Call either setLocationBias() OR setLocationRestriction().
            .setLocationBias(bounds)
            //.setLocationRestriction(bounds)
            .setOrigin(LatLng(-33.8749937, 151.2041382))
            .setCountries("AU", "NZ")
            .setTypesFilter(listOf(PlaceTypes.ESTABLISHMENT))
            .setSessionToken(token)
            .setQuery(query)
            .build()
    placesClient.findAutocompletePredictions(request)
        .addOnSuccessListener { response: FindAutocompletePredictionsResponse ->
            val builder = StringBuilder()
            for (prediction in response.autocompletePredictions) {
                builder.append(prediction.getPrimaryText(null).toString()).append("\n")
                Log.i(TAG, prediction.placeId)
                Log.i(TAG, prediction.getPrimaryText(null).toString())
            }
            binding.autocompleteResult.text = builder.toString()
        }.addOnFailureListener { exception: Exception? ->
            if (exception is ApiException) {
                Log.e(TAG, "Place not found: ${exception.statusCode}")
                binding.autocompleteResult.text = getString(R.string.place_not_found, exception.message)
            }
        }

      

Java

    // Create a new token for the autocomplete session. Pass this to FindAutocompletePredictionsRequest,
    // and once again when the user makes a selection (for example when calling fetchPlace()).
    AutocompleteSessionToken token = AutocompleteSessionToken.newInstance();

    // Create a RectangularBounds object.
    RectangularBounds bounds = RectangularBounds.newInstance(
            new LatLng(-33.880490, 151.184363),
            new LatLng(-33.858754, 151.229596));
    // Use the builder to create a FindAutocompletePredictionsRequest.
    FindAutocompletePredictionsRequest request = FindAutocompletePredictionsRequest.builder()
            // Call either setLocationBias() OR setLocationRestriction().
            .setLocationBias(bounds)
            //.setLocationRestriction(bounds)
            .setOrigin(new LatLng(-33.8749937, 151.2041382))
            .setCountries("AU", "NZ")
            .setTypesFilter(List.of(PlaceTypes.ESTABLISHMENT))
            .setSessionToken(token)
            .setQuery(query)
            .build();

    placesClient.findAutocompletePredictions(request).addOnSuccessListener((response) -> {
        StringBuilder builder = new StringBuilder();
        for (AutocompletePrediction prediction : response.getAutocompletePredictions()) {
            builder.append(prediction.getPrimaryText(null).toString()).append("\n");
            Log.i(TAG, prediction.getPlaceId());
            Log.i(TAG, prediction.getPrimaryText(null).toString());
        }
        binding.autocompleteResult.setText(builder.toString());
    }).addOnFailureListener((exception) -> {
        if (exception instanceof ApiException apiException) {
            Log.e(TAG, "Place not found: " + apiException.getStatusCode());
            binding.autocompleteResult.setText(getString(R.string.place_not_found, apiException.getMessage()));
        }
    });

      

एपीआई, Task में FindAutocompletePredictionsResponse दिखाता है. FindAutocompletePredictionsResponse में, अनुमानित जगहों के बारे में बताने वाले AutocompletePrediction ऑब्जेक्ट की सूची होती है. अगर क्वेरी और फ़िल्टर करने की शर्तों के हिसाब से कोई जगह नहीं मिलती है, तो हो सकता है कि सूची खाली हो.

अनुमानित हर जगह के लिए, जगह की जानकारी पाने के लिए ये तरीके इस्तेमाल किए जा सकते हैं:

  • getFullText(CharacterStyle), किसी जगह की जानकारी का पूरा टेक्स्ट दिखाता है. यह प्राइमरी और सेकंडरी टेक्स्ट का कॉम्बिनेशन है. उदाहरण: "Eiffel Tower, Avenue Anatole France, Paris, France". इसके अलावा, इस तरीके से आपको अपनी पसंद की स्टाइल में, खोज से मेल खाने वाले ब्यौरे के सेक्शन हाइलाइट करने की सुविधा मिलती है. इसके लिए, CharacterStyle का इस्तेमाल करें. CharacterStyle पैरामीटर ज़रूरी नहीं है. अगर आपको किसी भी तरह की हाइलाइटिंग की ज़रूरत नहीं है, तो इसे null पर सेट करें.
  • getPrimaryText(CharacterStyle) किसी जगह के बारे में बताने वाला मुख्य टेक्स्ट दिखाता है. आम तौर पर, यह जगह का नाम होता है. उदाहरण: "कुतुब मीनार" और "123 पिट स्ट्रीट".
  • getSecondaryText(CharacterStyle) किसी जगह की जानकारी का सहायक टेक्स्ट दिखाता है. उदाहरण के लिए, ऑटोकंप्लीट के सुझाव दिखाते समय, यह दूसरी लाइन के तौर पर काम आता है. उदाहरण: "Avenue Anatole France, Paris, France" और "Sydney, New South Wales".
  • getPlaceId() अनुमानित जगह का आईडी दिखाता है. जगह का आईडी, टेक्स्ट के तौर पर मौजूद एक आइडेंटिफ़ायर होता है. इससे किसी जगह की खास तौर पर पहचान की जाती है. इसका इस्तेमाल करके, Place ऑब्जेक्ट को बाद में फिर से वापस लाया जा सकता है. Places SDK for Android में जगह के आईडी के बारे में ज़्यादा जानने के लिए, जगह की जानकारी देखें. जगह के आईडी के बारे में सामान्य जानकारी के लिए, जगह के आईडी की खास जानकारी देखें.
  • getPlaceTypes() इस जगह से जुड़े टाइप की सूची दिखाता है.
  • getDistanceMeters() यह फ़ंक्शन, इस जगह और अनुरोध में बताई गई शुरुआती जगह के बीच की सीधी दूरी को मीटर में दिखाता है.

सेशन टोकन

सेशन टोकन, उपयोगकर्ता की ऑटोकंप्लीट खोज की क्वेरी और चुनने के चरणों को बिलिंग के मकसद से एक अलग सेशन में ग्रुप करते हैं. सेशन तब शुरू होता है, जब उपयोगकर्ता कोई क्वेरी टाइप करना शुरू करता है. यह तब खत्म होता है, जब वह कोई जगह चुनता है. हर सेशन में कई क्वेरी हो सकती हैं. इसके बाद, एक जगह चुनी जाती है. सेशन खत्म होने के बाद, टोकन अमान्य हो जाता है. आपके ऐप्लिकेशन को हर सेशन के लिए एक नया टोकन जनरेट करना होगा. हमारा सुझाव है कि आप प्रोग्राम के हिसाब से ऑटोकंप्लीट होने वाले सभी सेशन के लिए, सेशन टोकन का इस्तेमाल करें. जब कोई फ़्रैगमेंट एम्बेड किया जाता है या इंटेंट का इस्तेमाल करके ऑटोकंप्लीट की सुविधा लॉन्च की जाती है, तो एपीआई अपने-आप इसका ध्यान रखता है.

Places SDK for Android, हर सेशन की पहचान करने के लिए AutocompleteSessionToken का इस्तेमाल करता है. हर नया सेशन शुरू होने पर, आपके ऐप्लिकेशन को एक नया सेशन टोकन पास करना चाहिए. इसके बाद, उपयोगकर्ता की चुनी गई जगह की जानकारी पाने के लिए, fetchPlace() को किए जाने वाले अगले कॉल में, जगह के आईडी के साथ वही टोकन पास करना चाहिए.

सेशन टोकन के बारे में ज़्यादा जानें.

ऑटोकंप्लीट के नतीजों को सीमित करना

ऑटोकंप्लीट के नतीजों को किसी खास भौगोलिक क्षेत्र के हिसाब से सीमित किया जा सकता है. इसके अलावा, नतीजों को एक या उससे ज़्यादा जगहों के टाइप या ज़्यादा से ज़्यादा पांच देशों के हिसाब से फ़िल्टर किया जा सकता है. इन पाबंदियों को, ऑटोकंप्लीट सुविधा, AutocompleteSupportFragment, और प्रोग्राम के हिसाब से ऑटोकंप्लीट एपीआई पर लागू किया जा सकता है.

नतीजों को सीमित करने के लिए, यह तरीका अपनाएं:

  • तय किए गए इलाके के नतीजों को प्राथमिकता देने के लिए, setLocationBias() कॉल करें. हालांकि, ऐसा हो सकता है कि तय किए गए इलाके से बाहर के कुछ नतीजे अब भी दिखाए जाएं.
  • तय की गई जगह के हिसाब से सिर्फ़ नतीजे दिखाने के लिए, setLocationRestriction() को कॉल करें. इससे, तय की गई जगह के हिसाब से ही नतीजे दिखेंगे.
  • किसी खास तरह की जगह के हिसाब से नतीजे पाने के लिए, setTypesFilter() को कॉल करें. उदाहरण के लिए, TypeFilter.ADDRESS तय करने पर, आपको सिर्फ़ सटीक पते वाले नतीजे दिखेंगे.
  • सिर्फ़ पांच देशों के नतीजे पाने के लिए, setCountries() को कॉल करें. देशों के नाम, दो वर्णों वाले ISO 3166-1 Alpha-2 के साथ काम करने वाले देश के कोड के तौर पर पास किए जाने चाहिए.

किसी खास इलाके के हिसाब से नतीजे दिखाना

ऑटोकंप्लीट के नतीजों को किसी खास भौगोलिक क्षेत्र के हिसाब से दिखाने के लिए, setLocationBias() को कॉल करें. इसके लिए, RectangularBounds पास करें. यहां दिए गए कोड के उदाहरण में, फ़्रैगमेंट इंस्टेंस पर setLocationBias() को कॉल करने का तरीका बताया गया है. इससे, अपने-आप पूरा होने वाले सुझावों को ऑस्ट्रेलिया के सिडनी इलाके के हिसाब से बायस किया जा सकता है.

Kotlin

        autocompleteFragment.setLocationBias(bounds)

      

Java

        autocompleteFragment.setLocationBias(
                RectangularBounds.newInstance(
                        new LatLng(-33.880490, 151.184363),
                        new LatLng(-33.858754, 151.229596)
                )
        );

      

नतीजों को किसी खास इलाके तक सीमित करना

ऑटोकंप्लीट के नतीजों को किसी खास भौगोलिक क्षेत्र तक सीमित करने के लिए, setLocationRestriction() को कॉल करें. इसके लिए, RectangularBounds पास करें. यहां दिए गए कोड के उदाहरण में, फ़्रैगमेंट इंस्टेंस पर setLocationRestriction() को कॉल करने का तरीका बताया गया है. इससे, सिडनी, ऑस्ट्रेलिया के किसी इलाके के लिए, अपने-आप पूरा होने वाले सुझावों को प्राथमिकता दी जा सकती है.

Kotlin

        autocompleteFragment.setLocationRestriction(bounds)

      

Java

        autocompleteFragment.setLocationRestriction(
                RectangularBounds.newInstance(
                        new LatLng(-33.880490, 151.184363),
                        new LatLng(-33.858754, 151.229596)
                )
        );

      

ध्यान दें: यह पाबंदी सिर्फ़ पूरे रास्तों पर लागू होती है. रेक्टैंगुलर बाउंड्री से बाहर मौजूद सिंथेटिक नतीजे, ऐसी जगह के आधार पर दिखाए जा सकते हैं जो पाबंदी वाली जगह से ओवरलैप होती है.

जगह के टाइप या टाइप कलेक्शन के हिसाब से नतीजे फ़िल्टर करना

ऑटोकंप्लीट की सुविधा के अनुरोध से मिलने वाले नतीजों को सीमित किया जा सकता है, ताकि वे सिर्फ़ किसी खास तरह की जगह के नतीजे दिखाएं. जगह के टाइप पेज पर मौजूद टेबल 1, 2, और 3 में दी गई जगह के टाइप या टाइप कलेक्शन का इस्तेमाल करके, फ़िल्टर तय करें. अगर कोई टाइप नहीं चुना जाता है, तो सभी टाइप दिखते हैं.

ऑटोकंप्लीट के नतीजों को फ़िल्टर करने के लिए, फ़िल्टर सेट करने के लिए setTypesFilter() को कॉल करें.

किसी टाइप या टाइप कलेक्शन फ़िल्टर को तय करने के लिए:

  • जगह के टाइप पर दिखाई गई टेबल 1 और टेबल 2 से, setTypesFilter() को कॉल करें और ज़्यादा से ज़्यादा पांच टाइप वैल्यू तय करें. टाइप की वैल्यू, PlaceTypes में मौजूद कॉन्स्टेंट से तय होती हैं.

  • जगह के टाइप पर दिखाई गई टेबल 3 से, setTypesFilter() को कॉल करें और टाइप कलेक्शन की जानकारी दें. कलेक्शन की वैल्यू, PlaceTypes में मौजूद कॉन्सटेंट से तय होती हैं.

    अनुरोध में, टेबल 3 में दिए गए टाइप में से सिर्फ़ एक टाइप का इस्तेमाल किया जा सकता है. अगर आपने टेबल 3 से कोई वैल्यू चुनी है, तो टेबल 1 या टेबल 2 से कोई वैल्यू नहीं चुनी जा सकती. ऐसा करने पर, गड़बड़ी होती है.

यहां दिए गए कोड के उदाहरण में, AutocompleteSupportFragment पर setTypesFilter() को कॉल किया गया है. साथ ही, इसमें टाइप की कई वैल्यू दी गई हैं.

Kotlin

    autocompleteFragment.setTypesFilter(listOf("landmark", "restaurant", "store"))

      

Java

    autocompleteFragment.setTypesFilter(List.of("landmark", "restaurant", "store"));

      

यहां दिए गए कोड के उदाहरण में, टाइप कलेक्शन तय करके, सिर्फ़ सटीक पते वाले नतीजे दिखाने के लिए, AutocompleteSupportFragment पर setTypesFilter() को कॉल करने का तरीका दिखाया गया है.

Kotlin

    autocompleteFragment.setTypesFilter(listOf(PlaceTypes.ADDRESS))

      

Java

    autocompleteFragment.setTypesFilter(List.of(PlaceTypes.ESTABLISHMENT));

      

कोड के इस उदाहरण में, IntentBuilder पर setTypesFilter() को कॉल करने का तरीका दिखाया गया है. इससे, टाइप कलेक्शन की जानकारी देकर, सिर्फ़ सटीक पते वाले नतीजे दिखाने वाला फ़िल्टर सेट किया जा सकता है.

Kotlin

    val intent = Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields)
        .setTypesFilter(listOf(PlaceTypes.ESTABLISHMENT))
        .build(this)

      

Java

    Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields)
            .setTypesFilter(List.of(PlaceTypes.ESTABLISHMENT))
            .build(this);

      

देश के हिसाब से नतीजे फ़िल्टर करना

पांच देशों तक के लिए, अपने-आप पूरा होने वाले नतीजों को फ़िल्टर करने के लिए, setCountries() को कॉल करें. इससे देश का कोड सेट हो जाएगा. इसके बाद, फ़िल्टर को किसी फ़्रैगमेंट या इंटेंट में पास करें. देशों के नाम, दो वर्णों वाले ISO 3166-1 Alpha-2 के साथ काम करने वाले देश के कोड के तौर पर पास किए जाने चाहिए.

यहां दिए गए कोड के उदाहरण में, AutocompleteSupportFragment पर setCountries() को कॉल करने का तरीका बताया गया है. इससे, सिर्फ़ तय किए गए देशों के नतीजे दिखाने वाला फ़िल्टर सेट किया जा सकता है.

Kotlin

    autocompleteFragment.setCountries("AU", "NZ")

      

Java

    autocompleteFragment.setCountries("AU", "NZ");

      

इस्तेमाल करने की सीमाएँ

Places API (लेगसी) और Places SDK for Android (लेगसी) के इस्तेमाल पर, अब हर दिन किए जाने वाले अनुरोधों की संख्या (क्यूपीडी) की सीमा लागू नहीं होती. हालांकि, इस्तेमाल करने की ये सीमाएं अब भी लागू होंगी:

  • अनुरोध संख्या सीमित करने की दर 6,000 क्यूपीएम (हर मिनट में अनुरोध) है. इसकी गिनती, एक ही प्रोजेक्ट के क्रेडेंशियल का इस्तेमाल करने वाले सभी ऐप्लिकेशन के लिए, क्लाइंट-साइड और सर्वर-साइड अनुरोधों के योग के तौर पर की जाती है.

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

  • अगर आपका ऐप्लिकेशन, ऑटोकंप्लीट सेवा का इस्तेमाल प्रोग्राम के हिसाब से करता है, तो आपके यूज़र इंटरफ़ेस (यूआई) में, 'Powered by Google' एट्रिब्यूशन दिखना चाहिए. इसके अलावा, यह Google के ब्रैंड वाले मैप में भी दिख सकता है.
  • अगर आपका ऐप्लिकेशन, ऑटोकंप्लीट विजेट का इस्तेमाल करता है, तो आपको कुछ और करने की ज़रूरत नहीं है. ज़रूरी एट्रिब्यूशन डिफ़ॉल्ट रूप से दिखता है.
  • अगर आईडी से जगह की जानकारी पाने के बाद, जगह की अतिरिक्त जानकारी को वापस लाया जाता है और दिखाया जाता है, तो आपको तीसरे पक्ष के एट्रिब्यूशन भी दिखाने होंगे.

ज़्यादा जानकारी के लिए, एट्रिब्यूशन से जुड़ा दस्तावेज़ देखें.

किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को ऑप्टिमाइज़ करना

इस सेक्शन में, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) का ज़्यादा से ज़्यादा फ़ायदा पाने के सबसे सही तरीके बताए गए हैं.

यहां कुछ सामान्य दिशा-निर्देश दिए गए हैं:

  • काम करने वाला यूज़र इंटरफ़ेस बनाने का सबसे आसान तरीका यह है कि Maps JavaScript API Place Autocomplete (लेगसी) विजेट, Android के लिए Places SDK Place Autocomplete (लेगसी) विजेट या iOS के लिए Places SDK Place Autocomplete (लेगसी) यूज़र इंटरफ़ेस कंट्रोल का इस्तेमाल किया जाए.
  • शुरू से ही, Place Autocomplete (लेगसी) के ज़रूरी डेटा फ़ील्ड के बारे में जानें.
  • जगह की जानकारी के आधार पर नतीजे दिखाने और जगह की जानकारी के आधार पर पाबंदी लगाने वाले फ़ील्ड ज़रूरी नहीं हैं. हालांकि, इनसे ऑटोकंप्लीट की सुविधा की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है.
  • गड़बड़ी को मैनेज करने की सुविधा का इस्तेमाल करें, ताकि एपीआई से गड़बड़ी मिलने पर आपका ऐप्लिकेशन सही तरीके से काम करता रहे.
  • पक्का करें कि आपका ऐप्लिकेशन, कोई विकल्प न चुने जाने पर उपयोगकर्ताओं को आगे बढ़ने का तरीका उपलब्ध कराता हो.

लागत को ऑप्टिमाइज़ करने के सबसे सही तरीके

लागत को ऑप्टिमाइज़ करने की बुनियादी सुविधा

किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) का इस्तेमाल करने की लागत को ऑप्टिमाइज़ करने के लिए, जगह के बारे में ज़्यादा जानकारी (लेगसी) और किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के विजेट में फ़ील्ड मास्क का इस्तेमाल करें. इससे आपको सिर्फ़ किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के डेटा फ़ील्ड मिलेंगे.

लागत ऑप्टिमाइज़ेशन की बेहतर सेटिंग

किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को प्रोग्राम के हिसाब से लागू करें, ताकि एसकेयू: ऑटोकंप्लीट - हर अनुरोध के लिए कीमत को ऐक्सेस किया जा सके और चुनी गई जगह के बारे में, Place Details (लेगसी) के बजाय Geocoding API के नतीजों का अनुरोध किया जा सके. Geocoding API के साथ हर अनुरोध के हिसाब से कीमत तय करने का मॉडल, हर सेशन (सेशन के हिसाब से) के हिसाब से कीमत तय करने के मॉडल की तुलना में ज़्यादा किफ़ायती होता है. हालांकि, इसके लिए यहां दी गई दोनों शर्तें पूरी होनी चाहिए:

  • अगर आपको सिर्फ़ उपयोगकर्ता की चुनी गई जगह का अक्षांश और देशांतर या पता चाहिए, तो Geocoding API, Place Details (लेगसी) API के कॉल की तुलना में कम कीमत पर यह जानकारी उपलब्ध कराता है.
  • अगर उपयोगकर्ता, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के लिए, औसतन चार या इससे कम अनुरोधों में से, ऑटोकंप्लीट के सुझाव को चुनते हैं, तो हर अनुरोध के हिसाब से कीमत तय करने का विकल्प, हर सेशन के हिसाब से कीमत तय करने के विकल्प की तुलना में ज़्यादा किफ़ायती हो सकता है.
अपनी ज़रूरतों के हिसाब से Place Autocomplete (लेगसी) लागू करने का तरीका चुनने के लिए, उस टैब को चुनें जो इस सवाल के आपके जवाब से मेल खाता हो.

क्या आपके ऐप्लिकेशन को चुने गए अनुमान के पते और अक्षांश/देशांतर के अलावा, किसी और जानकारी की ज़रूरत है?

हां, ज़्यादा जानकारी चाहिए

सेशन पर आधारित Place Autocomplete (लेगसी) का इस्तेमाल, Place Details (लेगसी) के साथ करें.
आपके ऐप्लिकेशन को जगह की जानकारी (लेगसी) की ज़रूरत होती है. जैसे, जगह का नाम, कारोबार की स्थिति या कारोबार के खुले होने का समय. इसलिए, जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को लागू करने के लिए, आपको हर सेशन के लिए सेशन टोकन का इस्तेमाल करना चाहिए. यह टोकन, प्रोग्राम के हिसाब से या JavaScript, Android या iOS विजेट में पहले से मौजूद होता है. साथ ही, आपको लागू होने वाले Places डेटा एसकेयू का इस्तेमाल करना चाहिए. यह इस बात पर निर्भर करता है कि आपने जगह की जानकारी वाले किन फ़ील्ड का अनुरोध किया है.1

विजेट लागू करना
सेशन मैनेजमेंट की सुविधा, JavaScript, Android, या iOS विजेट में अपने-आप शामिल हो जाती है. इसमें, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोध और चुने गए सुझाव के लिए, Place Details (लेगसी) का अनुरोध, दोनों शामिल हैं. fields पैरामीटर के बारे में जानकारी देना न भूलें, ताकि यह पक्का किया जा सके कि आपने सिर्फ़ Place Autocomplete (लेगसी) डेटा फ़ील्ड के लिए अनुरोध किया है.

प्रोग्राम के हिसाब से लागू करना
Place Autocomplete (लेगसी) के अनुरोधों के साथ सेशन टोकन का इस्तेमाल करें. चुनी गई भविष्यवाणी के बारे में जगह की जानकारी (लेगसी) का अनुरोध करते समय, इन पैरामीटर को शामिल करें:

  1. किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के जवाब से मिला जगह का आईडी
  2. किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोध में इस्तेमाल किया गया सेशन टोकन
  3. fields पैरामीटर, Place Autocomplete (लेगसी) के उन डेटा फ़ील्ड के बारे में बताता है जिनकी आपको ज़रूरत है

नहीं, सिर्फ़ पते और जगह की जानकारी की ज़रूरत है

Geocoding API, आपके ऐप्लिकेशन के लिए Place Details (लेगसी) की तुलना में ज़्यादा किफ़ायती विकल्प हो सकता है. हालांकि, यह इस बात पर निर्भर करता है कि किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) का इस्तेमाल किस तरह किया जा रहा है. हर ऐप्लिकेशन के लिए, जगह की जानकारी अपने-आप भरने की सुविधा (लेगसी) की परफ़ॉर्मेंस अलग-अलग होती है. यह इस बात पर निर्भर करती है कि उपयोगकर्ता क्या डाल रहे हैं, ऐप्लिकेशन का इस्तेमाल कहां किया जा रहा है, और क्या परफ़ॉर्मेंस ऑप्टिमाइज़ेशन के सबसे सही तरीके लागू किए गए हैं.

इस सवाल का जवाब देने के लिए, यह विश्लेषण करें कि आपके ऐप्लिकेशन में, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के सुझाव को चुनने से पहले, कोई उपयोगकर्ता औसतन कितने वर्ण टाइप करता है.

क्या आपके उपयोगकर्ता, औसतन चार या इससे कम अनुरोधों में, Place Autocomplete (लेगसी) की सुविधा से मिले सुझाव को चुनते हैं?

हां

सेशन टोकन के बिना, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को प्रोग्राम के हिसाब से लागू करना और सुझाई गई जगह पर Geocoding API को कॉल करना.
Geocoding API, पते और अक्षांश/देशांतर के निर्देशांक उपलब्ध कराता है. चार ऑटोकंप्लीट - हर अनुरोध के लिए अनुरोध करने और चुनी गई जगह के सुझाव के बारे में Geocoding API कॉल करने की लागत, हर सेशन के लिए किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) की लागत से कम होती है.1

परफ़ॉर्मेंस के सबसे सही तरीके अपनाएं, ताकि आपके उपयोगकर्ताओं को कम से कम वर्णों में वह अनुमान मिल सके जो वे खोज रहे हैं.

नहीं

Place Details (लेगसी) के साथ, सेशन के हिसाब से Place Autocomplete (लेगसी) का इस्तेमाल करना.
किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के सुझाव को चुनने से पहले, उपयोगकर्ता के अनुरोधों की औसत संख्या, हर सेशन की कीमत से ज़्यादा होती है. इसलिए, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को लागू करने के लिए, आपको किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोधों और उससे जुड़े जगह की जानकारी (लेगसी) के अनुरोध, दोनों के लिए सेशन टोकन का इस्तेमाल करना चाहिए हर सेशन. 1

विजेट लागू करना
सेशन मैनेजमेंट की सुविधा, JavaScript, Android, या iOS विजेट में अपने-आप शामिल हो जाती है. इसमें, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोध और चुने गए सुझाव के लिए, Place Details (लेगसी) का अनुरोध, दोनों शामिल हैं. fields पैरामीटर की जानकारी ज़रूर दें, ताकि यह पक्का किया जा सके कि आपने सिर्फ़ ज़रूरी फ़ील्ड के लिए अनुरोध किया है.

प्रोग्राम के हिसाब से लागू करना
किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोधों के साथ, सेशन टोकन का इस्तेमाल करें. चुने गए सुझाव के बारे में, Place Details (लेगसी) का अनुरोध करते समय, ये पैरामीटर शामिल करें:

  1. Place Autocomplete (लेगसी) के जवाब से मिला जगह का आईडी
  2. किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोध में इस्तेमाल किया गया सेशन टोकन
  3. fields पैरामीटर, जो बुनियादी डेटा फ़ील्ड के बारे में बताता है. जैसे, पता और ज्यामिति

जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोधों को कुछ समय के लिए रोकें
जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के अनुरोध को तब तक के लिए रोका जा सकता है, जब तक उपयोगकर्ता पहले तीन या चार वर्ण टाइप न कर ले. इससे आपका ऐप्लिकेशन कम अनुरोध करेगा. उदाहरण के लिए, अगर उपयोगकर्ता के तीन वर्ण टाइप करने के बाद हर वर्ण के लिए Place Autocomplete (लेगसी) अनुरोध किए जाते हैं, तो इसका मतलब है कि अगर उपयोगकर्ता सात वर्ण टाइप करता है और फिर किसी ऐसे सुझाव को चुनता है जिसके लिए आपने Geocoding API का एक अनुरोध किया है, तो कुल लागत, Place Autocomplete (लेगसी) के चार अनुरोध + Geocoding के लिए होगी.1

अगर अनुरोधों में देरी करने से, प्रोग्राम के हिसाब से किए जाने वाले अनुरोधों की औसत संख्या चार से कम हो सकती है, तो Geocoding API के साथ, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को लागू करने के लिए दिए गए दिशा-निर्देशों का पालन करें. ध्यान दें कि अनुरोधों में देरी होने पर, उपयोगकर्ता को इंतज़ार करना पड़ सकता है. ऐसा इसलिए, क्योंकि हो सकता है कि उपयोगकर्ता को हर नए कीस्ट्रोक के साथ सुझाव देखने की उम्मीद हो.

परफ़ॉर्मेंस के सबसे सही तरीकों का इस्तेमाल करें, ताकि आपके उपयोगकर्ताओं को कम वर्णों में वह अनुमान मिल सके जिसकी वे तलाश कर रहे हैं.


  1. शुल्क की जानकारी के लिए, Google Maps Platform के शुल्क की सूचियां देखें.

परफ़ॉर्मेंस के सबसे सही तरीके

यहां दिए गए दिशा-निर्देशों में, जगह के नाम अपने-आप भरने की सुविधा (लेगसी) की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के तरीके बताए गए हैं:

  • किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को लागू करते समय, देश से जुड़ी पाबंदियां, जगह के हिसाब से सुझावों को प्राथमिकता देना, और (प्रोग्राम के हिसाब से लागू करने के लिए) भाषा की प्राथमिकता जोड़ें. विजेट के लिए भाषा की प्राथमिकता सेट करने की ज़रूरत नहीं होती, क्योंकि वे उपयोगकर्ता के ब्राउज़र या मोबाइल डिवाइस से भाषा की प्राथमिकताएं चुनते हैं.
  • अगर किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) के साथ कोई मैप मौजूद है, तो मैप के व्यूपोर्ट के हिसाब से जगह की जानकारी को बायस किया जा सकता है.
  • जब कोई उपयोगकर्ता, Place Autocomplete (लेगसी) की किसी भी भविष्यवाणी को नहीं चुनता है, तो आम तौर पर ऐसा इसलिए होता है, क्योंकि उनमें से कोई भी भविष्यवाणी, उपयोगकर्ता के हिसाब से सही नहीं होती. ऐसे में, ज़्यादा काम के नतीजे पाने के लिए, उपयोगकर्ता के ओरिजनल इनपुट का फिर से इस्तेमाल किया जा सकता है:
    • अगर आपको लगता है कि उपयोगकर्ता सिर्फ़ पते की जानकारी डालेगा, तो Geocoding API को कॉल करने के लिए, उपयोगकर्ता के ओरिजनल इनपुट का फिर से इस्तेमाल करें.
    • अगर आपको लगता है कि उपयोगकर्ता किसी जगह के नाम या पते के हिसाब से क्वेरी डालेगा, तो Place Details (लेगसी) के अनुरोध का इस्तेमाल करें. अगर आपको सिर्फ़ किसी खास इलाके के नतीजे चाहिए, तो जगह के हिसाब से नतीजे दिखाने की सुविधा का इस्तेमाल करें.
    इन स्थितियों में भी Geocoding API का इस्तेमाल करना सबसे सही रहता है:
    • ऐसे लोग जो सबप्रीमाइज़ के पते डालते हैं. जैसे, किसी बिल्डिंग में मौजूद खास यूनिट या अपार्टमेंट के पते. उदाहरण के लिए, चेक गणराज्य का पता "Stroupežnického 3191/17, Praha" डालने पर, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) में, पते का अधूरा सुझाव मिलता है.
    • उपयोगकर्ता, न्यूयॉर्क शहर में "23-30 29th St, Queens" या हवाई के काउआई द्वीप पर "47-380 Kamehameha Hwy, Kaneohe" जैसे सड़क के सेगमेंट के प्रीफ़िक्स वाले पते डालते हैं.

लोकेशन बायसिंग

location और radius पैरामीटर पास करके, नतीजों को किसी खास इलाके के हिसाब से दिखाएं. इससे Place Autocomplete (लेगसी) को यह निर्देश मिलता है कि वह तय किए गए इलाके में मौजूद जगहों के नतीजे दिखाए. हालांकि, तय की गई जगह से बाहर के नतीजे भी दिख सकते हैं. includedRegionCodes पैरामीटर का इस्तेमाल करके, नतीजों को फ़िल्टर किया जा सकता है. इससे सिर्फ़ किसी देश में मौजूद जगहों को दिखाया जा सकता है.

जगह की जानकारी को सीमित करना

locationRestriction पैरामीटर पास करके, नतीजों को किसी खास इलाके तक सीमित करें.

location और radius पैरामीटर से तय की गई जगह के हिसाब से भी नतीजों को सीमित किया जा सकता है. इसके लिए, strictbounds पैरामीटर जोड़ें. इससे, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा (लेगसी) को, सिर्फ़ उस इलाके के नतीजे दिखाने का निर्देश मिलता है.

समस्या का हल

हालांकि, कई तरह की गड़बड़ियां हो सकती हैं, लेकिन आपके ऐप्लिकेशन में होने वाली ज़्यादातर गड़बड़ियां, आम तौर पर कॉन्फ़िगरेशन की गड़बड़ियों की वजह से होती हैं. उदाहरण के लिए, गलत एपीआई पासकोड का इस्तेमाल किया गया हो या एपीआई पासकोड को गलत तरीके से कॉन्फ़िगर किया गया हो. इसके अलावा, कोटा से जुड़ी गड़बड़ियां भी हो सकती हैं. जैसे, आपके ऐप्लिकेशन ने अपना कोटा पार कर लिया हो. कोटा के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं देखें.

ऑटोकंप्लीट कंट्रोल का इस्तेमाल करते समय होने वाली गड़बड़ियों की जानकारी, onActivityResult() कॉलबैक में मिलती है. नतीजे के लिए स्टेटस मैसेज पाने के लिए, Autocomplete.getStatus() को कॉल करें.