স্বয়ংসম্পূর্ণ রাখুন

প্ল্যাটফর্ম নির্বাচন করুন: Android iOS জাভাস্ক্রিপ্ট ওয়েব পরিষেবা

Android এর জন্য Places SDK-এ স্বয়ংসম্পূর্ণ পরিষেবা ব্যবহারকারীর অনুসন্ধান প্রশ্নের উত্তরে স্থানের পূর্বাভাস প্রদান করে। ব্যবহারকারীর ধরন হিসাবে, স্বয়ংসম্পূর্ণ পরিষেবাটি ব্যবসা, ঠিকানা, প্লাস কোড এবং আগ্রহের জায়গাগুলির মতো জায়গাগুলির জন্য পরামর্শ প্রদান করে৷

আপনি নিম্নলিখিত উপায়ে আপনার অ্যাপে স্বয়ংসম্পূর্ণ যোগ করতে পারেন:

একটি স্বয়ংসম্পূর্ণ উইজেট যোগ করুন

স্বয়ংসম্পূর্ণ উইজেট হল অন্তর্নির্মিত স্বয়ংসম্পূর্ণ কার্যকারিতা সহ একটি অনুসন্ধান ডায়ালগ। একজন ব্যবহারকারী অনুসন্ধানের পদে প্রবেশ করার সাথে সাথে, উইজেটটি বেছে নেওয়ার জন্য পূর্বাভাসিত স্থানগুলির একটি তালিকা উপস্থাপন করে। যখন ব্যবহারকারী একটি নির্বাচন করে, একটি Place উদাহরণ প্রদান করা হয়, যা আপনার অ্যাপটি নির্বাচিত স্থান সম্পর্কে বিশদ পেতে ব্যবহার করতে পারে।

আপনার অ্যাপে স্বয়ংসম্পূর্ণ উইজেট যোগ করার জন্য দুটি বিকল্প রয়েছে:

বিকল্প 1: একটি স্বয়ংসম্পূর্ণ সাপোর্ট ফ্র্যাগমেন্ট এম্বেড করুন

আপনার অ্যাপে একটি AutocompleteSupportFragment যোগ করতে, নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. আপনার কার্যকলাপের XML লেআউটে একটি খণ্ড যোগ করুন।
  2. আপনার কার্যকলাপ বা টুকরা একটি শ্রোতা যোগ করুন.

একটি কার্যকলাপে স্বয়ংসম্পূর্ণ সমর্থন ফ্র্যাগমেন্ট যোগ করুন

একটি কার্যকলাপে AutocompleteSupportFragment যোগ করতে, একটি XML লেআউটে একটি নতুন খণ্ড যোগ করুন। যেমন:

<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"
  />
  • ডিফল্টরূপে, খণ্ডটির কোনো সীমানা বা পটভূমি নেই। একটি সামঞ্জস্যপূর্ণ চাক্ষুষ উপস্থিতি প্রদান করার জন্য, একটি কার্ডভিউ এর মতো অন্য লেআউট উপাদানের মধ্যে খণ্ডটিকে নেস্ট করুন।
  • আপনি যদি স্বয়ংসম্পূর্ণ খণ্ডটি ব্যবহার করেন এবং onActivityResult ওভাররাইড করতে চান, তাহলে আপনাকে অবশ্যই super.onActivityResult কল করতে হবে, অন্যথায় খণ্ডটি সঠিকভাবে কাজ করবে না।

একটি কার্যকলাপে একটি স্থান নির্বাচন শ্রোতা যোগ করুন

PlaceSelectionListener ব্যবহারকারীর নির্বাচনের প্রতিক্রিয়া হিসাবে একটি স্থান ফেরত দেওয়ার কাজ পরিচালনা করে। নিম্নলিখিত কোডটি খণ্ডটির একটি রেফারেন্স তৈরি করা এবং আপনার AutocompleteSupportFragment ফ্র্যাগমেন্টে একজন শ্রোতা যোগ করা দেখায়:

কোটলিন

    // 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.NAME))

    // Set up a PlaceSelectionListener to handle the response.
    autocompleteFragment.setOnPlaceSelectedListener(object : PlaceSelectionListener {
        override fun onPlaceSelected(place: Place) {
            // TODO: Get info about the selected place.
            Log.i(TAG, "Place: ${place.name}, ${place.id}")
        }

        override fun onError(status: Status) {
            // TODO: Handle the error.
            Log.i(TAG, "An error occurred: $status")
        }
    })

      

জাভা

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

    // Specify the types of place data to return.
    autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME));

    // Set up a PlaceSelectionListener to handle the response.
    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(@NonNull Place place) {
            // TODO: Get info about the selected place.
            Log.i(TAG, "Place: " + place.getName() + ", " + place.getId());
        }


        @Override
        public void onError(@NonNull Status status) {
            // TODO: Handle the error.
            Log.i(TAG, "An error occurred: " + status);
        }
    });

      

বিকল্প 2: স্বয়ংসম্পূর্ণ কার্যকলাপ চালু করতে একটি অভিপ্রায় ব্যবহার করুন

আপনি যদি চান যে আপনার অ্যাপটি একটি ভিন্ন ন্যাভিগেশনাল ফ্লো ব্যবহার করুক (উদাহরণস্বরূপ, অনুসন্ধান ক্ষেত্রের পরিবর্তে একটি আইকন থেকে স্বয়ংসম্পূর্ণ অভিজ্ঞতা ট্রিগার করতে), আপনার অ্যাপটি একটি অভিপ্রায় ব্যবহার করে স্বয়ংসম্পূর্ণ চালু করতে পারে।

একটি অভিপ্রায় ব্যবহার করে স্বয়ংসম্পূর্ণ উইজেট চালু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. পছন্দসই Autocomplete মোড পাস করে একটি অভিপ্রায় তৈরি করতে Autocomplete.IntentBuilder ব্যবহার করুন।
  2. একটি অ্যাক্টিভিটি ফলাফল লঞ্চার রেজিস্টার registerForActivityResult সংজ্ঞায়িত করুন যা উদ্দেশ্যটি চালু করতে এবং ফলাফলে ব্যবহারকারীর নির্বাচিত স্থানের পূর্বাভাস পরিচালনা করতে ব্যবহার করা যেতে পারে।

একটি স্বয়ংসম্পূর্ণ অভিপ্রায় তৈরি করুন

নীচের উদাহরণটি একটি উদ্দেশ্য হিসাবে স্বয়ংসম্পূর্ণ উইজেট চালু করার জন্য একটি উদ্দেশ্য তৈরি করতে Autocomplete.IntentBuilder ব্যবহার করে:

কোটলিন

    // 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.NAME)

    // Start the autocomplete intent.
    val intent = Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields)
        .build(this)
    startAutocomplete.launch(intent)

      

জাভা

    // 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.NAME);

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

      

স্বয়ংসম্পূর্ণ উইজেট চালু করার জন্য একটি অভিপ্রায় ব্যবহার করার সময়, আপনি ওভারলে বা পূর্ণ-স্ক্রীন প্রদর্শন মোড থেকে চয়ন করতে পারেন৷ নিম্নলিখিত স্ক্রিনশটগুলি যথাক্রমে প্রতিটি প্রদর্শন মোড দেখায়:

ওভারলে মোডে প্রদর্শিত হলে, স্বয়ংসম্পূর্ণ উইজেটটি কলিং UI-এর উপরে সুপারইম্পোজ করা হয়।
চিত্র 1 : ওভারলে মোডে স্বয়ংসম্পূর্ণ উইজেট
পূর্ণস্ক্রীন মোডে প্রদর্শিত হলে, স্বয়ংসম্পূর্ণ উইজেট পুরো স্ক্রীন পূর্ণ করে।
চিত্র 2 : ফুলস্ক্রিন মোডে স্বয়ংসম্পূর্ণ উইজেট

অভিপ্রায় ফলাফলের জন্য একটি কলব্যাক নিবন্ধন করুন

ব্যবহারকারী একটি স্থান নির্বাচন করলে একটি বিজ্ঞপ্তি পেতে, একটি registerForActivityResult() লঞ্চার সংজ্ঞায়িত করুন, যা কার্যকলাপটি চালু করে এবং নিম্নলিখিত উদাহরণে দেখানো ফলাফলটি পরিচালনা করে। ব্যবহারকারী একটি ভবিষ্যদ্বাণী নির্বাচন করলে, এটি ফলাফল বস্তুর মধ্যে থাকা অভিপ্রায়ে বিতরণ করা হবে। যেহেতু অভিপ্রায়টি Autocomplete.IntentBuilder দ্বারা তৈরি করা হয়েছিল, পদ্ধতি Autocomplete.getPlaceFromIntent() এটি থেকে স্থান বস্তুটি বের করতে পারে।

কোটলিন

private val startAutocomplete =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
        if (result.resultCode == Activity.RESULT_OK) {
            val intent = result.data
            if (intent != null) {
                val place = Autocomplete.getPlaceFromIntent(intent)
                Log.i(
                    TAG, "Place: ${place.name}, ${place.id}"
                )
            }
        } else if (result.resultCode == Activity.RESULT_CANCELED) {
            // The user canceled the operation.
            Log.i(TAG, "User canceled autocomplete")
        }
    }

      

জাভা

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);
                    Log.i(TAG, "Place: ${place.getName()}, ${place.getId()}");
                }
            } else if (result.getResultCode() == Activity.RESULT_CANCELED) {
                // The user canceled the operation.
                Log.i(TAG, "User canceled autocomplete");
            }
        });

      

প্রোগ্রামগতভাবে স্থানের পূর্বাভাস পাওয়া

স্বয়ংসম্পূর্ণ উইজেট দ্বারা প্রদত্ত UI-এর বিকল্প হিসাবে আপনি একটি কাস্টম অনুসন্ধান UI তৈরি করতে পারেন৷ এটি করার জন্য, আপনার অ্যাপকে প্রোগ্রামগতভাবে স্থানের পূর্বাভাস পেতে হবে। আপনার অ্যাপ PlacesClient.findAutocompletePredictions() কল করে, নিম্নলিখিত প্যারামিটার সহ একটি FindAutocompletePredictionsRequest অবজেক্ট পাস করে স্বয়ংসম্পূর্ণ API থেকে পূর্বাভাসিত স্থানের নাম এবং/অথবা ঠিকানাগুলির একটি তালিকা পেতে পারে:

  • প্রয়োজনীয়: ব্যবহারকারীর দ্বারা টাইপ করা পাঠ্য ধারণকারী একটি query স্ট্রিং।
  • প্রস্তাবিত: একটি AutocompleteSessionToken , যা বিলিং উদ্দেশ্যে একটি পৃথক সেশনে ব্যবহারকারী অনুসন্ধানের প্রশ্ন এবং নির্বাচনের পর্যায়গুলিকে গোষ্ঠীভুক্ত করে। সেশন শুরু হয় যখন ব্যবহারকারী একটি ক্যোয়ারী টাইপ করা শুরু করে এবং যখন তারা একটি স্থান নির্বাচন করে তখন শেষ হয়।
  • প্রস্তাবিত: একটি RectangularBounds অবজেক্ট, যা অক্ষাংশ এবং দ্রাঘিমাংশের সীমা নির্দিষ্ট করে নির্দিষ্ট অঞ্চলের ফলাফলগুলিকে সীমাবদ্ধ করতে
  • ঐচ্ছিক: এক বা একাধিক দুই-অক্ষরের দেশের কোড s (ISO 3166-1 Alpha-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() এ একটি সম্পূর্ণ কল দেখায়।

কোটলিন

    // 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.ADDRESS))
            .setSessionToken(token)
            .setQuery(query)
            .build()
    placesClient.findAutocompletePredictions(request)
        .addOnSuccessListener { response: FindAutocompletePredictionsResponse ->
            for (prediction in response.autocompletePredictions) {
                Log.i(TAG, prediction.placeId)
                Log.i(TAG, prediction.getPrimaryText(null).toString())
            }
        }.addOnFailureListener { exception: Exception? ->
            if (exception is ApiException) {
                Log.e(TAG, "Place not found: ${exception.statusCode}")
            }
        }

      

জাভা

    // 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(Arrays.asList(PlaceTypes.ADDRESS))
            .setSessionToken(token)
            .setQuery(query)
            .build();

    placesClient.findAutocompletePredictions(request).addOnSuccessListener((response) -> {
        for (AutocompletePrediction prediction : response.getAutocompletePredictions()) {
            Log.i(TAG, prediction.getPlaceId());
            Log.i(TAG, prediction.getPrimaryText(null).toString());
        }
    }).addOnFailureListener((exception) -> {
        if (exception instanceof ApiException) {
            ApiException apiException = (ApiException) exception;
            Log.e(TAG, "Place not found: " + apiException.getStatusCode());
        }
    });

      

API একটি Task একটি FindAutocompletePredictionsResponse প্রদান করে। FindAutocompletePredictionsResponseAutocompletePrediction বস্তুর একটি তালিকা রয়েছে যা ভবিষ্যদ্বাণী করা স্থানগুলিকে প্রতিনিধিত্ব করে। ক্যোয়ারী এবং ফিল্টারের মানদণ্ডের সাথে সম্পর্কিত কোন পরিচিত স্থান না থাকলে তালিকাটি খালি হতে পারে।

প্রতিটি পূর্বাভাসিত স্থানের জন্য, আপনি স্থানের বিবরণ পুনরুদ্ধার করতে নিম্নলিখিত পদ্ধতিতে কল করতে পারেন:

  • getFullText(CharacterStyle) একটি স্থানের বিবরণের সম্পূর্ণ টেক্সট প্রদান করে। এটি প্রাথমিক এবং মাধ্যমিক পাঠ্যের সংমিশ্রণ। উদাহরণ: " আইফেল টাওয়ার, অ্যাভিনিউ আনাতোল ফ্রান্স, প্যারিস, ফ্রান্স "। এছাড়াও, এই পদ্ধতিটি আপনাকে বর্ণনার বিভাগগুলিকে হাইলাইট করতে দেয় যা আপনার পছন্দের শৈলীর সাথে অনুসন্ধানের সাথে মেলে, CharacterStyle ব্যবহার করে। CharacterStyle প্যারামিটার ঐচ্ছিক। আপনি কোনো হাইলাইট করার প্রয়োজন না হলে এটি নাল সেট করুন।
  • getPrimaryText(CharacterStyle) একটি স্থানের বর্ণনা দিয়ে মূল পাঠ্য ফেরত দেয়। এটি সাধারণত জায়গার নাম। উদাহরণ: " আইফেল টাওয়ার ", এবং " 123 পিট স্ট্রিট "।
  • getSecondaryText(CharacterStyle) একটি স্থানের বিবরণের সহায়ক পাঠ্য প্রদান করে। এটি দরকারী, উদাহরণস্বরূপ, স্বয়ংসম্পূর্ণ পূর্বাভাস দেখানোর সময় একটি দ্বিতীয় লাইন হিসাবে। উদাহরণ: " এভিনিউ আনাতোল ফ্রান্স, প্যারিস, ফ্রান্স ", এবং " সিডনি, নিউ সাউথ ওয়েলস "।
  • getPlaceId() পূর্বাভাসিত স্থানের স্থান আইডি প্রদান করে। একটি স্থান আইডি একটি পাঠ্য শনাক্তকারী যা একটি স্থানকে অনন্যভাবে সনাক্ত করে, যা আপনি পরে আবার Place বস্তুটি পুনরুদ্ধার করতে ব্যবহার করতে পারেন। Android এর জন্য Places SDK-এ স্থান আইডি সম্পর্কে আরও তথ্যের জন্য, স্থানের বিবরণ দেখুন। স্থান আইডি সম্পর্কে সাধারণ তথ্যের জন্য, স্থান আইডি ওভারভিউ দেখুন।
  • getPlaceTypes() এই স্থানের সাথে যুক্ত স্থানের প্রকারের তালিকা প্রদান করে।
  • getDistanceMeters() এই স্থান এবং অনুরোধে উল্লিখিত উৎসের মধ্যে মিটারে সরলরেখার দূরত্ব প্রদান করে।

সেশন টোকেন

সেশন টোকেনগুলি একটি ব্যবহারকারীর স্বয়ংসম্পূর্ণ অনুসন্ধানের প্রশ্ন এবং নির্বাচনের পর্যায়গুলিকে বিলিং উদ্দেশ্যে একটি পৃথক সেশনে গোষ্ঠীভুক্ত করে। সেশন শুরু হয় যখন ব্যবহারকারী একটি ক্যোয়ারী টাইপ করা শুরু করে এবং যখন তারা একটি স্থান নির্বাচন করে তখন শেষ হয়। প্রতিটি সেশনে একাধিক প্রশ্ন থাকতে পারে, তারপরে একটি স্থান নির্বাচন। একবার একটি অধিবেশন শেষ হয়ে গেলে, টোকেনটি আর বৈধ থাকে না; আপনার অ্যাপকে অবশ্যই প্রতিটি সেশনের জন্য একটি নতুন টোকেন তৈরি করতে হবে। আমরা সমস্ত প্রোগ্রাম্যাটিক স্বয়ংসম্পূর্ণ সেশনের জন্য সেশন টোকেন ব্যবহার করার পরামর্শ দিই (যখন আপনি একটি খণ্ড এম্বেড করেন, বা একটি অভিপ্রায় ব্যবহার করে স্বয়ংসম্পূর্ণ চালু করেন, তখন API স্বয়ংক্রিয়ভাবে এটির যত্ন নেয়)।

Android এর জন্য Places SDK প্রতিটি সেশন সনাক্ত করতে একটি AutocompleteSessionToken ব্যবহার করে। আপনার অ্যাপটিকে প্রতিটি নতুন সেশন শুরু করার পরে একটি নতুন সেশন টোকেন পাস করা উচিত, তারপর ব্যবহারকারীর দ্বারা নির্বাচিত স্থানটির জন্য স্থানের বিবরণ পুনরুদ্ধার করার জন্য fetchPlace() এ পরবর্তী কলে একটি প্লেস আইডি সহ একই টোকেন পাস করা উচিত।

সেশন টোকেন সম্পর্কে আরও জানুন

স্বয়ংসম্পূর্ণ ফলাফল সীমাবদ্ধ

আপনি একটি নির্দিষ্ট ভৌগলিক অঞ্চলে স্বয়ংসম্পূর্ণ ফলাফলগুলিকে সীমাবদ্ধ করতে পারেন, এবং/অথবা ফলাফলগুলিকে এক বা একাধিক স্থানের ধরন, বা পাঁচটি দেশে পর্যন্ত ফিল্টার করতে পারেন৷ আপনি স্বয়ংসম্পূর্ণ কার্যকলাপ, AutocompleteSupportFragment এবং প্রোগ্রাম্যাটিক স্বয়ংসম্পূর্ণ APIগুলিতে এই সীমাবদ্ধতাগুলি প্রয়োগ করতে পারেন৷

ফলাফল সীমাবদ্ধ করতে, নিম্নলিখিতগুলি করুন:

  • সংজ্ঞায়িত অঞ্চলের মধ্যে ফলাফল পছন্দ করতে , setLocationBias() কল করুন (সংজ্ঞায়িত অঞ্চলের বাইরে থেকে কিছু ফলাফল এখনও ফেরত দেওয়া হতে পারে)।
  • শুধুমাত্র সংজ্ঞায়িত অঞ্চলের মধ্যে ফলাফল দেখাতে , setLocationRestriction() কল করুন (শুধুমাত্র সংজ্ঞায়িত অঞ্চলের মধ্যে ফলাফল ফেরত দেওয়া হবে)।
  • শুধুমাত্র একটি নির্দিষ্ট স্থানের প্রকারের সাথে মানানসই ফলাফলগুলি ফেরত দিতে, setTypesFilter() কল করুন (উদাহরণস্বরূপ, TypeFilter.ADDRESS নির্দিষ্ট করা শুধুমাত্র একটি সুনির্দিষ্ট ঠিকানা সহ ফলাফল দেবে)।
  • শুধুমাত্র পাঁচটি নির্দিষ্ট দেশের মধ্যে ফলাফল ফেরাতে, setCountries() কল করুন। দেশগুলোকে অবশ্যই দুই-অক্ষর, ISO 3166-1 Alpha-2 সামঞ্জস্যপূর্ণ দেশের কোড হিসেবে পাস করতে হবে।

একটি নির্দিষ্ট অঞ্চলে পক্ষপাতের ফলাফল

একটি নির্দিষ্ট ভৌগলিক অঞ্চলে স্বয়ংসম্পূর্ণ ফলাফলের পক্ষপাতিত্ব করতে, একটি RectangularBounds পাস করে setLocationBias() কল করুন। নিম্নলিখিত কোড উদাহরণটি অস্ট্রেলিয়ার সিডনির একটি অঞ্চলে স্বয়ংসম্পূর্ণ প্রস্তাবনাগুলিকে পক্ষপাতিত্ব করার জন্য একটি খণ্ডের উদাহরণে setLocationBias() কল করা দেখায়৷

কোটলিন

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

      

জাভা

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

      

একটি নির্দিষ্ট অঞ্চলে ফলাফল সীমাবদ্ধ করুন

একটি নির্দিষ্ট ভৌগলিক অঞ্চলে স্বয়ংসম্পূর্ণ ফলাফল সীমাবদ্ধ করতে, একটি RectangularBounds পাস করে setLocationRestriction() কল করুন। নিম্নলিখিত কোড উদাহরণটি অস্ট্রেলিয়ার সিডনির একটি অঞ্চলে স্বয়ংসম্পূর্ণ প্রস্তাবনাগুলিকে পক্ষপাতিত্ব করার জন্য একটি খণ্ডের উদাহরণে setLocationRestriction() কল করা দেখায়৷

কোটলিন

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

      

জাভা

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

      

দ্রষ্টব্য: এই বিধিনিষেধটি শুধুমাত্র সমগ্র রুটে প্রয়োগ করা হয়, আয়তক্ষেত্রাকার সীমানার বাইরে অবস্থিত সিন্থেটিক ফলাফলগুলি অবস্থানের সীমাবদ্ধতার সাথে ওভারল্যাপ করে এমন একটি রুটের উপর ভিত্তি করে ফেরত দেওয়া হতে পারে।

স্থানের ধরন বা টাইপ সংগ্রহ অনুসারে ফলাফল ফিল্টার করুন

আপনি একটি স্বয়ংসম্পূর্ণ অনুরোধ থেকে ফলাফল সীমাবদ্ধ করতে পারেন যাতে তারা শুধুমাত্র একটি নির্দিষ্ট স্থানের ধরন ফেরত দেয়। স্থানের ধরনগুলি ব্যবহার করে একটি ফিল্টার নির্দিষ্ট করুন বা স্থানের ধরণগুলিতে টেবিল 1, 2 এবং 3 এ তালিকাভুক্ত একটি প্রকার সংগ্রহ। কিছু নির্দিষ্ট না থাকলে, সব ধরনের ফেরত দেওয়া হয়.

স্বয়ংসম্পূর্ণ ফলাফল ফিল্টার করতে, ফিল্টার সেট করতে setTypesFilter() কল করুন।

একটি প্রকার বা টাইপ সংগ্রহ ফিল্টার নির্দিষ্ট করতে:

  • setTypesFilter() কল করুন এবং প্লেস টাইপসে দেখানো টেবিল 1 এবং টেবিল 2 থেকে পাঁচটি পর্যন্ত মান উল্লেখ করুন। টাইপ মানগুলি প্লেসটাইপসের ধ্রুবক দ্বারা সংজ্ঞায়িত করা হয়।

  • setTypesFilter() কল করুন এবং প্লেস টাইপসে দেখানো টেবিল 3 থেকে একটি টাইপ সংগ্রহ উল্লেখ করুন। সংগ্রহের মানগুলি PlaceTypes- এ ধ্রুবক দ্বারা সংজ্ঞায়িত করা হয়।

    অনুরোধে সারণি 3 থেকে শুধুমাত্র একটি একক প্রকার অনুমোদিত। আপনি যদি সারণি 3 থেকে একটি মান নির্দিষ্ট করেন, আপনি সারণি 1 বা সারণী 2 থেকে একটি মান নির্দিষ্ট করতে পারবেন না। যদি আপনি তা করেন, তাহলে একটি ত্রুটি ঘটে।

নিম্নলিখিত কোড উদাহরণ একটি AutocompleteSupportFragmentsetTypesFilter() কল করে এবং একাধিক ধরনের মান নির্দিষ্ট করে।

কোটলিন

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

      

জাভা

    autocompleteFragment.setTypesFilter(Arrays.asList("landmark", "restaurant", "store"));

      

নিম্নলিখিত কোড উদাহরণটি একটি AutocompleteSupportFragment সেট setTypesFilter() কল করা দেখায় যাতে একটি ফিল্টার সেট করা হয় যা শুধুমাত্র একটি টাইপ সংগ্রহ নির্দিষ্ট করে একটি সুনির্দিষ্ট ঠিকানা সহ ফলাফল দেয়।

কোটলিন

    autocompleteFragment.setTypesFilter(listOf(PlaceTypes.ADDRESS))

      

জাভা

    autocompleteFragment.setTypesFilter(Arrays.asList(PlaceTypes.ADDRESS, PlaceTypes.ESTABLISHMENT));

      

নিম্নলিখিত কোড উদাহরণ দেখায় যে একটি IntentBuilder এ কল করা setTypesFilter() একটি ফিল্টার সেট করার জন্য একটি টাইপ সংগ্রহ নির্দিষ্ট করে শুধুমাত্র একটি সুনির্দিষ্ট ঠিকানা সহ ফলাফল প্রদান করে৷

কোটলিন

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

      

জাভা

    Intent intent = new Autocomplete.IntentBuilder(
            AutocompleteActivityMode.FULLSCREEN, fields)
            .setTypesFilter(Arrays.asList(PlaceTypes.ADDRESS))
            .build(this);

      

দেশ অনুযায়ী ফলাফল ফিল্টার করুন

পাঁচটি পর্যন্ত স্বয়ংসম্পূর্ণ ফলাফল ফিল্টার করতে, দেশের কোড সেট করতে setCountries() কল করুন। তারপরে, ফিল্টারটিকে একটি খণ্ড বা অভিপ্রায়ে পাস করুন। দেশগুলোকে অবশ্যই দুই-অক্ষর, ISO 3166-1 Alpha-2 সামঞ্জস্যপূর্ণ দেশের কোড হিসেবে পাস করতে হবে।

নিম্নোক্ত কোড উদাহরণটি একটি AutocompleteSupportFragment setCountries() কল করা দেখায়, শুধুমাত্র নির্দিষ্ট দেশের মধ্যে ফলাফল প্রদানকারী একটি ফিল্টার সেট করতে।

কোটলিন

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

      

জাভা

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

      

ব্যবহারের সীমা

আপনার Android এর জন্য Places SDK সহ Places API-এর ব্যবহার আর প্রতিদিন সর্বোচ্চ সংখ্যক অনুরোধের (QPD) মধ্যে সীমাবদ্ধ নয়। যাইহোক, নিম্নলিখিত ব্যবহার সীমা এখনও প্রযোজ্য:

  • হারের সীমা হল 6,000 QPM (প্রতি মিনিটে অনুরোধ)। এটি একই প্রকল্পের শংসাপত্র ব্যবহার করে সমস্ত অ্যাপ্লিকেশনের জন্য ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড অনুরোধের সমষ্টি হিসাবে গণনা করা হয়।

আপনার অ্যাপে বৈশিষ্ট্য প্রদর্শন করুন

  • আপনার অ্যাপ যদি স্বয়ংসম্পূর্ণ পরিষেবাটি প্রোগ্রাম্যাটিকভাবে ব্যবহার করে, তাহলে আপনার UI অবশ্যই একটি 'Google দ্বারা চালিত' অ্যাট্রিবিউশন প্রদর্শন করতে হবে, অথবা একটি Google-ব্র্যান্ডেড মানচিত্রের মধ্যে উপস্থিত হতে হবে।
  • যদি আপনার অ্যাপ স্বয়ংসম্পূর্ণ উইজেট ব্যবহার করে তাহলে কোনো অতিরিক্ত পদক্ষেপের প্রয়োজন নেই (প্রয়োজনীয় অ্যাট্রিবিউশন ডিফল্টরূপে প্রদর্শিত হয়)।
  • আপনি যদি আইডি দ্বারা একটি স্থান পাওয়ার পরে অতিরিক্ত স্থানের তথ্য পুনরুদ্ধার করেন এবং প্রদর্শন করেন তবে আপনাকে অবশ্যই তৃতীয় পক্ষের বৈশিষ্ট্যগুলিও প্রদর্শন করতে হবে।

আরও বিশদ বিবরণের জন্য, বৈশিষ্ট্যের ডকুমেন্টেশন দেখুন।

স্বয়ংসম্পূর্ণ অপ্টিমাইজেশান রাখুন

এই বিভাগটি আপনাকে প্লেস স্বয়ংসম্পূর্ণ পরিষেবার সর্বাধিক ব্যবহার করতে সাহায্য করার জন্য সর্বোত্তম অনুশীলনগুলি বর্ণনা করে৷

এখানে কিছু সাধারণ নির্দেশিকা রয়েছে:

  • একটি কার্যকরী ব্যবহারকারী ইন্টারফেস বিকাশের দ্রুততম উপায় হল মানচিত্র জাভাস্ক্রিপ্ট API স্বয়ংসম্পূর্ণ উইজেট , Android স্বয়ংসম্পূর্ণ উইজেটের জন্য স্থান SDK , অথবা iOS স্বয়ংসম্পূর্ণ UI নিয়ন্ত্রণের জন্য স্থান SDK ব্যবহার করা
  • শুরু থেকেই অপরিহার্য স্থান স্বয়ংসম্পূর্ণ ডেটা ক্ষেত্রগুলির একটি বোঝার বিকাশ করুন।
  • অবস্থানের পক্ষপাতিত্ব এবং অবস্থানের সীমাবদ্ধতা ক্ষেত্রগুলি ঐচ্ছিক কিন্তু স্বয়ংসম্পূর্ণ কর্মক্ষমতার উপর উল্লেখযোগ্য প্রভাব ফেলতে পারে৷
  • যদি API একটি ত্রুটি ফেরত দেয় তবে আপনার অ্যাপটি সুন্দরভাবে হ্রাস পায় তা নিশ্চিত করতে ত্রুটি পরিচালনা ব্যবহার করুন।
  • নিশ্চিত করুন যে কোনও নির্বাচন না থাকলে আপনার অ্যাপ পরিচালনা করে এবং ব্যবহারকারীদের চালিয়ে যাওয়ার একটি উপায় দেয়।

খরচ অপ্টিমাইজেশান সেরা অনুশীলন

মৌলিক খরচ অপ্টিমাইজেশান

প্লেস স্বয়ংসম্পূর্ণ পরিষেবা ব্যবহার করার খরচ অপ্টিমাইজ করতে, শুধুমাত্র আপনার প্রয়োজনীয় স্থানের ডেটা ক্ষেত্রগুলি ফেরাতে স্থানের বিবরণ এবং প্লেস স্বয়ংসম্পূর্ণ উইজেটগুলিতে ফিল্ড মাস্ক ব্যবহার করুন।

উন্নত খরচ অপ্টিমাইজেশান

প্রতি অনুরোধ মূল্য অ্যাক্সেস করতে এবং স্থানের বিবরণের পরিবর্তে নির্বাচিত স্থান সম্পর্কে জিওকোডিং এপিআই ফলাফলের জন্য অনুরোধ করার জন্য স্থান স্বয়ংসম্পূর্ণের প্রোগ্রাম্যাটিক বাস্তবায়ন বিবেচনা করুন। জিওকোডিং এপিআই-এর সাথে পেয়ার করা প্রতি অনুরোধ মূল্য প্রতি সেশন (সেশন-ভিত্তিক) মূল্যের চেয়ে বেশি সাশ্রয়ী হয় যদি নিম্নলিখিত দুটি শর্ত পূরণ করা হয়:

  • আপনার যদি শুধুমাত্র ব্যবহারকারীর নির্বাচিত স্থানের অক্ষাংশ/দ্রাঘিমাংশ বা ঠিকানার প্রয়োজন হয়, তবে জিওকোডিং API এই তথ্যটি স্থানের বিবরণ কলের চেয়েও কম সময়ে সরবরাহ করে।
  • ব্যবহারকারীরা যদি গড়ে চারটি স্বয়ংসম্পূর্ণ ভবিষ্যদ্বাণী অনুরোধের মধ্যে একটি স্বয়ংসম্পূর্ণ ভবিষ্যদ্বাণী নির্বাচন করে বা তার চেয়ে কম, প্রতি অনুরোধ মূল্য প্রতি সেশন মূল্যের চেয়ে বেশি সাশ্রয়ী হতে পারে।
আপনার প্রয়োজনের সাথে মানানসই স্থান স্বয়ংসম্পূর্ণ বাস্তবায়ন নির্বাচন করতে সাহায্যের জন্য, নিম্নলিখিত প্রশ্নের আপনার উত্তরের সাথে সামঞ্জস্যপূর্ণ ট্যাবটি নির্বাচন করুন।

আপনার আবেদনে কি নির্বাচিত ভবিষ্যদ্বাণীর ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ ছাড়া অন্য কোনো তথ্যের প্রয়োজন আছে?

হ্যাঁ, আরো বিস্তারিত প্রয়োজন

স্থানের বিবরণ সহ সেশন-ভিত্তিক স্থান স্বয়ংসম্পূর্ণ ব্যবহার করুন।
যেহেতু আপনার অ্যাপ্লিকেশনের জন্য স্থানের বিবরণ যেমন স্থানের নাম, ব্যবসার স্থিতি, বা খোলার সময় প্রয়োজন, তাই আপনার স্থান স্বয়ংসম্পূর্ণ বাস্তবায়নের জন্য একটি সেশন টোকেন ব্যবহার করা উচিত ( প্রোগ্রাম্যাটিকভাবে বা জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড বা iOS উইজেটগুলিতে নির্মিত) প্রতি মোট $0.017 খরচের জন্য সেশন প্লাস প্রযোজ্য স্থান ডেটা SKU গুলি নির্ভর করে আপনি কোন স্থানের ডেটা ক্ষেত্রগুলির জন্য অনুরোধ করছেন৷ 1

উইজেট বাস্তবায়ন
সেশন ম্যানেজমেন্ট স্বয়ংক্রিয়ভাবে জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড , বা আইওএস উইজেটে তৈরি হয়। এতে স্থানের স্বয়ংসম্পূর্ণ অনুরোধ এবং নির্বাচিত ভবিষ্যদ্বাণীতে স্থানের বিশদ বিবরণ উভয়ই অন্তর্ভুক্ত রয়েছে। আপনি শুধুমাত্র আপনার প্রয়োজনীয় স্থানের ডেটা ক্ষেত্রগুলির জন্য অনুরোধ করছেন তা নিশ্চিত করার জন্য fields প্যারামিটারটি নির্দিষ্ট করতে ভুলবেন না।

প্রোগ্রাম্যাটিক বাস্তবায়ন
আপনার স্থান স্বয়ংসম্পূর্ণ অনুরোধের সাথে একটি সেশন টোকেন ব্যবহার করুন। নির্বাচিত ভবিষ্যদ্বাণী সম্পর্কে স্থানের বিবরণের অনুরোধ করার সময়, নিম্নলিখিত পরামিতিগুলি অন্তর্ভুক্ত করুন:

  1. স্থান স্বয়ংসম্পূর্ণ প্রতিক্রিয়া থেকে স্থান আইডি
  2. স্থান স্বয়ংসম্পূর্ণ অনুরোধে ব্যবহৃত সেশন টোকেন
  3. fields প্যারামিটার আপনার প্রয়োজনীয় স্থান ডেটা ক্ষেত্র নির্দিষ্ট করে

না, শুধু ঠিকানা এবং অবস্থান প্রয়োজন

আপনার প্লেস স্বয়ংসম্পূর্ণ ব্যবহারের পারফরম্যান্সের উপর নির্ভর করে আপনার অ্যাপ্লিকেশনের জন্য স্থানের বিশদ বিবরণের চেয়ে জিওকোডিং API একটি আরও সাশ্রয়ী বিকল্প হতে পারে। প্রতিটি অ্যাপ্লিকেশনের স্বয়ংসম্পূর্ণ দক্ষতা ব্যবহারকারীরা কী প্রবেশ করছে, অ্যাপ্লিকেশনটি কোথায় ব্যবহার করা হচ্ছে এবং কর্মক্ষমতা অপ্টিমাইজেশনের সর্বোত্তম অনুশীলনগুলি বাস্তবায়িত হয়েছে কিনা তার উপর নির্ভর করে পরিবর্তিত হয়।

নিম্নলিখিত প্রশ্নের উত্তর দেওয়ার জন্য, আপনার অ্যাপ্লিকেশনে একটি স্থান স্বয়ংসম্পূর্ণ পূর্বাভাস নির্বাচন করার আগে একজন ব্যবহারকারী গড়ে কতগুলি অক্ষর টাইপ করে তা বিশ্লেষণ করুন।

আপনার ব্যবহারকারীরা কি গড়ে চার বা তার কম অনুরোধে একটি স্থান স্বয়ংসম্পূর্ণ পূর্বাভাস নির্বাচন করেন?

হ্যাঁ

সেশন টোকেন ছাড়াই প্রোগ্রাম্যাটিকভাবে প্লেস স্বয়ংসম্পূর্ণ বাস্তবায়ন করুন এবং নির্বাচিত স্থানের পূর্বাভাসে জিওকোডিং API কল করুন।
জিওকোডিং API অনুরোধ প্রতি $0.005 এর জন্য ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক সরবরাহ করে। চারটি স্থান স্বয়ংসম্পূর্ণ করতে - প্রতি অনুরোধের জন্য $0.01132 খরচ হয় তাই চারটি অনুরোধের মোট খরচ এবং নির্বাচিত স্থানের পূর্বাভাস সম্পর্কে একটি জিওকোডিং API কল হবে $0.01632 যা প্রতি সেশন প্রতি সেশনের স্বয়ংসম্পূর্ণ মূল্য $0.017 থেকে কম৷ 1

আপনার ব্যবহারকারীদের আরও কম অক্ষরের মধ্যে তারা যে ভবিষ্যদ্বাণী খুঁজছেন তা পেতে সহায়তা করার জন্য কর্মক্ষমতার সর্বোত্তম অনুশীলনগুলিকে কাজে লাগানোর কথা বিবেচনা করুন৷

না

স্থানের বিবরণ সহ সেশন-ভিত্তিক স্থান স্বয়ংসম্পূর্ণ ব্যবহার করুন।
যেহেতু একজন ব্যবহারকারী একটি স্থান স্বয়ংসম্পূর্ণ ভবিষ্যদ্বাণী নির্বাচন করার আগে আপনি যে অনুরোধগুলি করতে আশা করেন তার গড় সংখ্যা প্রতি সেশন মূল্যের মূল্যকে ছাড়িয়ে যায়, তাই আপনার স্থান স্বয়ংসম্পূর্ণ বাস্তবায়নের ক্ষেত্রে স্থান স্বয়ংসম্পূর্ণ অনুরোধ এবং সংশ্লিষ্ট স্থানের বিবরণ অনুরোধ উভয়ের জন্য একটি সেশন টোকেন ব্যবহার করা উচিত প্রতি সেশনে $0.017 মোট খরচ। 1

উইজেট বাস্তবায়ন
সেশন ম্যানেজমেন্ট স্বয়ংক্রিয়ভাবে জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড , বা আইওএস উইজেটে তৈরি হয়। এতে স্থানের স্বয়ংসম্পূর্ণ অনুরোধ এবং নির্বাচিত ভবিষ্যদ্বাণীতে স্থানের বিশদ বিবরণ উভয়ই অন্তর্ভুক্ত রয়েছে। আপনি শুধুমাত্র বেসিক ডেটা ফিল্ডের জন্য অনুরোধ করছেন তা নিশ্চিত করার জন্য fields প্যারামিটার নির্দিষ্ট করতে ভুলবেন না।

প্রোগ্রাম্যাটিক বাস্তবায়ন
আপনার স্থান স্বয়ংসম্পূর্ণ অনুরোধের সাথে একটি সেশন টোকেন ব্যবহার করুন। নির্বাচিত ভবিষ্যদ্বাণী সম্পর্কে স্থানের বিবরণের অনুরোধ করার সময়, নিম্নলিখিত পরামিতিগুলি অন্তর্ভুক্ত করুন:

  1. স্থান স্বয়ংসম্পূর্ণ প্রতিক্রিয়া থেকে স্থান আইডি
  2. স্থান স্বয়ংসম্পূর্ণ অনুরোধে ব্যবহৃত সেশন টোকেন
  3. fields প্যারামিটার বেসিক ডেটা ক্ষেত্র যেমন ঠিকানা এবং জ্যামিতি নির্দিষ্ট করে

স্থান স্বয়ংসম্পূর্ণ অনুরোধ বিলম্ব বিবেচনা করুন
আপনি কৌশল প্রয়োগ করতে পারেন যেমন একটি স্থান স্বয়ংসম্পূর্ণ অনুরোধ বিলম্বিত করা যতক্ষণ না ব্যবহারকারী প্রথম তিন বা চারটি অক্ষর টাইপ করেন যাতে আপনার অ্যাপ্লিকেশনটি কম অনুরোধ করে। উদাহরণস্বরূপ, ব্যবহারকারী তৃতীয় অক্ষর টাইপ করার পরে প্রতিটি অক্ষরের জন্য স্থান স্বয়ংসম্পূর্ণ অনুরোধ করার অর্থ হল যে ব্যবহারকারী যদি সাতটি অক্ষর টাইপ করে তারপর একটি ভবিষ্যদ্বাণী নির্বাচন করে যার জন্য আপনি একটি জিওকোডিং API অনুরোধ করেন, মোট খরচ হবে $0.01632 (4 * $0.00283 স্বয়ংসম্পূর্ণ প্রতি অনুরোধ + $0.005 জিওকোডিং)। 1

যদি বিলম্বিত অনুরোধগুলি আপনার গড় প্রোগ্রাম্যাটিক অনুরোধ চারটির নিচে পেতে পারে, আপনি জিওকোডিং API বাস্তবায়নের সাথে পারফরম্যান্ট প্লেস স্বয়ংসম্পূর্ণের জন্য নির্দেশিকা অনুসরণ করতে পারেন। নোট করুন যে অনুরোধ বিলম্বিত করা ব্যবহারকারীর দ্বারা লেটেন্সি হিসাবে অনুভূত হতে পারে যারা প্রতিটি নতুন কীস্ট্রোকের সাথে ভবিষ্যদ্বাণী দেখার আশা করতে পারে৷

আপনার ব্যবহারকারীদের তারা কম অক্ষরের মধ্যে যে ভবিষ্যদ্বাণী খুঁজছেন তা পেতে সহায়তা করার জন্য কর্মক্ষমতার সর্বোত্তম অনুশীলনগুলিকে কাজে লাগান।


  1. এখানে তালিকাভুক্ত খরচ USD-এ। সম্পূর্ণ মূল্যের তথ্যের জন্য অনুগ্রহ করে Google মানচিত্র প্ল্যাটফর্ম বিলিং পৃষ্ঠাটি দেখুন।

কর্মক্ষমতা সেরা অনুশীলন

নিম্নলিখিত নির্দেশিকাগুলি স্থান স্বয়ংসম্পূর্ণ কর্মক্ষমতা অপ্টিমাইজ করার উপায় বর্ণনা করে:

  • আপনার স্থান স্বয়ংসম্পূর্ণ বাস্তবায়নে দেশের সীমাবদ্ধতা, অবস্থানের পক্ষপাতিত্ব এবং (প্রোগ্রামাটিক বাস্তবায়নের জন্য) ভাষা পছন্দ যোগ করুন। উইজেটগুলির সাথে ভাষার পছন্দের প্রয়োজন নেই কারণ তারা ব্যবহারকারীর ব্রাউজার বা মোবাইল ডিভাইস থেকে ভাষা পছন্দগুলি বেছে নেয়।
  • যদি স্থান স্বয়ংসম্পূর্ণ একটি মানচিত্র দ্বারা অনুষঙ্গী হয়, আপনি মানচিত্র ভিউপোর্ট দ্বারা অবস্থান পক্ষপাতিত্ব করতে পারেন.
  • এমন পরিস্থিতিতে যখন একজন ব্যবহারকারী স্বয়ংসম্পূর্ণ ভবিষ্যদ্বাণীগুলির মধ্যে একটিকে বেছে নেয় না, সাধারণত যেহেতু এই ভবিষ্যদ্বাণীগুলির কোনওটিই পছন্দসই ফলাফল-ঠিকানা নয়, আপনি আরও প্রাসঙ্গিক ফলাফল পাওয়ার চেষ্টা করতে মূল ব্যবহারকারীর ইনপুটটি পুনরায় ব্যবহার করতে পারেন:
    • আপনি যদি আশা করেন যে ব্যবহারকারী শুধুমাত্র ঠিকানার তথ্য লিখবেন, তাহলে জিওকোডিং API- এ একটি কলে আসল ব্যবহারকারীর ইনপুট পুনরায় ব্যবহার করুন।
    • আপনি যদি আশা করেন যে ব্যবহারকারী একটি নির্দিষ্ট স্থানের জন্য নাম বা ঠিকানা দ্বারা প্রশ্ন লিখবেন, তাহলে একটি সন্ধান করুন স্থান অনুরোধ ব্যবহার করুন। ফলাফল শুধুমাত্র একটি নির্দিষ্ট অঞ্চলে প্রত্যাশিত হলে, অবস্থানের পক্ষপাতিত্ব ব্যবহার করুন৷
    অন্যান্য পরিস্থিতিতে যখন জিওকোডিং এপিআই-তে ফিরে আসা সবচেয়ে ভালো হয় সেগুলির মধ্যে রয়েছে:
    • ব্যবহারকারীরা সাবপ্রিমাইজ অ্যাড্রেস ইনপুট করছেন, যেমন একটি বিল্ডিংয়ের মধ্যে নির্দিষ্ট ইউনিট বা অ্যাপার্টমেন্টের ঠিকানা। উদাহরণস্বরূপ, চেক ঠিকানা "Stroupežnického 3191/17, Praha" Place Autocomplete-এ একটি আংশিক ভবিষ্যদ্বাণী দেয়।
    • নিউইয়র্ক সিটিতে "23-30 29th St, Queens" বা হাওয়াইয়ের কাউই দ্বীপে "47-380 Kamehameha Hwy, Kaneohe" এর মতো রাস্তা-সেগমেন্টের উপসর্গ সহ ঠিকানা ইনপুট করছেন ব্যবহারকারীরা৷

সমস্যা সমাধান

যদিও বিভিন্ন ধরণের ত্রুটি ঘটতে পারে, আপনার অ্যাপের বেশিরভাগ ত্রুটিগুলি সাধারণত কনফিগারেশন ত্রুটির কারণে হয় (উদাহরণস্বরূপ, ভুল API কী ব্যবহার করা হয়েছিল, বা API কীটি ভুলভাবে কনফিগার করা হয়েছিল), বা কোটা ত্রুটি ( আপনার অ্যাপটি এর কোটা অতিক্রম করেছে)। কোটা সম্পর্কে আরও তথ্যের জন্য ব্যবহারের সীমা দেখুন।

স্বয়ংসম্পূর্ণ নিয়ন্ত্রণের ব্যবহারে যে ত্রুটিগুলি ঘটে তা onActivityResult() কলব্যাকে ফেরত দেওয়া হয়। ফলাফলের স্ট্যাটাস মেসেজ পেতে Autocomplete.getStatus() এ কল করুন।