স্বয়ংসম্পূর্ণ (নতুন)

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA) ডেভেলপাররা

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

উদাহরণস্বরূপ, আপনি "Autocomplete" কে ইনপুট হিসেবে একটি স্ট্রিং ব্যবহার করে কল করেন যার মধ্যে একটি আংশিক ব্যবহারকারীর ইনপুট থাকে, "Sicilian piz", যেখানে অনুসন্ধান এলাকাটি সান ফ্রান্সিসকো, CA-তে সীমাবদ্ধ থাকে। এরপর প্রতিক্রিয়ায় স্থানের পূর্বাভাসের একটি তালিকা থাকে যা অনুসন্ধান স্ট্রিং এবং অনুসন্ধান এলাকার সাথে মেলে, যেমন "Sicilian Pizza Kitchen" নামক রেস্তোরাঁ। প্রত্যাবর্তিত স্থানের পূর্বাভাসগুলি ব্যবহারকারীদের কাছে উপস্থাপন করার জন্য ডিজাইন করা হয়েছে যাতে তারা পছন্দসই স্থান নির্বাচন করতে সহায়তা করে। প্রত্যাবর্তিত স্থানের পূর্বাভাসগুলির যেকোনো সম্পর্কে আরও তথ্য পেতে আপনি একটি স্থানের বিবরণ (নতুন) অনুরোধ করতে পারেন।

আপনি দুটি প্রধান উপায়ে আপনার অ্যাপে অটোকম্পলিট (নতুন) কার্যকারিতা একীভূত করতে পারেন:

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

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

স্থানটি স্বয়ংক্রিয়ভাবে সম্পূর্ণ উইজেট

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

আপনার অ্যাপে প্লেস অটোকম্পলিট উইজেট যোগ করতে:

  1. (ঐচ্ছিক) একটি সেশন টোকেন নির্ধারণ করুন। যদি আপনি একটি সেশন টোকেন প্রদান না করেন, তাহলে উইজেট আপনার জন্য একটি তৈরি করবে।

  2. পছন্দসই প্যারামিটার এবং আপনার সেশন টোকেন সহ একটি autocompleteIntent সংজ্ঞায়িত করুন।

  3. StartActivityForResult এর জন্য একটি ActivityResultLauncher নির্ধারণ করুন। এই লঞ্চারটি স্বয়ংক্রিয়ভাবে সম্পন্ন হওয়া কার্যকলাপ থেকে প্রাপ্ত ফলাফল পরিচালনা করবে।

  4. ActivityResultLauncher এর কলব্যাকে ফলাফলটি পরিচালনা করুন। এর মধ্যে রয়েছে AutocompletePrediction এবং AutocompleteSessionToken (যদি আপনি নিজেরটি প্রদান না করে থাকেন) এক্সট্র্যাক্ট করা, ত্রুটিগুলি পরিচালনা করা এবং ঐচ্ছিকভাবে একটি স্থান সম্পর্কে অতিরিক্ত বিবরণ পেতে fetchPlace() অনুরোধ করা।

  5. placeAutocompleteActivityResultLauncher ব্যবহার করে ইন্টেন্ট চালু করুন।

কোটলিন এবং জাভা উভয় ব্যবহার করে প্লেস অটোকম্পলিট উইজেট কীভাবে যুক্ত করবেন তা নিম্নলিখিত নমুনাগুলি দেখায়:

কোটলিন

// Provide the API key that has enabled "Places API (New)" in the Google Cloud Console.
Places.initializeWithNewPlacesApiEnabled(/* Context= */ context, /* API Key= */ key)

// Optional, create a session token for Autocomplete request and the followup FetchPlace request.
val sessionToken: AutocompleteSessionToken = AutocompleteSessionToken.newInstance()

val autocompleteIntent: Intent =
    PlaceAutocomplete.createIntent(this) {
        // ... provide input params for origin, countries, types filter ...
        setAutocompleteSessionToken(sessionToken)
    }

val placeAutocompleteActivityResultLauncher: ActivityResultLauncher<Intent> =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
        val intent = result.data
        if (intent != null && result.resultCode == PlaceAutocompleteActivity.RESULT_OK) {
            // get prediction object
            val prediction: AutocompletePrediction? =
                PlaceAutocomplete.getPredictionFromIntent(intent!!)

            // get session token
            val sessionToken: AutocompleteSessionToken? =
                PlaceAutocomplete.getSessionTokenFromIntent(intent!!)

            // create PlacesClient to make FetchPlace request (optional)
            val placesClient: PlacesClient = Places.createClient(this)
            val response =
                placesClient.awaitFetchPlace(prediction.placeId, Field.DISPLAY_NAME)
                {
                    sessionToken = sessionToken // optional
                }
        }
    }

// Launch Activity
placeAutocompleteActivityResultLauncher.launch(autocompleteIntent)

জাভা

// Provide the API key that has enabled "Places API (New)" in the Google Cloud Console.
Places.initializeWithNewPlacesApiEnabled(/* Context= */ context, /* API Key= */ key);

// Optional, create a session token for Autocomplete request and the followup FetchPlace request
AutocompleteSessionToken sessionToken = AutocompleteSessionToken.newInstance();

Intent autocompleteIntent =
    new PlaceAutocomplete.IntentBuilder()
        // ... set input params for origin, countries, types filter ...
        .setSessionToken(sessionToken) // optional
        .build(this);

ActivityResultLauncher<Intent> placeAutocompleteActivityResultLauncher =
    registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                Intent intent = result.getData();
                if (result.getResultCode() == PlaceAutocompleteActivity.RESULT_OK) {
                    // get prediction object
                    AutocompletePrediction prediction =
                        PlaceAutocomplete.getPredictionFromIntent(
                            Preconditions.checkNotNull(intent));

                    // get session token
                    AutocompleteSessionToken sessionToken =
                        PlaceAutocomplete.getSessionTokenFromIntent(
                            Preconditions.checkNotNull(intent));

                    // create PlacesClient to make FetchPlace request (optional)
                    PlacesClient placesClient = Places.createClient(this);
                    FetchPlaceRequest request =
                        FetchPlaceRequest.builder(prediction.getPlaceId(),
                            Arrays.asList(Field.DISPLAY_NAME))
                            .setSessionToken(sessionToken).build();
                    Task<FetchPlaceResponse> task = placesClient.fetchPlace(request);
                }
            }
        }
    );

// Launch Activity
placeAutocompleteActivityResultLauncher.launch(autocompleteIntent);

থিমটি কাস্টমাইজ করুন

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

আপনি …/res/values/themes.xml এ থিম ওভাররাইড সংজ্ঞায়িত করতে পারেন। উদাহরণস্বরূপ:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="BrandedTheme" parent="PlacesMaterialTheme">
    <!-- Color tokens. -->
    <item name="placesColorOnNeutralContainer">#5300e8</item>
    <item name="placesColorOnNeutralContainerVariant">#ee6002</item>
    ...

    <!-- Typography tokens. -->
    <item name="placesTextAppearanceTitleLarge">@style/PlacesTextAppearance</item>
    <item name="placesTextAppearanceBodyMedium">@style/PlacesTextAppearance</item>
    ...

    <!-- Spacing tokens. -->
    <item name="placesSpacingSmall">6dp</item>
    <item name="placesSpacingMedium">12dp</item>
    ...

    <!-- Attribution tokens. -->
    <item name="placesColorAttributionLightTheme">white</item>
    <item name="placesColorAttributionDarkTheme">black</item>
  </style>
</resources>

তারপর আপনি setAutocompleteUiCustomization কল করে ওভাররাইড স্টাইলগুলি উল্লেখ করতে পারেন:

ActivityResultLauncher<Intent> placeAutocompleteActivityResultLauncher =
  registerForActivityResult(
    new ActivityResultContracts.StartActivityForResult(),
    new ActivityResultCallback<ActivityResult>() {
      @Override
      public void onActivityResult(ActivityResult result) {
        Intent intent = result.getData();
        if (intent != null) {
          AutocompletePrediction prediction =
            PlaceAutocomplete.getPredictionFromIntent(intent);
          AutocompleteSessionToken sessionToken =
            PlaceAutocomplete.getSessionTokenFromIntent(intent);
          Status status = PlaceAutocomplete.getResultStatusFromIntent(intent);
          ...
        }
      }
    }
  );

Intent placeAutocompleteIntent =
  new PlaceAutocomplete.IntentBuilder()
    .setInitialQuery("INSERT_QUERY_TEXT")
    .setOrigin(new LatLng(10.0, 10.0))
    ...

    .setAutocompleteUiCustomization(
      AutocompleteUiCustomization.builder()
        .listItemIcon(AutocompleteUiIcon.noIcon())
        .listDensity(AutocompleteListDensity.MULTI_LINE)
        .theme(R.style.BrandedTheme)
        .build())
  .build(this);

placeAutocompleteActivityResultLauncher.launch(placeAutocompleteIntent);

প্রোগ্রাম্যাটিকভাবে স্থানের পূর্বাভাস পান

আপনার অ্যাপটি PlacesClient.findAutocompletePredictions() কল করে, একটি FindAutocompletePredictionsRequest অবজেক্ট পাস করে autocomplete API থেকে পূর্বাভাসিত স্থানের নাম এবং/অথবা ঠিকানাগুলির একটি তালিকা পেতে পারে। নীচের উদাহরণটি PlacesClient.findAutocompletePredictions() এ একটি সম্পূর্ণ কল দেখায়।

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();
LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);
final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Sicilian piz")
            .setRegionCode("ES")
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

স্বয়ংক্রিয় (নতুন) উত্তর

API একটি Task এ একটি FindAutocompletePredictionsResponse প্রদান করে। FindAutocompletePredictionsResponse এ পাঁচটি পর্যন্ত AutocompletePrediction অবজেক্টের একটি তালিকা থাকে যা পূর্বাভাসিত স্থানগুলিকে প্রতিনিধিত্ব করে। যদি কোয়েরি এবং ফিল্টার মানদণ্ডের সাথে সম্পর্কিত কোনও পরিচিত স্থান না থাকে তবে তালিকাটি খালি থাকতে পারে।

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

  • getFullText(CharacterStyle) একটি স্থানের বর্ণনার সম্পূর্ণ লেখা ফেরত দেয়। এটি প্রাথমিক এবং গৌণ লেখার সংমিশ্রণ। উদাহরণ: " আইফেল টাওয়ার, অ্যাভিনিউ আনাতোল ফ্রান্স, প্যারিস, ফ্রান্স "। এছাড়াও, এই পদ্ধতিটি আপনাকে বর্ণনার সেই অংশগুলিকে হাইলাইট করতে দেয় যা অনুসন্ধানের সাথে মেলে আপনার পছন্দের স্টাইলের সাথে, CharacterStyle ব্যবহার করে। CharacterStyle প্যারামিটারটি ঐচ্ছিক। যদি আপনার কোনও হাইলাইটিংয়ের প্রয়োজন না হয় তবে এটিকে null এ সেট করুন।
  • getPrimaryText(CharacterStyle) একটি স্থানের বর্ণনাকারী মূল লেখাটি ফেরত পাঠায়। এটি সাধারণত স্থানটির নাম। উদাহরণ: " আইফেল টাওয়ার ", এবং " 123 পিট স্ট্রিট "।
  • getSecondaryText(CharacterStyle) একটি স্থানের বর্ণনার সহায়ক টেক্সট ফেরত দেয়। উদাহরণস্বরূপ, স্বয়ংক্রিয়ভাবে সম্পূর্ণ পূর্বাভাস দেখানোর সময় এটি দ্বিতীয় লাইন হিসেবে কার্যকর। উদাহরণ: " Avenue Anatole France, Paris, France ", এবং " Sydney, New South Wales "।
  • getPlaceId() পূর্বাভাসিত স্থানের স্থান আইডি ফেরত দেয়। স্থান আইডি হল একটি টেক্সটুয়াল শনাক্তকারী যা একটি স্থানকে অনন্যভাবে শনাক্ত করে, যা আপনি পরে আবার Place অবজেক্টটি পুনরুদ্ধার করতে ব্যবহার করতে পারেন। Autocomplete-এ স্থান আইডি সম্পর্কে আরও তথ্যের জন্য, স্থান বিবরণ (নতুন) দেখুন। স্থান আইডি সম্পর্কে সাধারণ তথ্যের জন্য, স্থান আইডি ওভারভিউ দেখুন।
  • getTypes() এই স্থানের সাথে সম্পর্কিত স্থানের প্রকারের তালিকা প্রদান করে।
  • getDistanceMeters() অনুরোধে উল্লেখিত এই স্থান এবং উৎপত্তিস্থলের মধ্যে সরলরেখার দূরত্ব মিটারে ফেরত পাঠায়।

প্রয়োজনীয় পরামিতি

  • প্রশ্ন

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

    কোয়েরি প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setQuery() পদ্ধতিটি কল করুন।

ঐচ্ছিক পরামিতি

  • প্রাথমিক প্রকার

    প্রতিক্রিয়ায় ফিরে আসা স্থানগুলি ফিল্টার করতে ব্যবহৃত টেবিল A ​​বা টেবিল B প্রকার থেকে পাঁচটি পর্যন্ত টাইপ টাইপ মানের একটি তালিকা। প্রতিক্রিয়াতে অন্তর্ভুক্ত করার জন্য একটি স্থানকে নির্দিষ্ট প্রাথমিক ধরণের মানের সাথে মিলতে হবে।

    একটি জায়গায় শুধুমাত্র টেবিল A ​​অথবা টেবিল B টাইপের একটি মাত্র প্রাইমারি টাইপ থাকতে পারে। উদাহরণস্বরূপ, প্রাইমারি টাইপ "mexican_restaurant" অথবা "steak_house" হতে পারে।

    নিম্নলিখিত ক্ষেত্রে, INVALID_REQUEST ত্রুটির কারণে অনুরোধটি প্রত্যাখ্যাত হবে:

    • পাঁচটিরও বেশি প্রকার নির্দিষ্ট করা হয়েছে।
    • যেকোনো অচেনা প্রকার নির্দিষ্ট করা আছে।

    প্রাথমিক প্রকারের প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setTypesFilter() পদ্ধতিটি কল করুন।

  • দেশগুলি

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

    যদি আপনি locationRestriction এবং includedRegionCodes উভয়ই নির্দিষ্ট করেন, তাহলে ফলাফল দুটি সেটিংসের ছেদস্থলে অবস্থিত হবে।

    countries প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setCountries() পদ্ধতিটি কল করুন।

  • ইনপুট অফসেট

    শূন্য-ভিত্তিক ইউনিকোড অক্ষর অফসেট যা কোয়েরিতে কার্সারের অবস্থান নির্দেশ করে। কার্সারের অবস্থান কোন ভবিষ্যদ্বাণীগুলি ফেরত পাঠানো হবে তা প্রভাবিত করতে পারে। খালি থাকলে, এটি ডিফল্টভাবে কোয়েরির দৈর্ঘ্যে নির্ধারিত হয়।

    ইনপুট অফসেট প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setInputOffset() পদ্ধতিটি কল করুন।

  • অবস্থান পক্ষপাত বা অবস্থান সীমাবদ্ধতা

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

    • অবস্থান পক্ষপাত

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

      লোকেশন বায়াস প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setLocationBias() পদ্ধতিটি কল করুন।

    • অবস্থানের সীমাবদ্ধতা

      অনুসন্ধানের জন্য একটি এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফল ফেরত দেওয়া হয় না।

      লোকেশন রেস্ট্রিকশন প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setLocationRestriction() পদ্ধতিটি কল করুন।

    অবস্থান পক্ষপাত বা অবস্থান সীমাবদ্ধতা অঞ্চলটি একটি আয়তক্ষেত্রাকার ভিউপোর্ট বা একটি বৃত্ত হিসাবে নির্দিষ্ট করুন।

    • একটি বৃত্তকে কেন্দ্রবিন্দু এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। ব্যাসার্ধটি 0.0 এবং 50000.0 এর মধ্যে হতে হবে, যার মধ্যে রয়েছে। ডিফল্ট মান হল 0.0। অবস্থান সীমাবদ্ধতার জন্য, আপনাকে ব্যাসার্ধটি 0.0 এর চেয়ে বেশি মান নির্ধারণ করতে হবে। অন্যথায়, অনুরোধটি কোনও ফলাফল দেয় না।

    • একটি আয়তক্ষেত্র হল একটি অক্ষাংশ-দ্রাঘিমাংশ ভিউপোর্ট, যা দুটি তির্যক বিপরীত low এবং high বিন্দু হিসাবে প্রতিনিধিত্ব করে। একটি ভিউপোর্টকে একটি বদ্ধ অঞ্চল হিসাবে বিবেচনা করা হয়, যার অর্থ এটি তার সীমানা অন্তর্ভুক্ত করে। অক্ষাংশ সীমানা -90 থেকে 90 ডিগ্রি সহ এবং দ্রাঘিমাংশ সীমানা -180 থেকে 180 ডিগ্রি সহ অবশ্যই থাকতে হবে:

      • যদি low = high , তাহলে ভিউপোর্টটি সেই একক বিন্দু দিয়ে গঠিত।
      • যদি low.longitude > high.longitude , তাহলে দ্রাঘিমাংশ পরিসর উল্টানো হয় (ভিউপোর্টটি 180 ডিগ্রি দ্রাঘিমাংশ রেখা অতিক্রম করে)।
      • যদি low.longitude = -180 degrees এবং high.longitude = 180 degrees হয়, তাহলে ভিউপোর্টে সমস্ত দ্রাঘিমাংশ অন্তর্ভুক্ত থাকবে।
      • যদি low.longitude = ১৮০ ডিগ্রি এবং high.longitude = -১৮০ ডিগ্রি হয়, তাহলে দ্রাঘিমাংশ পরিসর খালি থাকবে।

      low এবং high উভয়ই পূরণ করতে হবে, এবং উপস্থাপিত বাক্সটি খালি রাখা যাবে না। খালি ভিউপোর্টের ফলে একটি ত্রুটি দেখা দেয়।

  • উৎপত্তি

    যে উৎস বিন্দু থেকে গন্তব্যে সরলরেখার দূরত্ব গণনা করা হবে ( getDistanceMeters() ব্যবহার করে অ্যাক্সেস করা হয়েছে)। যদি এই মানটি বাদ দেওয়া হয়, তাহলে সরলরেখার দূরত্ব ফেরত দেওয়া হবে না। অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট করতে হবে:

    অরিজিন প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setOrigin() পদ্ধতিটি কল করুন।

  • অঞ্চল কোড

    প্রতিক্রিয়া ফর্ম্যাট করার জন্য ব্যবহৃত অঞ্চল কোড, ঠিকানা ফর্ম্যাটিং সহ, একটি ccTLD ("শীর্ষ-স্তরের ডোমেন") দুই-অক্ষরের মান হিসাবে নির্দিষ্ট করা হয়েছে। বেশিরভাগ ccTLD কোড ISO 3166-1 কোডের অনুরূপ, কিছু উল্লেখযোগ্য ব্যতিক্রম ছাড়া। উদাহরণস্বরূপ, যুক্তরাজ্যের ccTLD হল "uk" (.co.uk) যেখানে এর ISO 3166-1 কোড হল "gb" (প্রযুক্তিগতভাবে "গ্রেট ব্রিটেন এবং উত্তর আয়ারল্যান্ডের যুক্তরাজ্য" সত্তার জন্য)।

    যদি আপনি একটি অবৈধ অঞ্চল কোড উল্লেখ করেন, তাহলে API একটি INVALID_ARGUMENT ত্রুটি প্রদান করে। প্রযোজ্য আইনের উপর ভিত্তি করে প্যারামিটারটি ফলাফলকে প্রভাবিত করতে পারে।

    অঞ্চল কোড প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setRegionCode() পদ্ধতিটি কল করুন।

  • সেশন টোকেন

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

    Autocomplete প্রতিটি সেশন সনাক্ত করার জন্য একটি AutocompleteSessionToken ব্যবহার করে। আপনার অ্যাপটি প্রতিটি নতুন সেশন শুরু করার সময় একটি নতুন সেশন টোকেন পাস করবে, তারপর ব্যবহারকারীর দ্বারা নির্বাচিত স্থানের জন্য স্থানের বিবরণ পুনরুদ্ধার করার জন্য fetchPlace() কলে একটি Place ID সহ একই টোকেন পাস করবে।

    সেশন টোকেন প্যারামিটার সেট করতে, FindAutocompletePredictionsRequest অবজেক্ট তৈরি করার সময় setSessionToken() পদ্ধতিটি কল করুন।

    আরও তথ্যের জন্য, সেশন টোকেন দেখুন।

স্বয়ংক্রিয় (নতুন) উদাহরণ

অবস্থান সীমাবদ্ধতা এবং অবস্থান পক্ষপাত ব্যবহার করুন

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

অবস্থানের সীমাবদ্ধতা অনুসন্ধানের জন্য এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফলগুলি ফেরত দেওয়া হয় না। নিম্নলিখিত উদাহরণটি সান ফ্রান্সিসকোকে কেন্দ্র করে 5000-মিটার ব্যাসার্ধ সহ একটি বৃত্তাকার অবস্থানের সীমাবদ্ধতার মধ্যে অনুরোধটি সীমাবদ্ধ করার জন্য অবস্থানের সীমাবদ্ধতা ব্যবহার করে:

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

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

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setLocationBias(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

প্রাথমিক প্রকার ব্যবহার করুন

টেবিল A ​​এবং টেবিল B তে তালিকাভুক্ত একটি নির্দিষ্ট ধরণের অনুরোধ থেকে ফলাফল সীমাবদ্ধ করতে প্রাথমিক প্রকারের প্যারামিটার ব্যবহার করুন। আপনি পাঁচটি পর্যন্ত মানের একটি অ্যারে নির্দিষ্ট করতে পারেন। বাদ দেওয়া হলে, সমস্ত প্রকার ফেরত দেওয়া হবে।

নিম্নলিখিত উদাহরণটি "Soccer" এর একটি কোয়েরি স্ট্রিং নির্দিষ্ট করে এবং "sporting_goods_store" ধরণের প্রতিষ্ঠানের ফলাফল সীমাবদ্ধ করতে প্রাথমিক প্রকারের প্যারামিটার ব্যবহার করে:

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

final List<Place.Field> primaryTypes = Arrays.asList("sporting_goods_store");

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Soccer")
            .setIncludedPrimaryTypes(primaryTypes)
            .setLocationBias(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

যদি আপনি প্রাথমিক প্রকারের প্যারামিটারটি বাদ দেন, তাহলে ফলাফলে এমন ধরণের স্থাপনা অন্তর্ভুক্ত থাকতে পারে যা আপনি চান না, যেমন "athletic_field"

উৎপত্তিস্থল ব্যবহার করুন

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

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setOrigin(center)
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

স্বয়ংক্রিয় (নতুন) অপ্টিমাইজেশন

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

আপনার অ্যাপ্লিকেশনের জন্য Autocomplete (নতুন) ব্যবহারের পারফরম্যান্সের উপর নির্ভর করে, Geocoding API আপনার অ্যাপ্লিকেশনের জন্য Place Details (নতুন) এর চেয়ে বেশি সাশ্রয়ী বিকল্প হতে পারে। প্রতিটি অ্যাপ্লিকেশনের Autocomplete (নতুন) দক্ষতা ব্যবহারকারীরা কী প্রবেশ করছেন, অ্যাপ্লিকেশনটি কোথায় ব্যবহার করা হচ্ছে এবং কর্মক্ষমতা অপ্টিমাইজেশনের সেরা অনুশীলনগুলি বাস্তবায়িত হয়েছে কিনা তার উপর নির্ভর করে পরিবর্তিত হয়।

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

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

হাঁ

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

আপনার ব্যবহারকারীদের আরও কম অক্ষরের মাধ্যমে তাদের কাঙ্ক্ষিত ভবিষ্যদ্বাণী পেতে সাহায্য করার জন্য পারফর্ম্যান্সের সেরা অনুশীলনগুলি ব্যবহার করার কথা বিবেচনা করুন।

না

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

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

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

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

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

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

আপনার ব্যবহারকারীদের কম অক্ষরের মাধ্যমে তাদের কাঙ্ক্ষিত ভবিষ্যদ্বাণী পেতে সাহায্য করার জন্য পারফর্ম্যান্সের সেরা অনুশীলনগুলি ব্যবহার করার কথা বিবেচনা করুন।

কর্মক্ষমতা সংক্রান্ত সর্বোত্তম অনুশীলন

নিম্নলিখিত নির্দেশিকাগুলিতে অটোকম্পলিট (নতুন) পারফর্ম্যান্স অপ্টিমাইজ করার উপায়গুলি বর্ণনা করা হয়েছে:

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

অবস্থান পক্ষপাত

একটি location প্যারামিটার এবং একটি radius প্যারামিটার পাস করে একটি নির্দিষ্ট এলাকায় ফলাফল পক্ষপাত করে। এটি অটোকম্পলিট (নতুন) কে নির্ধারিত এলাকার মধ্যে ফলাফল দেখানো পছন্দ করার নির্দেশ দেয়। নির্ধারিত এলাকার বাইরের ফলাফল এখনও প্রদর্শিত হতে পারে। আপনি একটি নির্দিষ্ট দেশের মধ্যে শুধুমাত্র সেই স্থানগুলি দেখানোর জন্য ফলাফল ফিল্টার করতে components প্যারামিটার ব্যবহার করতে পারেন।

অবস্থান সীমাবদ্ধকরণ

একটি locationRestriction প্যারামিটার পাস করে ফলাফলগুলিকে একটি নির্দিষ্ট এলাকায় সীমাবদ্ধ করুন।

আপনি locationRestriction প্যারামিটার যোগ করে location এবং radius প্যারামিটার দ্বারা নির্ধারিত অঞ্চলে ফলাফল সীমাবদ্ধ করতে পারেন। এটি Autocomplete (New) কে শুধুমাত্র সেই অঞ্চলের মধ্যে ফলাফল ফেরত দেওয়ার নির্দেশ দেয়।