স্বয়ংসম্পূর্ণ (নতুন) পরিষেবা হল একটি iOS API যা একটি অনুরোধের প্রতিক্রিয়া হিসাবে স্থানের পরামর্শ প্রদান করে৷ অনুরোধে, একটি পাঠ্য অনুসন্ধান স্ট্রিং এবং ভৌগলিক সীমা নির্দিষ্ট করুন যা অনুসন্ধান এলাকা নিয়ন্ত্রণ করে।
স্বয়ংসম্পূর্ণ (নতুন) পরিষেবাটি ইনপুটের সম্পূর্ণ শব্দ এবং সাবস্ট্রিংগুলির সাথে মিলতে পারে, স্থানের নাম, ঠিকানা এবং প্লাস কোডগুলি সমাধান করতে পারে৷ অ্যাপ্লিকেশনগুলি তাই ব্যবহারকারীর ধরন হিসাবে প্রশ্ন পাঠাতে পারে, যাতে উড়ে যাওয়ার জায়গায় পরামর্শ দেওয়া যায়।
নির্দিষ্ট ইনপুট টেক্সট স্ট্রিং এবং অনুসন্ধান এলাকার উপর ভিত্তি করে স্থানের পরামর্শ হল স্থান, যেমন ব্যবসা, ঠিকানা এবং আগ্রহের স্থান।
উদাহরণ স্বরূপ, আপনি API-কে ইনপুট হিসাবে ব্যবহার করে একটি স্ট্রিং কল করেন যাতে একটি আংশিক ব্যবহারকারী ইনপুট, "Spagh" থাকে, অনুসন্ধান এলাকা নিউইয়র্ক সিটিতে সীমাবদ্ধ থাকে। তারপরে প্রতিক্রিয়াটিতে স্থানের পরামর্শের একটি তালিকা রয়েছে যা অনুসন্ধান স্ট্রিং এবং অনুসন্ধান এলাকার সাথে মেলে, যেমন "ক্যাফে স্প্যাগেটি" নামের রেস্তোরাঁর সাথে জায়গার বিবরণ সহ।
প্রত্যাবর্তিত স্থানের পরামর্শগুলি ব্যবহারকারীর কাছে উপস্থাপন করার জন্য ডিজাইন করা হয়েছে যাতে তারা পছন্দসই স্থান নির্বাচন করতে পারে। আপনি একটি স্থান বিবরণ (নতুন) অনুরোধ করতে পারেন প্রত্যাবর্তিত স্থান প্রস্তাবনা সম্পর্কে আরো তথ্য পেতে.
আপনি দুটি প্রধান উপায়ে আপনার অ্যাপে স্বয়ংসম্পূর্ণ (নতুন) কার্যকারিতা সংহত করতে পারেন:
- প্রোগ্রামগতভাবে স্থানের পূর্বাভাস পান : পূর্বাভাস পুনরুদ্ধার করতে এবং একটি কাস্টম ব্যবহারকারী ইন্টারফেসে প্রদর্শন করতে সরাসরি API-কে কল করুন।
- স্থান স্বয়ংসম্পূর্ণ উইজেট যোগ করুন : একটি প্রস্তুত-অনুসন্ধান স্বয়ংসম্পূর্ণ অভিজ্ঞতা প্রদান করে যা ব্যবহারকারীর প্রকার হিসাবে ভবিষ্যদ্বাণী প্রদর্শন করে।
প্রোগ্রামগতভাবে স্থানের পূর্বাভাস পান
স্বয়ংসম্পূর্ণ (নতুন) অনুরোধ
GMSPlacesClient
এ একটি পদ্ধতিতে কল করে একটি স্বয়ংসম্পূর্ণ অনুরোধ তৈরি করুন। আপনি GMSAutocompleteRequest
অবজেক্টে প্যারামিটার পাস করতে পারেন। প্রতিক্রিয়া একটি GMSAutocompletePlaceSuggestion
অবজেক্টের মধ্যে স্বয়ংসম্পূর্ণ পরামর্শ প্রদান করে।
API কী এবং query
প্যারামিটার প্রয়োজন। আপনি একটি বিলিং সেশনের সাথে অনুরোধগুলি সংযুক্ত করতে GMSAutocompleteSessionToken
এবং ফলাফলগুলিতে আবেদন করার জন্য GMSAutocompleteFilter
অন্তর্ভুক্ত করতে পারেন।
স্থান সুইফট SDK সংস্করণ
PlacesClient
এ একটি পদ্ধতিতে কল করে একটি স্বয়ংসম্পূর্ণ অনুরোধ তৈরি করুন। আপনি AutocompleteRequest
অবজেক্টে প্যারামিটার পাস করতে পারেন। প্রতিক্রিয়া একটি AutocompletePlaceSuggestion
অবজেক্টের মধ্যে স্বয়ংসম্পূর্ণ পরামর্শ প্রদান করে।
API কী এবং query
প্যারামিটার প্রয়োজন। আপনি একটি বিলিং সেশনের সাথে অনুরোধগুলিকে সংযুক্ত করতে AutocompleteSessionToken
এবং ফলাফলগুলিতে আবেদন করার জন্য AutocompleteFilter
অন্তর্ভুক্ত করতে পারেন৷
প্রয়োজনীয় এবং ঐচ্ছিক পরামিতি সম্পর্কে আরও তথ্যের জন্য, এই নথির পরামিতি বিভাগটি দেখুন।
স্থান সুইফট 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. }
সুইফট
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))") } } })
উদ্দেশ্য-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
দৃষ্টান্তের একটি অ্যারে প্রদান করে। অ্যারেতে রয়েছে:
-
placeID
-
types
: এই জায়গায় প্রযোজ্য প্রকার। -
distanceMeters
: উৎপত্তি থেকে দূরত্ব। -
attributedFullText
: একটি পরামর্শের সম্পূর্ণ মানব-পাঠযোগ্য পাঠ্য। -
attributedPrimaryText
: একটি সাজেশনের মানব-পাঠযোগ্য প্রাথমিক পাঠ্য। -
attributedSecondaryText
: একটি সাজেশনের মানব-পাঠযোগ্য সেকেন্ডারি টেক্সট। -
structuredFormat
: নির্দিষ্ট নাম এবং দ্ব্যর্থহীন পাঠ্য, যেমন শহর বা অঞ্চল।
প্রয়োজনীয় পরামিতি
প্রশ্ন
যে টেক্সট স্ট্রিংটিতে সার্চ করতে হবে। সম্পূর্ণ শব্দ এবং সাবস্ট্রিং, স্থানের নাম, ঠিকানা এবং প্লাস কোড নির্দিষ্ট করুন। স্বয়ংসম্পূর্ণ (নতুন) পরিষেবা এই স্ট্রিংয়ের উপর ভিত্তি করে প্রার্থীর মিল ফেরত দেয় এবং তাদের অনুভূত প্রাসঙ্গিকতার উপর ভিত্তি করে ফলাফল অর্ডার করে।
ঐচ্ছিক পরামিতি
সেশন টোকেন
সেশন টোকেন হল ব্যবহারকারী-উত্পাদিত স্ট্রিং যা স্বয়ংসম্পূর্ণ (নতুন) কলগুলিকে ট্র্যাক করে—উইজেট এবং প্রোগ্রাম্যাটিক কল-উভয় কলগুলিকে "সেশন" হিসাবে। স্বয়ংসম্পূর্ণ (নতুন) বিলিং উদ্দেশ্যে একটি পৃথক সেশনে ব্যবহারকারী স্বয়ংসম্পূর্ণ অনুসন্ধানের প্রশ্ন এবং নির্বাচনের পর্যায়গুলিকে গ্রুপ করতে সেশন টোকেন ব্যবহার করে। আরও তথ্যের জন্য, সেশন টোকেন দেখুন।
ঐচ্ছিক স্বয়ংসম্পূর্ণ ফিল্টার পরামিতি
প্রকার
একটি স্থানের সাথে যুক্ত সারণী A বা সারণী B প্রকার থেকে শুধুমাত্র একটি একক প্রাথমিক প্রকার থাকতে পারে। উদাহরণস্বরূপ, প্রাথমিক প্রকার হতে পারে mexican_restaurant
বা steak_house
।
ডিফল্টরূপে, এপিআই input
প্যারামিটারের উপর ভিত্তি করে সমস্ত স্থান প্রদান করে, স্থানের সাথে সম্পর্কিত প্রাথমিক প্রকারের মান নির্বিশেষে। types
প্যারামিটার পাস করে ফলাফলগুলিকে একটি নির্দিষ্ট প্রাথমিক প্রকার বা প্রাথমিক প্রকারের হতে সীমাবদ্ধ করুন।
সারণি A বা টেবিল B থেকে পাঁচটি পর্যন্ত মান নির্দিষ্ট করতে এই প্যারামিটারটি ব্যবহার করুন। প্রতিক্রিয়াতে অন্তর্ভুক্ত করার জন্য নির্দিষ্ট প্রাথমিক প্রকারের মানগুলির একটির সাথে একটি স্থান অবশ্যই মিলবে৷
অনুরোধটি একটি INVALID_REQUEST
ত্রুটির সাথে প্রত্যাখ্যান করা হয় যদি:
- পাঁচটিরও বেশি প্রকার নির্দিষ্ট করা হয়েছে।
- কোনো অচেনা ধরনের নির্দিষ্ট করা হয়.
উদাহরণস্বরূপ, খেলার সামগ্রীর দোকানে ফলাফল সীমাবদ্ধ করতে, আপনার AutocompleteFilter
ফিল্টারে সেই প্রকারটি নির্দিষ্ট করুন:
স্থান সুইফট SDK
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ])
সুইফট
let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"]
উদ্দেশ্য-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ];
দেশগুলি
শুধুমাত্র 15 ccTLD ("শীর্ষ-স্তরের ডোমেন") দুই-অক্ষরের মানগুলির একটি অ্যারে হিসাবে নির্দিষ্ট করা নির্দিষ্ট অঞ্চলের তালিকা থেকে ফলাফলগুলি অন্তর্ভুক্ত করুন৷ যদি বাদ দেওয়া হয়, তবে প্রতিক্রিয়াতে কোনো বিধিনিষেধ প্রয়োগ করা হয় না। উদাহরণস্বরূপ, অঞ্চলগুলিকে জার্মানি এবং ফ্রান্সের মধ্যে সীমাবদ্ধ করতে:
স্থান সুইফট SDK
let filter = AutocompleteFilter(countries: ["DE", "FR"])
সুইফট
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
উদ্দেশ্য-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
যদি আপনি locationRestriction
এবং countries
উভয়ই নির্দিষ্ট করেন, ফলাফল দুটি সেটিংসের ছেদ এলাকায় অবস্থিত।
ইনপুটঅফসেট
শূন্য-ভিত্তিক ইউনিকোড অক্ষর অফসেট input
কার্সার অবস্থান নির্দেশ করে। ভবিষ্যদ্বাণীগুলি কী ফেরত দেওয়া হয় তা কার্সারের অবস্থান প্রভাবিত করতে পারে। খালি থাকলে, এটি input
দৈর্ঘ্যে ডিফল্ট হয়।
অবস্থানবিয়াস বা অবস্থান সীমাবদ্ধতা
অনুসন্ধান এলাকা নির্ধারণ করতে আপনি locationBias
বা locationRestriction
উল্লেখ করতে পারেন, কিন্তু উভয়ই নয়। ফলাফলগুলি যে অঞ্চলের মধ্যে হতে হবে সেটিকে নির্দিষ্ট করে locationRestriction
এবং locationBias
সেই অঞ্চলটি নির্দিষ্ট করে যে ফলাফলগুলি অবশ্যই কাছাকাছি হতে হবে তবে এলাকার বাইরে হতে পারে বলে মনে করুন৷
locationBias
অনুসন্ধান করার জন্য একটি এলাকা নির্দিষ্ট করে। এই অবস্থানটি একটি পক্ষপাতিত্ব হিসাবে কাজ করে, যার অর্থ নির্দিষ্ট স্থানের আশেপাশের ফলাফলগুলি নির্দিষ্ট এলাকার বাইরের ফলাফল সহ ফেরত দেওয়া যেতে পারে৷locationRestriction
অনুসন্ধান করার জন্য একটি এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরে ফলাফল ফেরত দেওয়া হয় না.
একটি আয়তক্ষেত্রাকার ভিউপোর্ট বা একটি বৃত্ত হিসাবে locationBias
বা locationRestriction
অঞ্চল নির্দিষ্ট করুন।
একটি বৃত্তকে কেন্দ্র বিন্দু এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। ব্যাসার্ধ অবশ্যই 0.0 এবং 50000.0 এর মধ্যে হতে হবে। ডিফল্ট মান হল 0.0। locationRestriction
জন্য, আপনাকে অবশ্যই ব্যাসার্ধটি 0.0-এর চেয়ে বেশি মান নির্ধারণ করতে হবে। অন্যথায়, অনুরোধ কোন ফলাফল প্রদান করে.
যেমন:
স্থান সুইফট SDK
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
সুইফট
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
উদ্দেশ্য-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
একটি আয়তক্ষেত্র হল একটি অক্ষাংশ-দ্রাঘিমাংশের ভিউপোর্ট, যা দুটি তির্যকভাবে বিপরীত low
এবং high
বিন্দু হিসাবে উপস্থাপিত হয়। একটি ভিউপোর্ট একটি বন্ধ অঞ্চল হিসাবে বিবেচিত হয়, যার অর্থ এটি এর সীমানা অন্তর্ভুক্ত করে। অক্ষাংশের সীমাগুলি অবশ্যই -90 থেকে 90 ডিগ্রী সহ, এবং দ্রাঘিমাংশের সীমাগুলি অবশ্যই -180 থেকে 180 ডিগ্রীর মধ্যে অন্তর্ভুক্ত থাকতে হবে:
-
low
=high
হলে, ভিউপোর্টটি সেই একক বিন্দু নিয়ে গঠিত। -
low.longitude
>high.longitude
হলে, দ্রাঘিমাংশের সীমাটি উল্টানো হয় (ভিউপোর্টটি 180 ডিগ্রি দ্রাঘিমাংশের রেখা অতিক্রম করে)। -
low.longitude
= -180 ডিগ্রি এবংhigh.longitude
= 180 ডিগ্রি হলে, ভিউপোর্টে সমস্ত দ্রাঘিমাংশ অন্তর্ভুক্ত থাকে। -
low.longitude
= 180 ডিগ্রি এবংhigh.longitude
= -180 ডিগ্রি হলে, দ্রাঘিমাংশের পরিসর খালি।
low
এবং high
উভয়ই জনবসতিপূর্ণ হতে হবে এবং প্রতিনিধিত্ব করা বাক্সটি খালি হতে পারে না। একটি খালি ভিউপোর্ট একটি ত্রুটির ফলাফল.
উদাহরণস্বরূপ, এই ভিউপোর্টটি সম্পূর্ণরূপে নিউ ইয়র্ক সিটিকে ঘিরে রেখেছে:
স্থান সুইফট SDK
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
সুইফট
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
উদ্দেশ্য-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
হিসাবে ফিরে এসেছে)। যদি এই মানটি বাদ দেওয়া হয়, সরল-রেখার দূরত্ব ফেরত দেওয়া হবে না। অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট করা আবশ্যক:
স্থান সুইফট SDK
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
সুইফট
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
উদ্দেশ্য-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
অঞ্চল কোড
প্রতিক্রিয়া ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড, একটি 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
ত্রুটি প্রদান করে৷ প্যারামিটার প্রযোজ্য আইনের উপর ভিত্তি করে ফলাফলকে প্রভাবিত করতে পারে।
PureServiceAreaBusinesses অন্তর্ভুক্ত করা উচিত
true
হলে, প্রতিক্রিয়া অ্যারেতে বিশুদ্ধ পরিষেবা এলাকার ব্যবসা প্রদান করে। একটি বিশুদ্ধ পরিষেবা এলাকা ব্যবসা এমন একটি ব্যবসা যা সরাসরি গ্রাহকদের কাছে যায় বা বিতরণ করে, কিন্তু গ্রাহকদের তাদের ব্যবসার ঠিকানায় পরিষেবা দেয় না।
যেমন:
স্থান সুইফট SDK
let filter = AutocompleteFilter() filter.shouldIncludePureServiceAreaBusinesses = true
সুইফট
let filter = AutocompleteFilter() filter.shouldIncludePureServiceAreaBusinesses = true
উদ্দেশ্য-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.shouldIncludePureServiceAreaBusinesses = YES;
স্থান স্বয়ংসম্পূর্ণ উইজেট যোগ করুন
আরও সহজে একটি সামঞ্জস্যপূর্ণ স্থান স্বয়ংসম্পূর্ণ অভিজ্ঞতা প্রদান করতে, আপনি আপনার অ্যাপে স্থান স্বয়ংসম্পূর্ণ উইজেট যোগ করতে পারেন। উইজেটটি একটি ডেডিকেটেড, পূর্ণ-স্ক্রীন ইন্টারফেস প্রদান করে যা ব্যবহারকারীর ইনপুট পরিচালনা করে এবং অ্যাপে AutocompletePlaceSuggestion
অবজেক্টগুলি ফেরত দেওয়ার সময় ব্যবহারকারীর কাছে স্থানের পূর্বাভাস প্রদর্শন করে। আপনি তারপর একটি স্থান বিবরণ (নতুন) অনুরোধ করতে পারেন যে কোনো স্থানের পূর্বাভাস সম্পর্কে অতিরিক্ত তথ্য পেতে।
প্রোগ্রামগতভাবে স্থানের পূর্বাভাস পাওয়ার মতো, স্থান স্বয়ংসম্পূর্ণ উইজেট আপনাকে বিলিং উদ্দেশ্যে সেশনে স্বয়ংসম্পূর্ণ অনুরোধগুলিকে গোষ্ঠীভুক্ত করতে সেশন টোকেন ব্যবহার করতে দেয়। আপনি AutocompleteSessionToken()
কল করে একটি সেশন টোকেন পাস করতে পারেন।
যদি আপনি একটি সেশন টোকেন প্রদান না করেন, উইজেটটি আপনার জন্য একটি স্বয়ংসম্পূর্ণ সেশন টোকেন তৈরি করবে, যা পরে onSelection
কলব্যাক থেকে পাওয়া যাবে। সেশন টোকেন ব্যবহার সম্পর্কে আরও তথ্যের জন্য, সেশন টোকেন সম্পর্কে দেখুন।
show
বাইন্ডিং মান true
সেট করা হলে, ব্যবহারকারীকে একটি পূর্ণ স্ক্রীন ভিউতে আনা হবে যেখানে তারা একটি স্থান নির্বাচন করতে পারবে। ব্যবহারকারীর টাইপ হিসাবে, উইজেট ব্যবসা, ঠিকানা এবং আগ্রহের জায়গাগুলির মতো জায়গাগুলির জন্য পরামর্শ প্রদান করে। যখন ব্যবহারকারী একটি স্থান নির্বাচন করে, উইজেট নির্বাচিত স্থানের সাথে onSelection
হ্যান্ডলারকে কল করে এবং পূর্ণস্ক্রীন দৃশ্যটি বন্ধ করে দেয়।
স্বয়ংসম্পূর্ণ উইজেট পরামিতি রাখুন
প্রোগ্রামগতভাবে উপলব্ধ প্যারামিটারগুলি ছাড়াও, প্লেস স্বয়ংসম্পূর্ণ উইজেট নিম্নলিখিত পরামিতিগুলিও অফার করে৷
প্রদর্শন
show
উইজেট দেখানো হয়েছে কিনা তা নির্দিষ্ট করে।
স্বয়ংসম্পূর্ণ ইউআইসি কাস্টমাইজেশন
AutocompleteUICustomization
ইউআইসি কাস্টমাইজেশন প্যারামিটারগুলি উইজেটে প্রয়োগ করার জন্য UI কাস্টমাইজেশনগুলি নির্দিষ্ট করে৷ কাস্টমাইজেশন বিকল্পগুলি হল:
-
AutocompleteListDensity
ঘনত্ব। এই প্যারামিটারটি আপনাকে সাজেশন তালিকার ঘনত্ব নির্বাচন করতে দেয়, হয়multiLine
বাtwoLine
। -
AutocompleteUIIcon
। এই পরামিতি আপনাকে প্রতিটি তালিকা আইটেমের জন্য ডিফল্ট আইকন দেখাতে হবে কিনা তা চয়ন করতে দেয়।
উপর নির্বাচন
একটি স্থান নির্বাচন করা হলে চালানোর বন্ধ.
onError
একটি ত্রুটি ঘটলে চালানোর বন্ধ. একটি ত্রুটি ঘটলে একটি PlacesError
পাস করা হবে৷
একটি সম্পূর্ণ কোড উদাহরণ দেখুন ।
স্বয়ংসম্পূর্ণ (নতুন) উদাহরণ
অবস্থান সীমাবদ্ধতা এবং অবস্থানবিয়াস ব্যবহার করুন
স্বয়ংসম্পূর্ণ (নতুন) অনুসন্ধান এলাকা নিয়ন্ত্রণ করতে ডিফল্টরূপে আইপি বায়াসিং ব্যবহার করে। আইপি বায়াসিংয়ের সাথে, API ফলাফলের পক্ষপাতিত্ব করতে ডিভাইসের IP ঠিকানা ব্যবহার করে। অনুসন্ধান করার জন্য একটি এলাকা নির্দিষ্ট করতে আপনি ঐচ্ছিকভাবে locationRestriction
বা locationBias
ব্যবহার করতে পারেন, কিন্তু উভয়ই নয়।
অবস্থান সীমাবদ্ধতা অনুসন্ধান করার জন্য এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরে ফলাফল ফেরত দেওয়া হয় না. নিম্নলিখিত উদাহরণটি সান ফ্রান্সিসকোকে কেন্দ্র করে 5000-মিটার ব্যাসার্ধের সাথে একটি বৃত্তাকার অবস্থানের সীমাবদ্ধতার অনুরোধকে সীমাবদ্ধ করতে অবস্থানের সীমাবদ্ধতা ব্যবহার করে:
স্থান সুইফট 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. }
সুইফট
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))") } } })
উদ্দেশ্য-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. } } }];
অবস্থানের পক্ষপাতের সাথে, অবস্থানটি পক্ষপাত হিসাবে কাজ করে, যার অর্থ নির্দিষ্ট এলাকার বাইরের ফলাফল সহ নির্দিষ্ট অবস্থানের চারপাশের ফলাফলগুলি ফেরত দেওয়া যেতে পারে। পরবর্তী উদাহরণ অবস্থান পক্ষপাত ব্যবহার করার পূর্ববর্তী অনুরোধ পরিবর্তন করে:
স্থান সুইফট 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. }
সুইফট
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))") } } })
উদ্দেশ্য-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- তে তালিকাভুক্ত একটি নির্দিষ্ট ধরনের হওয়ার অনুরোধ থেকে ফলাফল সীমাবদ্ধ করতে প্রকারের প্যারামিটার ব্যবহার করুন। আপনি পাঁচটি মান পর্যন্ত একটি অ্যারে নির্দিষ্ট করতে পারেন। বাদ দেওয়া হলে, সব ধরনের ফেরত দেওয়া হয়.
নিম্নলিখিত উদাহরণটি "সকার" এর একটি ক্যোয়ারী স্ট্রিং নির্দিষ্ট করে এবং "sporting_goods_store"
টাইপের প্রতিষ্ঠানগুলিতে ফলাফল সীমাবদ্ধ করতে প্রকারের প্যারামিটার ব্যবহার করে:
স্থান সুইফট 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. }
সুইফট
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))") } } })
উদ্দেশ্য-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
হিসাবে প্রদান করে।
এই উদাহরণটি সান ফ্রান্সিসকোর কেন্দ্রে উত্স সেট করে:
স্থান সুইফট 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. }
সুইফট
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))") } } })
উদ্দেশ্য-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. } } }];
একটি স্থান স্বয়ংসম্পূর্ণ উইজেট যোগ করুন
স্থান সুইফট 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 } ) } } }