অটোমেটিক সম্পূর্ণ করা (নতুন)

প্ল্যাটফর্ম বেছে নিন: Android iOS JavaScript ওয়েব পরিষেবা

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

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

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

আপনি দুটি প্রধান উপায়ে আপনার অ্যাপে অটোমেটিক সম্পূর্ণ হওয়া (নতুন) কার্যকারিতা ইন্টিগ্রেট করতে পারেন:

জায়গা অটোমেটিক সম্পূর্ণ করার উইজেট যোগ করা

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

জায়গা অটোমেটিক সম্পূর্ণ করার
উইজেট

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

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

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

  2. প্রয়োজনীয় প্যারামিটার ও সেশন টোকেন সহ autocompleteIntent সংজ্ঞায়িত করুন।

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

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

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

Kotlin ও Java, দুটিরই ব্যবহার করে কীভাবে জায়গা অটোমেটিক সম্পূর্ণ করার উইজেট যোগ করতে হয় তা নিম্নলিখিত স্যাম্পেল থেকে দেখানো হয়েছে:

Kotlin

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

Java

// 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 অবজেক্ট পাস করে, অটোকমপ্লিট 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 একটি FindAutocompletePredictionsResponse একটি Task-এ ফেরত দেয়। FindAutocompletePredictionsResponse -এ সর্বাধিক পাঁচটি AutocompletePrediction অবজেক্টের তালিকা থাকে যা সম্ভাব্য জায়গা দেখায়। কোয়েরি এবং ফিল্টার মাপকাঠি অনুযায়ী কোনও পরিচিত জায়গা না থাকলে, তালিকাটি খালি থাকতে পারে।

প্রতিটি অনুমান করা জায়গার জন্য, আপনি জায়গার বিবরণ পেতে নিম্নলিখিত পদ্ধতিগুলি কল করতে পারেন:

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

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

কোয়েরি

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

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

ঐচ্ছিক প্যারামিটার

প্রাথমিক ধরন

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

কোনও জায়গার সাথে সারণি ক বা সারণি খ-এর মধ্যে থেকে শুধুমাত্র একটি প্রাথমিক ধরন যুক্ত থাকতে পারে। যেমন, প্রাইমারি ধরন "mexican_restaurant" বা "steak_house" হতে পারে।

অনুরোধটি INVALID_REQUEST সমস্যার কারণে বাতিল করা হয় যদি:

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

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

দেশ

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

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

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

ইনপুট অফসেট

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

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

লোকেশন বায়াস বা লোকেশন সংক্রান্ত বিধিনিষেধ

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

  • লোকেশন পক্ষপাত

    সার্চ করার জন্য কোনও এলাকা নির্দিষ্ট করে। এই লোকেশনটি পক্ষপাতিত্ব হিসেবে কাজ করে, কোনও বিধিনিষেধ নয়, তাই নির্দিষ্ট এলাকার বাইরের ফলাফল এখনও দেখানো হতে পারে।

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

  • লোকেশন সংক্রান্ত বিধিনিষেধ

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

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

লোকেশন বায়াস বা লোকেশন সংক্রান্ত বিধিনিষেধের অঞ্চলকে আয়তাকার ভিউপোর্ট বা বৃত্ত হিসেবে উল্লেখ করুন।

  • একটি বৃত্তকে কেন্দ্রবিন্দু এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। ব্যাসার্ধ অবশ্যই ০.০ থেকে ৫০০০০.০-এর মধ্যে হতে হবে। ডিফল্ট ভ্যালু হল ০.০। লোকেশন সংক্রান্ত বিধিনিষেধের জন্য, আপনাকে অবশ্যই ব্যাসার্ধের মান ০.০-এর বেশি সেট করতে হবে। অন্যথায়, অনুরোধের কোনও ফলাফল পাওয়া যায় না।

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

    • low = high হলে, ভিউপোর্টে শুধু সেই একটি পয়েন্টই থাকে।
    • low.longitude > high.longitude হলে, দ্রাঘিমাংশের রেঞ্জ উল্টে যায় (ভিউ পোর্ট ১৮০ ডিগ্রি দ্রাঘিমাংশ রেখা অতিক্রম করে)।
    • low.longitude = -১৮০ ডিগ্রি এবং high.longitude = ১৮০ ডিগ্রি হলে, ভিউ-পোর্টে সব দ্রাঘিমাংশ অন্তর্ভুক্ত থাকে।
    • 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 অটোমেটিক এটির যত্ন নেয়)।

প্রতিটি সেশন শনাক্ত করতে, 'অটোমেটিক সম্পূর্ণ করুন' ফিচারটি AutocompleteSessionToken ব্যবহার করে। প্রতিটি নতুন সেশন শুরু করার সময় আপনার অ্যাপকে একটি নতুন সেশন টোকেন পাস করতে হবে, তারপর ব্যবহারকারীর বেছে নেওয়া জায়গার বিবরণ ফিরিয়ে আনতে fetchPlace()-এ পরবর্তী কলে প্লেস আইডির সাথে একই টোকেন পাস করতে হবে।

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

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

অটো-কমপ্লিট (নতুন) উদাহরণ

লোকেশন সংক্রান্ত বিধিনিষেধ ও লোকেশন বায়াস ব্যবহার করা

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

লোকেশন সংক্রান্ত বিধিনিষেধ সার্চ করার জন্য এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফল ফেরত দেওয়া হয় না। নিম্নলিখিত উদাহরণে, অনুরোধকে সান ফ্রান্সিসকোকে কেন্দ্র করে ৫০০০ মিটার ব্যাসার্ধের বৃত্তাকার লোকেশন সংক্রান্ত বিধিনিষেধের মধ্যে সীমাবদ্ধ করতে, লোকেশন সংক্রান্ত বিধিনিষেধ ব্যবহার করা হয়েছে:

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

শুরুর স্থান ব্যবহার করুন

আপনি যখন অনুরোধে origin প্যারামিটার অন্তর্ভুক্ত করেন, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট করা হয়, তখন 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 অটোকমপ্লিট (নতুন) উইজেট, Android-এর জন্য Places SDK অটোকমপ্লিট (নতুন) উইজেট, অথবা iOS-এর জন্য Places SDK অটোকমপ্লিট (নতুন) উইজেট ব্যবহার করা।
  • শুরু থেকেই অটোমেটিক সম্পূর্ণ হওয়া (নতুন) ডেটা ফিল্ড সম্পর্কে প্রয়োজনীয় তথ্য জেনে নিন।
  • লোকেশন বায়াসিং ও লোকেশন সংক্রান্ত বিধিনিষেধের ফিল্ডগুলি ঐচ্ছিক হলেও, অটো-কমপ্লিট পারফর্ম্যান্সের উপর এগুলির উল্লেখযোগ্য প্রভাব থাকতে পারে।
  • API কোনও সমস্যা রিটার্ন করলে, আপনার অ্যাপ যাতে ঠিকভাবে কাজ করা বন্ধ করে দেয় তা নিশ্চিত করতে সমস্যা ম্যানেজ করার সুবিধা ব্যবহার করুন।
  • কোনও কিছু বেছে না নেওয়া হলে আপনার অ্যাপ যেন সেটি ম্যানেজ করতে পারে এবং ব্যবহারকারীকে চালিয়ে যাওয়ার উপায় অফার করে তা নিশ্চিত করুন।

খরচ অপ্টিমাইজ করার পেশাদার পদ্ধতি

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

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

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

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

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

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

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

জায়গার বিবরণ (নতুন) সহ সেশন-ভিত্তিক অটোমেটিক সম্পূর্ণ করা (নতুন)

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

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

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

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

Geocoding API-এর সাথে প্রতি-অনুরোধ অটোকমপ্লিট (নতুন)

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

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

শুধুমাত্র ঠিকানা-ভিত্তিক অ্যাপ্লিকেশনের জন্য সেশন-ভিত্তিক অটো-কমপ্লিট (নতুন)

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

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

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

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

অটোকমপ্লিট (নতুন) অনুরোধে দেরি করার কথা বিবেচনা করুন
আপনি এমন কৌশল অবলম্বন করতে পারেন যেমন ব্যবহারকারী প্রথম তিন বা চারটি অক্ষর টাইপ না করা পর্যন্ত অটোকমপ্লিট (নতুন) অনুরোধে দেরি করা যাতে আপনার অ্যাপ্লিকেশন কম অনুরোধ করে। যেমন, ব্যবহারকারী তৃতীয় অক্ষর টাইপ করার পরে প্রতিটি অক্ষরের জন্য অটোকমপ্লিট (নতুন) অনুরোধ করার অর্থ হল, ব্যবহারকারী সাতটি অক্ষর টাইপ করে একটি অনুমান বেছে নিলে, যার জন্য আপনি একটি Geocoding API অনুরোধ করেন, তাহলে মোট খরচ হবে ৪টি অটোকমপ্লিট (নতুন) প্রতি অনুরোধ + Geocoding-এর জন্য।১

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

আপনার ব্যবহারকারীরা যাতে কম অক্ষর ব্যবহার করেই তাদের প্রয়োজনীয় পূর্বাভাস পেতে পারেন, তার জন্য পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি প্রয়োগ করার কথা বিবেচনা করুন।


  1. খরচের জন্য, Google Maps Platform-এর দামের তালিকা দেখুন।

পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি

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

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

লোকেশন বায়াসিং

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

লোকেশন সংক্রান্ত বিধিনিষেধ

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

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