অটোকমপ্লিট (নতুন) ফিচারটি টেক্সট সার্চ স্ট্রিং এবং সার্চ এরিয়া নিয়ন্ত্রণকারী ভৌগোলিক সীমানা সহ অনুরোধের উত্তরে জায়গার পূর্বাভাস প্রদান করে। অটোমেটিক সম্পূর্ণ করার ফিচার ইনপুটের সম্পূর্ণ শব্দ ও সাবস্ট্রিংয়ের সাথে ম্যাচ করতে পারে, জায়গার নাম, ঠিকানা ও প্লাস কোড সমাধান করে। ব্যবহারকারী টাইপ করার সাথে সাথে আপনার অ্যাপ্লিকেশন কোয়েরি পাঠাতে পারে, যাতে সাথে সাথে জায়গা ও কোয়েরি সংক্রান্ত পূর্বাভাস দেওয়া যায়।
যেমন, আপনি ইনপুট হিসেবে ব্যবহারকারীর আংশিক ইনপুট, "Sicilian piz" সহ স্ট্রিং ব্যবহার করে অটোমেটিক সম্পূর্ণ হওয়া ফিচার কল করেন, যেখানে সার্চের এলাকা ক্যালিফোর্নিয়ার সান ফ্রান্সিসকোতে সীমাবদ্ধ। তারপর, উত্তরে সার্চ স্ট্রিং ও সার্চ এরিয়ার সাথে মেলে এমন জায়গার পূর্বাভাসের তালিকা থাকে, যেমন "Sicilian Pizza Kitchen" নামের রেস্তোরাঁ। ফিরে আসা স্থান সম্পর্কিত পূর্বানুমানগুলি ব্যবহারকারীকে তার পছন্দসই স্থান বেছে নিতে সাহায্য করার জন্য দেখানো হয়। আপনি ফেরত আসা জায়গার পূর্বাভাসের ব্যাপারে আরও তথ্য পেতে জায়গার বিবরণ (নতুন) সংক্রান্ত অনুরোধ করতে পারেন।
আপনি দুটি প্রধান উপায়ে আপনার অ্যাপে অটোমেটিক সম্পূর্ণ হওয়া (নতুন) কার্যকারিতা ইন্টিগ্রেট করতে পারেন:
- প্লেস অটোকমপ্লিট উইজেট যোগ করুন: এর মাধ্যমে
ব্যবহারের জন্য রেডি সার্চ অটোকমপ্লিট অভিজ্ঞতা প্রদান করে।
PlaceAutocompleteব্যবহারকারী টাইপ করার সাথে সাথে এই ক্লাস সাজেশন দেখায়। - প্রোগ্রাম্যাটিক্যালি জায়গার পূর্বাভাস পান: পূর্বাভাস পেতে এবং কাস্টম ইউজার ইন্টারফেসে সেগুলি দেখাতে সরাসরি API কল করুন।
'জায়গা অটোমেটিক সম্পূর্ণ করা' উইজেট যোগ করা
আরও সহজে জায়গা অটোমেটিক সম্পূর্ণ করার ধারাবাহিক অভিজ্ঞতা প্রদান করতে, আপনি অ্যাপে
জায়গা অটোমেটিক সম্পূর্ণ করার উইজেট যোগ করতে পারেন। উইজেটটি একটি ডেডিকেটেড,
ফুল-স্ক্রিন ইন্টারফেস প্রদান করে যা ব্যবহারকারীর ইনপুট ম্যানেজ করে এবং অ্যাপে
AutocompletePrediction
অবজেক্ট ফিরিয়ে দেওয়ার সময় ব্যবহারকারীকে জায়গা সংক্রান্ত অনুমান দেখায়। আপনি তারপর যেকোনও জায়গা সংক্রান্ত অনুমানের ব্যাপারে
অতিরিক্ত তথ্য পেতে জায়গার বিবরণ
(নতুন) সংক্রান্ত অনুরোধ করতে পারেন।
যেমন, প্রোগ্রাম্যাটিক্যালি জায়গার পূর্বাভাস পাওয়ার সময়,
বিলিংয়ের উদ্দেশ্যে সেশনে অটোমেটিক সম্পূর্ণ করার অনুরোধ গ্রুপ করতে,
'জায়গা অটোমেটিক সম্পূর্ণ করা' উইজেট আপনাকে সেশন টোকেন ব্যবহার করতে দেয়। setAutocompleteSessionToken() কল করে উইজেটের জন্য ইনটেন্ট তৈরি করার সময় আপনি
সেশন টোকেন পাস করতে পারেন। আপনি সেশন টোকেন না দিলে, উইজেট আপনার জন্য একটি তৈরি করবে, যা আপনি
getSessionTokenFromIntent() কল করে অ্যাক্সেস করতে পারবেন।
সেশন টোকেন ব্যবহার করার ব্যাপারে আরও তথ্যের জন্য, সেশন টোকেন
সম্পর্কে দেখুন।
আপনার অ্যাপে 'প্লেস অটোকমপ্লিট' উইজেট যোগ করতে:
(ঐচ্ছিক) সেশন টোকেন নির্ধারণ করুন। আপনি সেশন টোকেন না দিলে, উইজেট আপনার জন্য একটি তৈরি করবে।
প্রয়োজনীয় প্যারামিটার ও সেশন টোকেন সহ
autocompleteIntentসংজ্ঞায়িত করুন।StartActivityForResult-এর জন্যActivityResultLauncher-এর সংজ্ঞা দিন। এই লঞ্চার অটোমেটিক সম্পূর্ণ হওয়া অ্যাক্টিভিটি থেকে পাওয়া ফলাফল ম্যানেজ করবে।ActivityResultLauncher-এর কলব্যাকে ফলাফল ম্যানেজ করুন। এর মধ্যে রয়েছেAutocompletePredictionওAutocompleteSessionTokenএক্সট্র্যাক্ট করা (যদি আপনি নিজের না দিয়ে থাকেন), সমস্যা ম্যানেজ করা এবং ঐচ্ছিকভাবে কোনও জায়গা সম্পর্কে অতিরিক্ত বিবরণ পেতেfetchPlace()অনুরোধ করা।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()মেথড কল করুন।
ঐচ্ছিক প্যারামিটার
-
প্রাথমিক ধরন
types টেবিল ক বা টেবিল খ থেকে সর্বাধিক পাঁচটি টাইপ ভ্যালুর তালিকা, যা উত্তরের মধ্যে রিটার্ন করা জায়গা ফিল্টার করতে ব্যবহার করা হয়। উত্তর দেওয়ার সময় কোনও জায়গাকে অন্তর্ভুক্ত করতে হলে, সেটিকে অবশ্যই নির্দিষ্ট করা প্রাথমিক ধরনের ভ্যালুগুলির মধ্যে কোনও একটির সাথে ম্যাচ করতে হবে।
কোনও জায়গার সাথে যুক্ত টেবিল ক বা টেবিল খ থেকে কোনও একটি প্রাথমিক ধরন থাকতে পারে। যেমন, প্রাথমিক ধরন
"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-তে তালিকাভুক্ত নির্দিষ্ট ধরনের মধ্যে সীমাবদ্ধ করুন। আপনি সর্বাধিক পাঁচটি ভ্যালুর একটি অ্যারে নির্দিষ্ট করতে পারবেন। বাদ দেওয়া হলে, সব ধরনের বিজ্ঞাপন দেখায়।
নিচের উদাহরণে "ফুটবল" কোয়েরি স্ট্রিং নির্দিষ্ট করা হয়েছে এবং প্রাথমিক
types প্যারামিটার ব্যবহার করে ফলাফলকে "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 অটোকমপ্লিট (নতুন) উইজেট, Android-এর জন্য Places SDK অটোকমপ্লিট (নতুন) উইজেট, অথবা iOS-এর জন্য Places SDK অটোকমপ্লিট (নতুন) উইজেট ব্যবহার করা।
- শুরু থেকেই অটোমেটিক সম্পূর্ণ হওয়া (নতুন) ডেটা ফিল্ড সম্পর্কে প্রয়োজনীয় তথ্য জেনে নিন।
- লোকেশন বায়াসিং এবং লোকেশন সংক্রান্ত বিধিনিষেধের ফিল্ডগুলি ঐচ্ছিক হলেও, অটো-কমপ্লিট পারফর্ম্যান্সের উপর উল্লেখযোগ্য প্রভাব ফেলতে পারে।
- API কোনও সমস্যা দেখালে, আপনার অ্যাপ যাতে ভালোভাবে কাজ করা বন্ধ করতে পারে তা নিশ্চিত করতে সমস্যা হ্যান্ডেল করার সুবিধা ব্যবহার করুন।
- কোনও কিছু বেছে না নেওয়া হলে আপনার অ্যাপ যেন সেটি ম্যানেজ করতে পারে এবং ব্যবহারকারীকে চালিয়ে যাওয়ার উপায় অফার করে তা নিশ্চিত করুন।
খরচ অপ্টিমাইজ করা সংক্রান্ত পেশাদার পদ্ধতি
খরচ কমানোর প্রাথমিক পদ্ধতি
'অটোফিল (নতুন) পরিষেবা' ব্যবহারের খরচ অপ্টিমাইজ করতে, আপনার প্রয়োজনীয় অটোফিল (নতুন) ডেটা ফিল্ড ফেরাতে, 'জায়গার বিবরণ (নতুন)' ও 'অটোফিল (নতুন)' উইজেটে ফিল্ড মাস্ক ব্যবহার করুন।
উন্নত খরচ অপ্টিমাইজেশন
'অটোমেটিক সম্পূর্ণ হওয়া' (নতুন) ফিচারের প্রোগ্রাম্যাটিক প্রয়োগ বিবেচনা করে SKU: অটোমেটিক সম্পূর্ণ হওয়ার অনুরোধের মূল্য অ্যাক্সেস করুন এবং 'জায়গার বিবরণ' (নতুন) ফিচারের পরিবর্তে বেছে নেওয়া জায়গা সম্পর্কে জিওকোডিং API ফলাফল অনুরোধ করুন। নিম্নলিখিত দুটি শর্ত পূরণ হলে, জিওকোডিং API-এর সাথে প্রতি-অনুরোধের মূল্য নির্ধারণ, প্রতি-সেশন (সেশন-ভিত্তিক) মূল্য নির্ধারণের চেয়ে বেশি সাশ্রয়ী হয়:
- আপনি যদি শুধুমাত্র ব্যবহারকারীর বেছে নেওয়া জায়গার অক্ষাংশ ও দ্রাঘিমাংশ বা ঠিকানা চান, তাহলে জিওকোডিং API এই তথ্য প্লেস বিবরণ (নতুন) কলের চেয়ে কম খরচে প্রদান করে।
- ব্যবহারকারীরা যদি গড়ে চারটি অটোকমপ্লিট (নতুন) সাজেশন সংক্রান্ত অনুরোধ বা তার কমের মধ্যে কোনও একটি বেছে নেন, তাহলে প্রতি অনুরোধের মূল্য প্রতি সেশনের মূল্যের চেয়ে বেশি সাশ্রয়ী হতে পারে।
আপনার অ্যাপ্লিকেশনে কি বেছে নেওয়া পূর্বাভাসের ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ ছাড়া অন্য কোনও তথ্যের প্রয়োজন আছে?
হ্যাঁ, আরও বিবরণ প্রয়োজন
জায়গার বিবরণ (নতুন) সহ সেশন-ভিত্তিক অটোমেটিক সম্পূর্ণ (নতুন) ব্যবহার করুন।
যেহেতু আপনার অ্যাপ্লিকেশনে প্লেস বিবরণ (নতুন) প্রয়োজন, যেমন জায়গার নাম, ব্যবসার স্ট্যাটাস,
বা খোলার সময়, তাই অটো-কমপ্লিট (নতুন) প্রয়োগ করার সময় সেশন টোকেন ব্যবহার করতে হবে
(প্রোগ্রামাটিক বা
JavaScript,
Android,
বা iOS
উইজেটে বিল্ট-ইন)
প্রতি সেশন এবং প্রযোজ্য Places SKUs,
আপনি কোন প্লেস ডেটা ফিল্ডের অনুরোধ করছেন তার উপর নির্ভর করে।১
উইজেট প্রয়োগ করা
সেশন ম্যানেজমেন্ট অটোমেটিক
JavaScript,
Android,
অথবা iOS
উইজেটে তৈরি করা হয়। এর মধ্যে অটোকমপ্লিট (নতুন) অনুরোধ এবং বেছে নেওয়া পূর্বাভাসের উপর ভিত্তি করে
জায়গার বিবরণ (নতুন) অনুরোধ অন্তর্ভুক্ত। আপনি যে শুধুমাত্র
অটোফিল (নতুন) ডেটা ফিল্ডের
জন্য অনুরোধ করছেন তা নিশ্চিত করতে, fields প্যারামিটার নির্দিষ্ট করতে ভুলবেন না।
প্রোগ্রামাটিক প্রয়োগ
আপনার অটোমেটিক সম্পূর্ণ করা (নতুন) অনুরোধের সাথে
সেশন টোকেন
ব্যবহার করুন। বেছে নেওয়া পূর্বাভাসের জন্য Place Details (New) সংক্রান্ত অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:
- অটোমেটিক সম্পূর্ণ করা (নতুন) উত্তর থেকে পাওয়া জায়গার আইডি
- অটোকমপ্লিট (নতুন) অনুরোধে সেশন টোকেন ব্যবহার করা হয়েছে
fieldsপ্যারামিটারটি আপনার প্রয়োজনীয় অটোফিল (নতুন) ডেটা ফিল্ড নির্দিষ্ট করে
না, শুধু ঠিকানা ও লোকেশন প্রয়োজন
আপনার Autocomplete (New) ব্যবহারের পারফর্ম্যান্সের উপর নির্ভর করে, আপনার অ্যাপ্লিকেশনের জন্য Geocoding API, Place Details (New)-এর চেয়ে বেশি সাশ্রয়ী বিকল্প হতে পারে। ব্যবহারকারী কী লিখছেন, অ্যাপ্লিকেশনটি কোথায় ব্যবহার করা হচ্ছে এবং পারফর্ম্যান্স অপ্টিমাইজেশন সংক্রান্ত পেশাদার পদ্ধতি প্রয়োগ করা হয়েছে কিনা তার উপর নির্ভর করে প্রতিটি অ্যাপ্লিকেশনের অটো-কমপ্লিট (নতুন) ফিচারের কার্যকারিতা পরিবর্তিত হয়।
নিচের প্রশ্নের উত্তর দিতে, আপনার অ্যাপ্লিকেশনে কোনও অটোকমপ্লিট (নতুন) সাজেশন বেছে নেওয়ার আগে একজন ব্যবহারকারী গড়ে কতগুলি অক্ষর টাইপ করেন তা বিশ্লেষণ করুন।
আপনার ব্যবহারকারীরা কি গড়ে চার বা তার কম অনুরোধে একটি Autocomplete (New) পূর্বাভাস বেছে নেন?
হ্যাঁ
সেশন টোকেন ছাড়া প্রোগ্রামাটিক পদ্ধতিতে 'অটোফিল' (নতুন) ফিচার প্রয়োগ করুন এবং বেছে নেওয়া জায়গার পূর্বাভাসের জন্য জিওকোডিং API কল করুন।
Geocoding API ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট প্রদান করে।
চারটি
অটোকমপ্লিট অনুরোধ
অনুরোধের সাথে বেছে নেওয়া স্থান সম্পর্কিত জিওকোডিং API
কল, প্রতি সেশন অটোকমপ্লিট (নতুন)
প্রতি সেশন খরচের চেয়ে কম।১
আপনার ব্যবহারকারীরা যাতে আরও কম অক্ষর টাইপ করেই তাদের কাঙ্ক্ষিত পূর্বাভাস পেতে পারেন, তার জন্য পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি প্রয়োগ করার কথা বিবেচনা করুন।
না
জায়গার বিবরণ (নতুন) সহ সেশন-ভিত্তিক অটোমেটিক সম্পূর্ণ (নতুন) ব্যবহার করুন।
ব্যবহারকারী অটোকমপ্লিট (নতুন) পূর্বাভাস বেছে নেওয়ার আগে আপনি যতগুলি অনুরোধ করবেন বলে আশা করেন,
তার গড় সংখ্যা সেশন প্রতি মূল্যের থেকে বেশি, তাই আপনার অটোকমপ্লিট (নতুন) প্রয়োগের ক্ষেত্রে
অটোকমপ্লিট (নতুন) অনুরোধ এবং সংশ্লিষ্ট জায়গার বিবরণ (নতুন) অনুরোধ, দুটির জন্যই সেশন টোকেন ব্যবহার করা উচিত
সেশন প্রতি।
১
উইজেট প্রয়োগ করা
সেশন ম্যানেজমেন্ট অটোমেটিক
JavaScript,
Android,
বা iOS
উইজেটে বিল্ট-ইন থাকে। এর মধ্যে অটোকমপ্লিট (নতুন) অনুরোধ এবং বেছে নেওয়া পূর্বাভাসের উপর
জায়গার বিবরণ (নতুন) অনুরোধ অন্তর্ভুক্ত। আপনি শুধুমাত্র প্রয়োজনীয় ফিল্ডের অনুরোধ করছেন কিনা তা নিশ্চিত করতে, fields প্যারামিটার
নির্দিষ্ট করতে ভুলবেন না।
প্রোগ্রামাটিক প্রয়োগ
আপনার অটোমেটিক সম্পূর্ণ করা (নতুন) অনুরোধের সাথে
সেশন টোকেন
ব্যবহার করুন।
বেছে নেওয়া পূর্বাভাসের জন্য জায়গার বিবরণ (নতুন) সংক্রান্ত অনুরোধ করার সময়,
নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:
- অটোমেটিক সম্পূর্ণ করা (নতুন) উত্তর থেকে পাওয়া জায়গার আইডি
- 'অটোকমপ্লিট (নতুন)' অনুরোধে ব্যবহৃত সেশন টোকেন
fieldsপ্যারামিটার ঠিকানা ও জ্যামিতির মতো ফিল্ড নির্দিষ্ট করে
অটোকমপ্লিট (নতুন) অনুরোধে দেরি করার কথা বিবেচনা করুন
ব্যবহারকারী প্রথম তিনটি বা চারটি অক্ষর টাইপ না করা পর্যন্ত অটোকমপ্লিট (নতুন) অনুরোধে দেরি করার মতো কৌশল আপনি প্রয়োগ করতে পারেন, যাতে আপনার অ্যাপ্লিকেশন কম অনুরোধ করে। যেমন, ব্যবহারকারী তৃতীয় অক্ষর টাইপ করার পরে প্রতিটি অক্ষরের জন্য অটোকমপ্লিট (নতুন) অনুরোধ করার অর্থ হল, ব্যবহারকারী সাতটি অক্ষর টাইপ করে একটি পূর্বাভাস বেছে নিলে, যার জন্য আপনি একটি Geocoding API অনুরোধ করেন, তাহলে মোট খরচ হবে ৪টি অটোকমপ্লিট (নতুন) প্রতি অনুরোধ + Geocoding-এর জন্য।১
অনুরোধে দেরি করার ফলে আপনার গড় প্রোগ্র্যামাটিক অনুরোধ চারটির কম হলে, আপনি Geocoding API-এর সাথে পারফর্ম্যান্ট অটোমেটিক সম্পূর্ণ (নতুন) প্রয়োগ করার নির্দেশিকা অনুসরণ করতে পারেন। মনে রাখবেন, অনুরোধ পাঠাতে দেরি হলে ব্যবহারকারী মনে করতে পারেন যে লেটেন্সি হচ্ছে, কারণ তিনি হয়ত প্রতিটি নতুন কীস্ট্রোকের সাথে সাথে সাজেশন দেখতে চান।
আপনার ব্যবহারকারীরা যাতে কম অক্ষর টাইপ করেই তাদের প্রয়োজনীয় পূর্বাভাস পেতে পারেন, তার জন্য পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি প্রয়োগ করার কথা বিবেচনা করুন।
-
খরচের জন্য, Google Maps Platform-এর দামের তালিকা দেখুন।
পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি
নিচে দেওয়া নির্দেশিকা থেকে অটোকমপ্লিট (নতুন) পারফর্ম্যান্স অপ্টিমাইজ করার উপায় সম্পর্কে জানতে পারবেন:
- আপনার Autocomplete (নতুন) ইমপ্লিমেন্টেশনে দেশ সংক্রান্ত বিধিনিষেধ, লোকেশন বায়াসিং, এবং (প্রোগ্রামাটিক ইমপ্লিমেন্টেশনের জন্য) ভাষার অগ্রাধিকার যোগ করুন। উইজেটের ক্ষেত্রে ভাষার পছন্দ সেট করার প্রয়োজন নেই কারণ এটি ব্যবহারকারীর ব্রাউজার বা মোবাইল ডিভাইস থেকে ভাষার পছন্দ বেছে নেয়।
- অটোমেটিক সম্পূর্ণ (নতুন) ফিচারের সাথে ম্যাপ থাকলে, আপনি ম্যাপ ভিউপোর্ট অনুযায়ী লোকেশন বায়াস করতে পারবেন।
- ব্যবহারকারী যদি 'অটোকমপ্লিট (নতুন)' ফিচারের সাজেশনগুলির মধ্যে কোনও একটি বেছে না নেন, সাধারণত
কারণ সেইসব সাজেশন থেকে কাঙ্ক্ষিত ফলাফল-ঠিকানা পাওয়া যাচ্ছে না, তাহলে আরও প্রাসঙ্গিক ফলাফল পাওয়ার জন্য আপনি মূল
ব্যবহারকারীর ইনপুট আবার ব্যবহার করতে পারেন:
- আপনি যদি ব্যবহারকারীর থেকে শুধুমাত্র ঠিকানা সংক্রান্ত তথ্য আশা করেন, তাহলে Geocoding API-তে কল করার সময় মূল ব্যবহারকারীর ইনপুট আবার ব্যবহার করুন।
- ব্যবহারকারী নাম বা ঠিকানা দিয়ে নির্দিষ্ট কোনও জায়গা সার্চ করবেন বলে আপনি আশা করলে, 'জায়গার বিবরণ (নতুন)' সংক্রান্ত অনুরোধ ব্যবহার করুন। ফলাফল যদি শুধুমাত্র একটি নির্দিষ্ট অঞ্চলে প্রত্যাশিত হয়, তাহলে লোকেশন বায়াসিং ব্যবহার করুন।
- ব্যবহারকারীরা সাবপ্রিমাইজ ঠিকানা ইনপুট করছেন, যেমন কোনও বিল্ডিংয়ের মধ্যে নির্দিষ্ট ইউনিট বা অ্যাপার্টমেন্টের ঠিকানা। যেমন, চেক প্রজাতন্ত্রের ঠিকানা "Stroupežnického 3191/17, Praha" অটোমেটিক সম্পূর্ণ (নতুন) ফিচারে আংশিক পূর্বাভাস দেখায়।
- ব্যবহারকারীরা রোড-সেগমেন্ট প্রিফিক্স সহ ঠিকানা ইনপুট করছেন, যেমন নিউ ইয়র্ক সিটিতে "23-30 29th St, Queens" অথবা হাওয়াইয়ের কাউয়াই দ্বীপে "47-380 Kamehameha Hwy, Kaneohe"।
লোকেশন বায়াসিং
location প্যারামিটার এবং radius
প্যারামিটার পাস করে নির্দিষ্ট এলাকার জন্য পক্ষপাতমূলক ফলাফল। এটি Autocomplete (নতুন) ফিচারকে নির্দিষ্ট এলাকার মধ্যে ফলাফল দেখানোর জন্য
অগ্রাধিকার দিতে নির্দেশ দেয়। নির্ধারিত এলাকার বাইরে থাকা ফলাফল এখনও
দেখানো হতে পারে। আপনি includedRegionCodes প্যারামিটার ব্যবহার করে ফলাফল ফিল্টার করতে পারেন
যাতে শুধুমাত্র নির্দিষ্ট দেশের মধ্যে থাকা জায়গাগুলি দেখানো হয়।
লোকেশন সংক্রান্ত বিধিনিষেধ
locationRestriction প্যারামিটার পাস করে নির্দিষ্ট এলাকায় ফলাফল সীমিত করুন।
এছাড়াও, আপনি location
এবং radius প্যারামিটার দ্বারা নির্ধারিত অঞ্চলে ফলাফল সীমাবদ্ধ করতে পারেন, এর জন্য
locationRestriction
প্যারামিটার যোগ করতে হবে। এটি Autocomplete (New)-কে শুধুমাত্র সেই অঞ্চলের মধ্যে
ফলাফল দেখানোর নির্দেশ দেয়।