অটোকমপ্লিট (নতুন) পরিষেবা হল একটি iOS API যা অনুরোধের উত্তরে জায়গার সাজেশন দেখায়। অনুরোধে, একটি টেক্সট সার্চ স্ট্রিং এবং ভৌগোলিক সীমানা উল্লেখ করুন যা সার্চ এলাকা নিয়ন্ত্রণ করে।
অটো-কমপ্লিট (নতুন) পরিষেবা ইনপুটের সম্পূর্ণ শব্দ এবং সাবস্ট্রিংয়ের সাথে মিলতে পারে, জায়গার নাম, ঠিকানা এবং প্লাস কোড সমাধান করে। তাই, ব্যবহারকারী টাইপ করার সাথে সাথে অ্যাপ্লিকেশন কোয়েরি পাঠাতে পারে, যাতে সাথে সাথে জায়গার সাজেশন দেওয়া যায়।
জায়গার সাজেশন হল ব্যবসা, ঠিকানা এবং আগ্রহের বিন্দুর মতো জায়গা, যা নির্দিষ্ট ইনপুট টেক্সট স্ট্রিং এবং সার্চ এলাকার উপর ভিত্তি করে দেখানো হয়।
যেমন, আপনি ইনপুট হিসেবে আংশিক ব্যবহারকারীর ইনপুট, "Spagh" সহ স্ট্রিং ব্যবহার করে API কল করেন, যেখানে সার্চের এলাকা নিউ ইয়র্ক সিটিতে সীমাবদ্ধ। তারপর, উত্তরে সার্চ স্ট্রিং ও সার্চ এরিয়ার সাথে ম্যাচ করে এমন জায়গার সাজেশন-এর তালিকা থাকে, যেমন "ক্যাফে স্প্যাগেটি" নামের রেস্তোরাঁ, সাথে জায়গাটির সম্পর্কে বিবরণ।
ফেরত পাঠানো জায়গার সাজেশন ব্যবহারকারীকে দেখানোর জন্য ডিজাইন করা হয়েছে যাতে তারা পছন্দসই জায়গা বেছে নিতে পারেন। আপনি জায়গার বিবরণ (নতুন) অনুরোধ করে, ফিরে আসা জায়গার সাজেশন সম্পর্কে আরও তথ্য পেতে পারেন।
আপনি দুটি প্রধান উপায়ে আপনার অ্যাপে অটোমেটিক সম্পূর্ণ হওয়া (নতুন) কার্যকারিতা ইন্টিগ্রেট করতে পারেন:
- প্রোগ্রাম্যাটিক্যালি জায়গার পূর্বাভাস পান: পূর্বাভাস পেতে এবং কাস্টম ইউজার ইন্টারফেসে সেগুলি দেখাতে সরাসরি API কল করুন।
- জায়গা অটোমেটিক সম্পূর্ণ করার উইজেট যোগ করুন: ব্যবহারকারী টাইপ করার সাথে সাথে পূর্বাভাস দেখায় এমন একটি ব্যবহার করার জন্য প্রস্তুত সার্চ অটোমেটিক সম্পূর্ণ করার অভিজ্ঞতা প্রদান করে।
প্রোগ্রাম্যাটিক্যালি জায়গার পূর্বাভাস পান
অটো-কমপ্লিট (নতুন) অনুরোধ
GMSPlacesClient-এ
একটি পদ্ধতি কল করে অটোমেটিক সম্পূর্ণ করার অনুরোধ তৈরি করুন।
আপনি
GMSAutocompleteRequest
অবজেক্টে প্যারামিটার পাস করতে পারবেন। উত্তরে
GMSAutocompletePlaceSuggestion
অবজেক্টের মধ্যে অটোকমপ্লিট সাজেশন প্রদান করা হয়।
API কী এবং
query
প্যারামিটার প্রয়োজন। এছাড়াও, আপনি বিলিং সেশনের সাথে অনুরোধ যুক্ত করতে
GMSAutocompleteSessionToken
এবং ফলাফলে প্রয়োগ করতে
GMSAutocompleteFilter
যোগ করতে পারেন।
Places Swift SDK ভার্সন
PlacesClient-এ
একটি পদ্ধতি কল করে অটোমেটিক সম্পূর্ণ করার অনুরোধ তৈরি করুন।
আপনি
AutocompleteRequest
অবজেক্টে প্যারামিটার পাস করতে পারবেন। উত্তরে
AutocompletePlaceSuggestion
অবজেক্টের মধ্যে অটোকমপ্লিট সাজেশন প্রদান করা হয়।
API কী এবং query প্যারামিটার প্রয়োজন। এছাড়াও, আপনি বিলিং সেশনের সাথে অনুরোধ যুক্ত করতে
AutocompleteSessionToken
এবং ফলাফলে প্রয়োগ করতে
AutocompleteFilter
যোগ করতে পারেন।
প্রয়োজনীয় ও ঐচ্ছিক প্যারামিটার সম্পর্কে আরও জানতে, এই ডকুমেন্টের প্যারামিটার বিভাগ দেখুন।
Places Swift SDK
let center = (37.3913916, -122.0879074) let northEast = (37.388162, -122.088137) let southWest = (37.395804, -122.077023) let bias = RectangularCoordinateRegion(northEast: northEast, southWest: southWest) let filter = AutocompleteFilter(types: [ .restaurant ], origin: center, coordinateRegionBias: bias) let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): // Handle suggestions. case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let northWestBounds = CLLocationCoordinate2DMake(40.921628, -73.700051) let southEastBounds = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.types = [kGMSPlaceTypeRestaurant] filter.locationBias = GMSPlaceRectangularLocationOption(northWestBounds, southEastBounds) let request = GMSAutocompleteRequest(query:"Spagh") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.388162, -122.088137); CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.395804, -122.077023); GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ kGMSPlaceTypeRestaurant ]; filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
অটো-কমপ্লিট (নতুন) উত্তর
অটোমেটিক সম্পূর্ণ করার ফিচার সর্বাধিক পাঁচটি
GMSAutocompleteSuggestion ইনস্ট্যান্সের অ্যারে দেখায়। অ্যারেতে এগুলি আছে:
placeIDtypes: এই জায়গার ক্ষেত্রে প্রযোজ্য ধরন।distanceMeters: যে স্টেশন থেকে ছাড়বে তার থেকে দূরত্ব।attributedFullText: কোনও সাজেশনের সম্পূর্ণ মানুষের-পঠনযোগ্য টেক্সট।attributedPrimaryText: কোনও সাজেশনের মানুষের-পঠনযোগ্য প্রাথমিক টেক্সট।attributedSecondaryText: কোনও সাজেশনের মানুষের-পঠনযোগ্য সেকেন্ডারি টেক্সট।structuredFormat: নির্দিষ্ট নাম এবং দ্ব্যর্থতা নিরসনকারী টেক্সট, যেমন শহর বা অঞ্চল।
প্রয়োজনীয় প্যারামিটার
কোয়েরি
যে টেক্সট স্ট্রিংয়ে সার্চ করতে হবে। সম্পূর্ণ শব্দ এবং সাবস্ট্রিং, জায়গার নাম, ঠিকানা এবং Plus Code উল্লেখ করুন। The অটোমেটিক সম্পূর্ণ করা (নতুন) পরিষেবা এই স্ট্রিংয়ের উপর ভিত্তি করে সম্ভাব্য মিল দেখায় এবং তাদের অনুভূত প্রাসঙ্গিকতার উপর ভিত্তি করে ফলাফল অর্ডার করে।
ঐচ্ছিক প্যারামিটার
sessionToken
সেশন টোকেন হল ব্যবহারকারীর তৈরি করা স্ট্রিং যা অটোকমপ্লিট (নতুন) কল ট্র্যাক করে—উইজেট এবং প্রোগ্রাম্যাটিক কল, দুটিই—"সেশন" হিসেবে। অটোকমপ্লিট (নতুন) বিলিংয়ের উদ্দেশ্যে ব্যবহারকারীর অটোকমপ্লিট সার্চের কোয়েরি ও বেছে নেওয়ার ধাপগুলিকে একটি পৃথক সেশনে গ্রুপ করতে সেশন টোকেন ব্যবহার করে।
আপনি Places Autocomplete সেশন টোকেন এক্সপোজ করতে পারেন যাতে এটি iOS-এর জন্য Places SDK-এর অংশ নয় এমন অন্যান্য পরিষেবাগুলিতে পাস করা যায়, যেমন Address Validation:
Places Swift SDK
let token = AutocompleteSessionToken() let filter = AutocompleteFilter(origin: CLLocationCoordinate2DMake(39.7, -94.5)) let request = AutocompleteRequest(query: "Piz", sessionToken: token, filter: filter) PlacesClient.shared.fetchAutocompleteSuggestions(request: request) { case .success(let suggestions): ... case .failure(let placesError): print(placesError) } // pass token's string format to use with a service that is not a part of iOS SDK. print("token: \(token)")
Objective-C
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Piz"]; GMSAutocompleteSessionToken *token = [[GMSAutocompleteSessionToken alloc] init]; request.sessionToken = token; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:39.7 longitude:-94.5]; filter.locationBias = GMSPlaceRectangularLocationOption(topLocation, bottomLocation); request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> *_Nullable results, NSError *_Nullable error) { ... }]; // pass token's string format to use with a service that is not a part of iOS SDK. NSLog(@"%@", token.description);
আরও তথ্যের জন্য সেশন টোকেন দেখুন।
ঐচ্ছিক AutocompleteFilter প্যারামিটার
ধরন
কোনও জায়গার সাথে সারণী
A বা সারণী
B-এর মধ্যে থেকে শুধুমাত্র একটি প্রাইমারি ধরন যুক্ত থাকতে পারে।
যেমন, প্রাইমারি টাইপ mexican_restaurant বা steak_house হতে পারে।
ডিফল্ট হিসেবে, API input প্যারামিটারের উপর ভিত্তি করে সব জায়গা দেখায়,
জায়গার সাথে যুক্ত প্রাইমারি টাইপ ভ্যালু যাই হোক না কেন। types প্যারামিটার পাস করে
ফলাফলকে নির্দিষ্ট কোনও প্রাথমিক ধরন বা প্রাথমিক ধরনের মধ্যে
সীমাবদ্ধ করুন।
সারণী A বা সারণী B থেকে সর্বাধিক পাঁচটি ধরনের মান উল্লেখ করতে এই প্যারামিটার ব্যবহার করুন। কোনও জায়গাকে উত্তরে অন্তর্ভুক্ত করতে হলে, সেটিকে নির্দিষ্ট করা প্রাথমিক ধরনের ভ্যালুর মধ্যে কোনও একটির সাথে মিলতে হবে।
অনুরোধটি INVALID_REQUEST সমস্যার কারণে বাতিল করা হয় যদি:
- পাঁচটির বেশি ধরন নির্দিষ্ট করা হয়েছে।
- কোনও অচেনা ধরন নির্দিষ্ট করা হয়েছে।
যেমন, ফলাফলকে খেলাধূলার সরঞ্জামের দোকানে সীমাবদ্ধ করতে, আপনার AutocompleteFilter-এ সেই ধরনটি নির্দিষ্ট করুন:
Places Swift SDK
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ])
Swift
let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ];
দেশগুলি
শুধুমাত্র নির্দিষ্ট অঞ্চলের তালিকা থেকে ফলাফল অন্তর্ভুক্ত করুন, যা সর্বাধিক ১৫টি ccTLD ("টপ-লেভেল ডোমেন") দুটি-অক্ষরের মানের অ্যারে হিসেবে নির্দিষ্ট করা হয়েছে। বাদ দেওয়া হলে, উত্তরে কোনও বিধিনিষেধ প্রয়োগ করা হয় না। যেমন, অঞ্চলকে জার্মানি ও ফ্রান্সে সীমাবদ্ধ করতে:
Places Swift SDK
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Swift
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
আপনি locationRestriction এবং countries দুটিই নির্দিষ্ট করলে, ফলাফল দুটি সেটিংসের
ইন্টারসেকশন এলাকায় অবস্থিত হয়।
inputOffset
শূন্য-ভিত্তিক ইউনিকোড অক্ষর অফসেট যা
input-এ কার্সারের অবস্থান নির্দেশ করে। কার্সারের পজিশন, কী ধরনের অনুমান দেখানো হবে তা প্রভাবিত করতে পারে। খালি
থাকলে, এটি ডিফল্ট হিসেবে input-এর দৈর্ঘ্যে সেট হয়ে যায়।
locationBias বা locationRestriction
সার্চ করার এলাকা নির্ধারণ করতে, আপনি locationBias বা locationRestriction নির্দিষ্ট করতে পারেন, তবে দুটিই নয়। locationRestriction-কে এমন একটি অঞ্চল হিসেবে ভাবুন যার মধ্যে
ফলাফল অবশ্যই থাকতে হবে এবং locationBias-কে এমন একটি অঞ্চল হিসেবে ভাবুন যার
কাছাকাছি ফলাফল অবশ্যই থাকতে হবে, তবে তা এলাকার বাইরেও হতে পারে।
locationBiasসার্চ করার জন্য একটি এলাকা নির্দিষ্ট করে। এই লোকেশনটি পক্ষপাতিত্ব হিসেবে কাজ করে, যার অর্থ হল নির্দিষ্ট লোকেশনের আশেপাশের ফলাফল ফেরত দেওয়া যেতে পারে, যার মধ্যে নির্দিষ্ট এলাকার বাইরের ফলাফলও অন্তর্ভুক্ত।locationRestrictionসার্চ করার জন্য একটি এলাকা নির্দিষ্ট করে। নির্দিষ্ট করা এলাকার বাইরের ফলাফল দেখানো হয় না।
locationBias বা locationRestriction অঞ্চলকে আয়তাকার ভিউপোর্ট বা বৃত্ত হিসেবে
নির্দিষ্ট করুন।
একটি বৃত্তকে কেন্দ্রবিন্দু এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। ব্যাসার্ধ অবশ্যই
০.০ থেকে ৫০০০০.০-এর মধ্যে হতে হবে। ডিফল্ট ভ্যালু হল ০.০। locationRestriction-এর জন্য,
আপনাকে অবশ্যই ব্যাসার্ধের মান 0.0-এর বেশি সেট করতে হবে।
অন্যথায়, অনুরোধের কোনও ফলাফল পাওয়া যায় না।
যেমন:
Places Swift SDK
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Swift
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
একটি আয়তক্ষেত্র হল অক্ষাংশ-দ্রাঘিমাংশ ভিউপোর্ট, যা দুটি তির্যকভাবে
বিপরীত low এবং high পয়েন্ট হিসেবে দেখানো হয়। একটি ভিউপোর্টকে একটি বন্ধ অঞ্চল হিসাবে বিবেচনা করা হয়,
যার অর্থ এটিতে এর সীমানা অন্তর্ভুক্ত রয়েছে। অক্ষাংশের সীমা -৯০ থেকে ৯০ ডিগ্রির মধ্যে এবং দ্রাঘিমাংশের সীমা -১৮০ থেকে ১৮০ ডিগ্রির মধ্যে হতে হবে:
low=highহলে, ভিউপোর্টে শুধু সেই একটি পয়েন্টই থাকে।low.longitude>high.longitudeহলে, দ্রাঘিমাংশের রেঞ্জ উল্টে যায় (ভিউ পোর্ট ১৮০ ডিগ্রি দ্রাঘিমাংশ রেখা অতিক্রম করে)।low.longitude= -১৮০ ডিগ্রি এবংhigh.longitude= ১৮০ ডিগ্রি হলে, ভিউ-পোর্টে সব দ্রাঘিমাংশ অন্তর্ভুক্ত থাকে।low.longitude= ১৮০ ডিগ্রি এবংhigh.longitude= -১৮০ ডিগ্রি হলে, দ্রাঘিমাংশের রেঞ্জ খালি থাকে।
low এবং high, দুটিই পূরণ করতে হবে এবং দেখানো বক্সটি খালি রাখা
যাবে না। ভিউ পোর্ট খালি থাকলে সমস্যা হয়।
যেমন, এই ভিউপোর্টটি নিউ ইয়র্ক সিটিকে সম্পূর্ণরূপে কভার করে:
Places Swift SDK
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Swift
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Objective-C
CLLocationCoordinate2D high = CLLocationCoordinate2DMake(40.477398, -74.259087); CLLocationCoordinate2D low = CLLocationCoordinate2DMake(440.921628, -73.700051); GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceRectangularLocationOption(high, low);
উৎস
গন্তব্য পর্যন্ত সরলরৈখিক দূরত্ব গণনা করার জন্য উৎস বিন্দু (distanceMeters হিসেবে ফেরত দেওয়া হয়)। এই মান বাদ দেওয়া হলে,
সরলরৈখিক দূরত্ব ফেরত দেওয়া হবে না। অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক হিসেবে
উল্লেখ করতে হবে:
Places Swift SDK
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
Swift
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
regionCode
উত্তর ফর্ম্যাট করার জন্য ব্যবহৃত অঞ্চল কোড, ccTLD ("টপ-লেভেল ডোমেন") দুটি-অক্ষরের মান হিসেবে নির্দিষ্ট করা হয়েছে। বেশিরভাগ ccTLD কোড ISO 3166-1 কোডের মতোই, তবে কিছু ব্যতিক্রম আছে। যেমন, যুক্তরাজ্যের ccTLD হল "uk" (.co.uk) এবং এর ISO 3166-1 কোড হল "gb" (টেকনিক্যালি "The United Kingdom of Great Britain and Northern Ireland" এন্টিটির জন্য)।
আপনি ভুল অঞ্চল কোড উল্লেখ করলে, API INVALID_ARGUMENT
সমস্যা দেখায়। প্রযোজ্য আইনের উপর ভিত্তি করে প্যারামিটার ফলাফলে প্রভাব ফেলতে পারে।
shouldIncludePureServiceAreaBusinesses
true হলে, রেসপন্স অ্যারেতে শুধু পরিষেবা প্রদানকারী ব্যবসার তথ্য দেখায়। শুধুমাত্র
পরিষেবা প্রদানকারী ব্যবসা হল এমন ব্যবসা যা সরাসরি গ্রাহকদের লোকেশনে পরিষেবা প্রদান করে
কিন্তু ব্যবসার ঠিকানায় গ্রাহকদের পরিষেবা প্রদান করে না।
যেমন:
Places Swift SDK
let filter = AutocompleteFilter() filter.shouldIncludePureServiceAreaBusinesses = true
Swift
let filter = AutocompleteFilter() filter.shouldIncludePureServiceAreaBusinesses = true
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.shouldIncludePureServiceAreaBusinesses = YES;
জায়গা অটোমেটিক সম্পূর্ণ করার উইজেট যোগ করা
আরও সহজে জায়গা অটোমেটিক সম্পূর্ণ করার ধারাবাহিক অভিজ্ঞতা প্রদান করতে, আপনি নিজের অ্যাপে
জায়গা অটোমেটিক সম্পূর্ণ করার উইজেট যোগ করতে পারবেন। উইজেটটি একটি ডেডিকেটেড,
ফুল-স্ক্রিন ইন্টারফেস প্রদান করে যা ব্যবহারকারীর ইনপুট ম্যানেজ করে এবং অ্যাপে
AutocompletePlaceSuggestion
অবজেক্ট ফিরিয়ে দেওয়ার সময় ব্যবহারকারীকে জায়গার পূর্বাভাস দেখায়। আপনি তারপর কোনও জায়গার পূর্বাভাসের ব্যাপারে
অতিরিক্ত তথ্য পেতে জায়গার বিবরণ
(নতুন) সংক্রান্ত অনুরোধ করতে পারবেন।
যেমন, প্রোগ্রাম্যাটিক্যালি জায়গার পূর্বাভাস পাওয়ার সময়,
'জায়গা অটোমেটিক সম্পূর্ণ করা' উইজেট আপনাকে সেশন
টোকেন ব্যবহার করতে দেয়,
যাতে বিলিংয়ের উদ্দেশ্যে সেশনে অটোমেটিক সম্পূর্ণ করার অনুরোধ গ্রুপ করা যায়। আপনি
AutocompleteSessionToken()-এ কল করে সেশন টোকেন
পাস করতে পারবেন।
আপনি সেশন টোকেন না দিলে, উইজেট আপনার জন্য একটি 'অটোমেটিক সম্পূর্ণ'
সেশন টোকেন তৈরি করবে, যা পরে onSelection
কলব্যাক থেকে পাওয়া যাবে। সেশন টোকেন ব্যবহার করার ব্যাপারে আরও তথ্য পেতে, সেশন টোকেন
সম্পর্কে দেখুন।
show বাইন্ডিং ভ্যালু true-এ সেট করা হলে, ব্যবহারকারীকে একটি ফুল-স্ক্রিন ভিউতে নিয়ে যাওয়া হবে যেখানে তিনি একটি জায়গা বেছে নিতে পারবেন। ব্যবহারকারী টাইপ করার সাথে সাথে, উইজেট
ব্যবসা, ঠিকানা এবং আগ্রহের পয়েন্টের মতো জায়গাগুলির জন্য সাজেশন
ফেরত দেয়। ব্যবহারকারী কোনও জায়গা বেছে নিলে, উইজেট বেছে নেওয়া জায়গার সাথে onSelection
হ্যান্ডলারকে কল করে এবং ফুল-স্ক্রিন ভিউ বন্ধ করে দেয়।
জায়গা অটোমেটিক সম্পূর্ণ করার উইজেট প্যারামিটার
প্রোগ্রাম্যাটিক্যালি উপলভ্য প্যারামিটার ছাড়াও, 'জায়গা অটোমেটিক সম্পূর্ণ করা' উইজেট নিম্নলিখিত প্যারামিটারও অফার করে।
দেখান
show উইজেটটি দেখানো হয়েছে কিনা তা নির্দিষ্ট করে।
onSelection
কোনও জায়গা বেছে নেওয়া হলে, ক্লোজার রান করে।
onError
কোনও সমস্যা হলে রান করার জন্য ক্লোজার। কোনও সমস্যা হলে, একটি
PlacesError
পাস করা হবে।
কন্টেন্ট ও থিম কাস্টমাইজেশন
AutocompleteUICustomization
প্যারামিটারগুলি উইজেটে প্রয়োগ করার জন্য UI কাস্টমাইজেশন নির্দিষ্ট করে। কাস্টমাইজেশনের
বিকল্পগুলি হল:
AutocompleteListDensity. এই প্যারামিটার আপনাকে সাজেশন তালিকার ঘনত্ব বেছে নিতে দেয়, হয়multiLineঅথবাtwoLine।AutocompleteUIIcon. এই প্যারামিটার আপনাকে প্রতিটি তালিকা আইটেমের জন্য ডিফল্ট আইকন দেখানো হবে কিনা তা বেছে নিতে দেয়।theme. এই প্যারামিটারটি একটি কাস্টম থিম নির্দিষ্ট করে যা ডিফল্ট স্টাইল অ্যাট্রিবিউটের যেকোনও একটিকে ওভাররাইড করে। আপনি নিজের 'জায়গা অটোমেটিক সম্পূর্ণ করা' কম্পোনেন্টের রঙ, টাইপোগ্রাফি, স্পেসিং, বর্ডার ও কোণ কাস্টমাইজ করতে পারবেন। ডিফল্ট হলPlacesMaterialTheme। ওভাররাইড করা হয়নি এমন যেকোনও থিম অ্যাট্রিবিউট ডিফল্ট স্টাইল ব্যবহার করে।
অটো-কমপ্লিট (নতুন) উদাহরণ
locationRestriction এবং locationBias ব্যবহার করুন
সার্চের এলাকা নিয়ন্ত্রণ করতে, অটোকমপ্লিট (নতুন) ডিফল্ট হিসেবে IP বায়াসিং ব্যবহার করে। IP বায়াসিংয়ের মাধ্যমে, API ডিভাইসের IP অ্যাড্রেস ব্যবহার করে
ফলাফল বায়াস করে। আপনি সার্চ করার জন্য কোনও এলাকা নির্দিষ্ট করতে,
বিকল্প হিসেবে locationRestriction অথবা
locationBias ব্যবহার করতে পারেন, তবে দুটিই নয়।
লোকেশন সংক্রান্ত বিধিনিষেধ সার্চ করার জন্য এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফল ফেরত দেওয়া হয় না। নিম্নলিখিত উদাহরণে, অনুরোধকে সান ফ্রান্সিসকোকে কেন্দ্র করে ৫০০০ মিটার ব্যাসার্ধের বৃত্তাকার লোকেশন সংক্রান্ত বিধিনিষেধের মধ্যে সীমাবদ্ধ করতে, লোকেশন সংক্রান্ত বিধিনিষেধ ব্যবহার করা হয়েছে:
Places Swift SDK
let center = (37.775061, -122.419400) let radius = 5000.0 let restriction = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionRestriction: restriction) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
লোকেশন বায়াসের ক্ষেত্রে, লোকেশন বায়াস হিসেবে কাজ করে, যার অর্থ হল নির্দিষ্ট লোকেশনের আশেপাশের ফলাফল দেখানো হতে পারে, যার মধ্যে নির্দিষ্ট এলাকার বাইরের ফলাফলও অন্তর্ভুক্ত। পরবর্তী উদাহরণে লোকেশন বায়াস ব্যবহার করার জন্য আগের অনুরোধ পরিবর্তন করা হয়েছে:
Places Swift SDK
let center = (37.775061, -122.419400) let radius = 5000.0 let bias = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionBias: bias) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
ব্যবহারের ধরন
সারণী A এবং সারণী B-তে তালিকাভুক্ত নির্দিষ্ট ধরনের অনুরোধের ফলাফল সীমাবদ্ধ করতে, ধরনের প্যারামিটার ব্যবহার করুন। আপনি সর্বাধিক পাঁচটি মানের অ্যারে উল্লেখ করতে পারবেন। বাদ দেওয়া হলে, সব ধরনের বিজ্ঞাপন দেখায়।
নিচের উদাহরণে "Soccer" কোয়েরি স্ট্রিং নির্দিষ্ট করা হয়েছে এবং types প্যারামিটার ব্যবহার করে
ফলাফলকে "sporting_goods_store" ধরনের প্রতিষ্ঠানের মধ্যে সীমাবদ্ধ করা হয়েছে:
Places Swift SDK
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ]) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Soccer", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"] let request = GMSAutocompleteRequest(query:"Soccer") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Soccer"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
শুরুর স্থান ব্যবহার করুন
আপনি অনুরোধে origin প্যারামিটার অন্তর্ভুক্ত করলে, অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট করা, API উত্তরে উৎস থেকে গন্তব্য পর্যন্ত সরলরেখার দূরত্ব অন্তর্ভুক্ত করে। উত্তরে দূরত্ব distanceMeters হিসেবে
দেখানো হয়েছে।
এই উদাহরণে সান ফ্রান্সিসকোর কেন্দ্রকে উৎস হিসেবে সেট করা হয়েছে:
Places Swift SDK
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.7749, longitude: -122.4194)) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Amoeba", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let origin = CLLocation(latitude: 37.7749, longitude: -122.4194) let filter = GMSAutocompleteFilter() filter.origin = origin let request = GMSAutocompleteRequest(query:"Amoeba") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText)) and distance: \(String(describing: result.placeSuggestion?.distanceMeters))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude:-122.077023]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Amoeba"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
কন্টেন্ট ও থিম কাস্টমাইজ করুন
Swift
let uiCustomization = AutocompleteUICustomization( listDensity: .multiLine, listItemIcon: .noIcon, theme: PlacesMaterialTheme() )
Places Autocomplete উইজেট যোগ করুন (সম্পূর্ণ কোড)
Places Swift SDK
struct PlaceAutocompleteDemoView: View { @State private var fetchedPlace: Place? @State private var placesError: PlacesError? @State private var showWidget = false public var body: some View { VStack { Button("Search for a place") { showWidget.toggle() } .placeAutocomplete( show: $showWidget, onSelection: { (autocompletePlaceSuggestion, autocompleteSessionToken) in Task { let placesClient = await PlacesClient.shared let fetchPlaceRequest = FetchPlaceRequest( placeID: autocompletePlaceSuggestion.placeID, placeProperties: [.displayName, .formattedAddress], sessionToken: autocompleteSessionToken ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): print("Fetched place: \(place)") self.fetchedPlace = place case .failure(let placesError): print("Failed to fetch place: \(placesError)") self.placesError = placesError } } }, onError: { placesError in self.placesError = placesError } ) } } }
অটোকমপ্লিট (নতুন) অপ্টিমাইজেশন
এই বিভাগে পেশাদার পদ্ধতি সম্পর্কে বর্ণনা করা হয়েছে যা আপনাকে অটোকমপ্লিট (নতুন) পরিষেবা থেকে সর্বাধিক সুবিধা পেতে সাহায্য করবে।
এখানে কিছু সাধারণ নির্দেশিকা দেওয়া হল:
- কাজ করে এমন ইউজার ইন্টারফেস ডেভেলপ করার সবচেয়ে দ্রুত উপায় হল 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 প্যারামিটার উল্লেখ করতে ভুলবেন না, যাতে
আপনি শুধু
অটোমেটিক সম্পূর্ণ (নতুন) ডেটা ফিল্ড
অনুরোধ করেন।
প্রোগ্রাম্যাটিক প্রয়োগ
আপনার 'অটোমেটিক সম্পূর্ণ করুন (নতুন)' অনুরোধের সাথে
সেশন টোকেন
ব্যবহার করুন। বেছে নেওয়া পূর্বাভাসের জন্য জায়গার বিবরণ (নতুন) সংক্রান্ত অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটার অন্তর্ভুক্ত করুন:
- অটোমেটিক সম্পূর্ণ করা (নতুন) উত্তর থেকে পাওয়া জায়গার আইডি
- অটোকমপ্লিট (নতুন) অনুরোধে সেশন টোকেন ব্যবহার করা হয়েছে
fieldsপ্যারামিটারটি আপনার প্রয়োজনীয় অটোমেটিক সম্পূর্ণ করা (নতুন) ডেটা ফিল্ড নির্দিষ্ট করে
Geocoding API-এর সাথে প্রতি-অনুরোধ অটোকমপ্লিট (নতুন)
সেশন টোকেন ছাড়াই প্রোগ্রাম্যাটিকভাবে অটোমেটিক সম্পূর্ণ (নতুন) ফিচার প্রয়োগ করুন এবং বেছে নেওয়া জায়গার পূর্বাভাসের উপর Geocoding API কল করুন।
Geocoding API ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক প্রদান করে।
চারটি
অটোমেটিক সম্পূর্ণ করার অনুরোধ
এবং তার সাথে বেছে নেওয়া জায়গার পূর্বাভাসের জন্য একটি Geocoding API
কল করার খরচ সেশন প্রতি অটোমেটিক সম্পূর্ণ করার (নতুন)
খরচের চেয়ে কম।১
আপনার ব্যবহারকারীরা যাতে আরও কম অক্ষর ব্যবহার করে তাদের কাঙ্ক্ষিত পূর্বাভাস পেতে পারেন, তার জন্য পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি প্রয়োগ করার কথা বিবেচনা করুন।
শুধুমাত্র ঠিকানা-ভিত্তিক অ্যাপ্লিকেশনের জন্য সেশন-ভিত্তিক অটো-কমপ্লিট (নতুন)
জায়গার বিবরণ (নতুন) সহ সেশন-ভিত্তিক অটোমেটিক সম্পূর্ণ (নতুন) ব্যবহার করুন।
ব্যবহারকারী অটোকমপ্লিট (নতুন) সংক্রান্ত পূর্বাভাস বেছে নেওয়ার আগে আপনি যতগুলি অনুরোধ করবেন বলে আশা করেন,
তার গড় সংখ্যা সেশন প্রতি দামের থেকে বেশি, তাই আপনার অটোকমপ্লিট (নতুন) সংক্রান্ত প্রয়োগের ক্ষেত্রে
অটোকমপ্লিট (নতুন) সংক্রান্ত অনুরোধ এবং সংশ্লিষ্ট জায়গার বিবরণ (নতুন) সংক্রান্ত অনুরোধ,
উভয়ের জন্যই সেশন টোকেন ব্যবহার করা উচিত
সেশন প্রতি।
১
উইজেট প্রয়োগ করা
সেশন ম্যানেজমেন্ট অটোমেটিক
JavaScript,
Android
বা iOS
উইজেটে তৈরি করা হয়। এর মধ্যে অটোকমপ্লিট (নতুন) অনুরোধ এবং বেছে নেওয়া পূর্বাভাসের উপর জায়গার বিবরণ (নতুন)
অনুরোধ অন্তর্ভুক্ত। আপনার প্রয়োজনীয় ফিল্ডের জন্য অনুরোধ করছেন কিনা তা নিশ্চিত করতে
fields প্যারামিটার উল্লেখ করতে ভুলবেন না।
প্রোগ্রাম্যাটিক প্রয়োগ
আপনার 'অটোমেটিক সম্পূর্ণ করুন (নতুন)' অনুরোধের সাথে
সেশন টোকেন
ব্যবহার করুন।
বেছে নেওয়া পূর্বাভাসের জন্য জায়গার বিবরণ (নতুন) সংক্রান্ত অনুরোধ করার সময়,
নিম্নলিখিত প্যারামিটার অন্তর্ভুক্ত করুন:
- অটোমেটিক সম্পূর্ণ করা (নতুন) উত্তর থেকে পাওয়া জায়গার আইডি
- অটোকমপ্লিট (নতুন) অনুরোধে সেশন টোকেন ব্যবহার করা হয়েছে
fieldsপ্যারামিটার ঠিকানা ও জ্যামিতির মতো ফিল্ড নির্দিষ্ট করে
অটোকমপ্লিট (নতুন) অনুরোধে দেরি করার কথা বিবেচনা করুন
আপনি এমন কৌশল অবলম্বন করতে পারেন যেমন ব্যবহারকারী প্রথম তিন বা চারটি অক্ষর টাইপ না করা পর্যন্ত অটোকমপ্লিট (নতুন) অনুরোধে দেরি করা যাতে আপনার অ্যাপ্লিকেশন কম অনুরোধ করে। যেমন, ব্যবহারকারী তৃতীয় অক্ষর টাইপ করার পরে প্রতিটি অক্ষরের জন্য অটোকমপ্লিট (নতুন) অনুরোধ করার অর্থ হল, ব্যবহারকারী সাতটি অক্ষর টাইপ করে একটি অনুমান বেছে নিলে, যার জন্য আপনি একটি Geocoding API অনুরোধ করেন, তাহলে মোট খরচ হবে ৪টি অটোকমপ্লিট (নতুন) প্রতি অনুরোধ + Geocoding-এর জন্য।১
অনুরোধে দেরি করার ফলে আপনার গড় প্রোগ্র্যামাটিক অনুরোধ চারটির কম হলে, আপনি Geocoding API-এর সাথে পারফর্ম্যান্ট অটোমেটিক সম্পূর্ণ (নতুন) প্রয়োগ করার নির্দেশিকা অনুসরণ করতে পারেন। মনে রাখবেন, অনুরোধ পাঠাতে দেরি হলে ব্যবহারকারী মনে করতে পারেন যে লেটেন্সি হচ্ছে, কারণ তিনি হয়ত প্রতিটি নতুন কিস্ট্রোকে সাজেশন দেখতে চান।
আপনার ব্যবহারকারীরা যাতে কম অক্ষর ব্যবহার করেই তাদের প্রয়োজনীয় পূর্বাভাস পেতে পারেন, তার জন্য পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি প্রয়োগ করার কথা বিবেচনা করুন।
-
খরচের জন্য, Google Maps Platform-এর দামের তালিকা দেখুন।
পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি
নিচের নির্দেশিকায় অটোমেটিক সম্পূর্ণ করা (নতুন) ফিচারের পারফর্ম্যান্স অপ্টিমাইজ করার উপায় বর্ণনা করা হয়েছে:
- আপনার 'অটোমেটিক সম্পূর্ণ করুন (নতুন)' ইমপ্লিমেন্টেশনে দেশের উপর বিধিনিষেধ, লোকেশন বায়াসিং এবং (প্রোগ্রাম্যাটিক ইমপ্লিমেন্টেশনের জন্য) পছন্দের ভাষা যোগ করুন। উইজেটের ক্ষেত্রে ভাষার পছন্দ সেট করার প্রয়োজন নেই কারণ এটি ব্যবহারকারীর ব্রাউজার বা মোবাইল ডিভাইস থেকে ভাষার পছন্দ বেছে নেয়।
- অটোমেটিক সম্পূর্ণ (নতুন) ফিচারের সাথে ম্যাপ থাকলে, আপনি ম্যাপ ভিউপোর্ট অনুযায়ী লোকেশন বায়াস করতে পারবেন।
- এমন পরিস্থিতিতে যখন কোনও ব্যবহারকারী অটোকমপ্লিট (নতুন) পূর্বাভাসের মধ্যে থেকে কোনও একটি বেছে নেন না, সাধারণত
কারণ সেইসব পূর্বাভাসের মধ্যে কোনওটিই কাঙ্ক্ষিত ফলাফল-ঠিকানা নয়, আপনি আরও প্রাসঙ্গিক ফলাফল পাওয়ার চেষ্টা করতে
ব্যবহারকারীর আসল ইনপুট আবার ব্যবহার করতে পারেন:
- আপনি যদি আশা করেন যে ব্যবহারকারী শুধুমাত্র ঠিকানা সংক্রান্ত তথ্য লিখবেন, তাহলে Geocoding API-তে কল করার সময় ব্যবহারকারীর আসল ইনপুট আবার ব্যবহার করুন।
- আপনি যদি আশা করেন যে ব্যবহারকারী নাম বা ঠিকানা দিয়ে কোনও নির্দিষ্ট জায়গার জন্য কোয়েরি লিখবেন, তাহলে Place Details (New) অনুরোধ ব্যবহার করুন। শুধুমাত্র নির্দিষ্ট অঞ্চলে ফলাফল প্রত্যাশিত হলে, লোকেশন বায়াসিং ব্যবহার করুন।
- ব্যবহারকারীরা সাব-প্রিমাইজ ঠিকানা ইনপুট করছেন, যেমন কোনও বিল্ডিংয়ের মধ্যে নির্দিষ্ট ইউনিট বা অ্যাপার্টমেন্টের ঠিকানা। যেমন, চেক প্রজাতন্ত্রের ঠিকানা "Stroupežnického 3191/17, Praha" অটোমেটিক সম্পূর্ণ (নতুন) ফিচারে আংশিক পূর্বাভাস দেখায়।
- ব্যবহারকারীরা রাস্তার সেগমেন্ট প্রিফিক্স সহ ঠিকানা ইনপুট করছেন, যেমন নিউ ইয়র্ক সিটিতে "23-30 29th St, Queens" বা হাওয়াইয়ের কাউয়াই দ্বীপে "47-380 Kamehameha Hwy, Kaneohe"।
লোকেশন বায়াসিং
location প্যারামিটার ও radius
প্যারামিটার পাস করে নির্দিষ্ট এলাকার জন্য পক্ষপাতদুষ্ট ফলাফল দেখান। এটি অটোমেটিক সম্পূর্ণ (নতুন) ফিচারকে নির্দিষ্ট এলাকার মধ্যে ফলাফল দেখানোর জন্য
অগ্রাধিকার দিতে নির্দেশ দেয়। নির্দিষ্ট করা এলাকার বাইরের ফলাফল এখনও
দেখানো হতে পারে। আপনি includedRegionCodes প্যারামিটার ব্যবহার করে ফলাফল ফিল্টার করতে পারেন
যাতে শুধুমাত্র নির্দিষ্ট দেশের মধ্যে থাকা জায়গাগুলি দেখানো হয়।
লোকেশন সংক্রান্ত বিধিনিষেধ
locationRestriction প্যারামিটার পাস করে ফলাফল নির্দিষ্ট এলাকায় সীমাবদ্ধ করুন।
এছাড়াও, আপনি location
এবং radius প্যারামিটার দ্বারা নির্ধারিত অঞ্চলে ফলাফল সীমাবদ্ধ করতে পারেন, এর জন্য
locationRestriction
প্যারামিটার যোগ করতে হবে। এটি অটোকমপ্লিট (নতুন) ফিচারকে নির্দেশ দেয় যাতে সেটি শুধুমাত্র
সেই অঞ্চলের ফলাফল দেখায়।