iOS (নতুন) এর জন্য Places SDK আপনার অ্যাপে স্থান সম্পর্কে সমৃদ্ধ তথ্য প্রদান করে, যার মধ্যে রয়েছে স্থানের নাম এবং ঠিকানা, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট ভৌগোলিক অবস্থান, স্থানের ধরণ (যেমন নাইট ক্লাব, পোষা প্রাণীর দোকান, জাদুঘর) এবং আরও অনেক কিছু। একটি নির্দিষ্ট স্থানের জন্য এই তথ্য অ্যাক্সেস করতে, আপনি স্থান আইডি ব্যবহার করতে পারেন, একটি স্থিতিশীল শনাক্তকারী যা একটি স্থানকে অনন্যভাবে চিহ্নিত করে।
স্থানের বিবরণ পান
GMSPlace ক্লাসে একটি নির্দিষ্ট স্থান সম্পর্কে তথ্য থাকে, যার মধ্যে Place Data Fields (New) এ দেখানো সমস্ত ডেটা ক্ষেত্র অন্তর্ভুক্ত থাকে। GMSPlacesClient fetchPlaceWithRequest: কল করে, GMSFetchPlaceRequest অবজেক্ট পাস করে এবং GMSPlaceResultCallback ধরণের একটি কলব্যাক পদ্ধতি পাস করে একটি GMSPlace অবজেক্ট পান।
GMSFetchPlaceRequest অবজেক্টটি নির্দিষ্ট করে:
- (প্রয়োজনীয়) স্থান আইডি , গুগল প্লেস ডাটাবেস এবং গুগল ম্যাপে একটি স্থানের জন্য একটি অনন্য শনাক্তকারী।
- (প্রয়োজনীয়)
GMSPlaceঅবজেক্টে ফেরত দেওয়ার জন্য ফিল্ডের তালিকা, যাকে ফিল্ড মাস্কও বলা হয়,GMSPlacePropertyদ্বারা সংজ্ঞায়িত। যদি আপনি ফিল্ড তালিকায় কমপক্ষে একটি ফিল্ড নির্দিষ্ট না করেন, অথবা যদি আপনি ফিল্ড তালিকাটি বাদ দেন, তাহলে কলটি একটি ত্রুটি ফেরত পাঠায়। - (ঐচ্ছিক) প্রতিক্রিয়া ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড।
- (ঐচ্ছিক) একটি স্বয়ংক্রিয় (নতুন) সেশন শেষ করতে ব্যবহৃত সেশন টোকেন।
স্থানের বিবরণের জন্য অনুরোধ করুন
এই উদাহরণটি নিম্নলিখিত পরামিতিগুলি অতিক্রম করে ID অনুসারে একটি স্থান পায়:
-
ChIJV4k8_9UodTERU5KXbkYpSYsএর স্থান আইডি। - স্থানের নাম এবং ওয়েবসাইটের URL ফেরত দেওয়ার জন্য নির্দিষ্ট করে একটি ক্ষেত্রের তালিকা।
- ফলাফল পরিচালনা করার জন্য একটি
GMSPlaceResultCallback।
API নির্দিষ্ট কলব্যাক পদ্ধতিটি ব্যবহার করে, একটি GMSPlace অবজেক্টে পাস করে। যদি স্থানটি খুঁজে না পাওয়া যায়, তাহলে স্থান অবজেক্টটি শূন্য।
প্লেস সুইফট এসডিকে
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.name, .website] ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): // Handle place case .failure(let placesError): // Handle error }
সুইফট
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue} // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil) client.fetchPlace(with: fetchPlaceRequest, callback: { (place: GMSPlace?, error: Error?) in guard let place, error == nil else { return } print("Place found: \(String(describing: place.name))") })
অবজেক্টিভ-সি
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite]; // Create the GMSFetchPlaceRequest object. GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil]; [placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { NSLog(@"Place Found: %@", place.name); NSLog(@"The place URL: %@", place.website); } }];
স্থানের বিবরণের প্রতিক্রিয়া
স্থানের বিবরণ স্থান সম্পর্কে বিশদ সম্বলিত একটি GMSPlace অবজেক্ট ফেরত পাঠায়। কেবলমাত্র ক্ষেত্রের তালিকায় উল্লেখিত ক্ষেত্রগুলি GMSPlace অবজেক্টে পূরণ করা হয়।
খোলা অবস্থা পান
GMSPlacesClient অবজেক্টে isOpenWithRequest (Swift-এ isOpenRequest এবং GooglePlacesSwift-এ isPlaceOpenRequest ) নামে একটি সদস্য ফাংশন থাকে যা কলে উল্লেখিত সময়ের উপর ভিত্তি করে স্থানটি বর্তমানে খোলা আছে কিনা তা নির্দেশ করে একটি প্রতিক্রিয়া প্রদান করে।
এই পদ্ধতিটি GMSPlaceIsOpenWithRequest ধরণের একটি একক আর্গুমেন্ট নেয় যার মধ্যে রয়েছে:
- একটি
GMSPlaceঅবজেক্ট , অথবা একটি স্ট্রিং যা একটি স্থান আইডি উল্লেখ করে। প্রয়োজনীয় ক্ষেত্রগুলি সহ স্থান অবজেক্ট তৈরি করার বিষয়ে আরও তথ্যের জন্য, স্থানের বিবরণ দেখুন। - একটি ঐচ্ছিক
NSDate(Obj-C) অথবাDate(Swift) অবজেক্ট যা আপনি যে সময়টি পরীক্ষা করতে চান তা নির্দিষ্ট করে। যদি কোনও সময় নির্দিষ্ট না থাকে, তাহলে ডিফল্ট হল "now"। - প্রতিক্রিয়া পরিচালনা করার জন্য একটি
GMSPlaceOpenStatusResponseCallbackপদ্ধতি। >
GMSPlaceIsOpenWithRequest পদ্ধতিতে GMSPlace অবজেক্টে নিম্নলিখিত ক্ষেত্রগুলি সেট করা প্রয়োজন:
-
GMSPlacePropertyUTCOffsetMinutes -
GMSPlacePropertyBusinessStatus -
GMSPlacePropertyOpeningHours -
GMSPlacePropertyCurrentOpeningHours -
GMSPlacePropertySecondaryOpeningHours
যদি এই ক্ষেত্রগুলি Place অবজেক্টে প্রদান করা না থাকে, অথবা আপনি যদি একটি Place ID পাস করেন, তাহলে পদ্ধতিটি GMSPlacesClient GMSFetchPlaceRequest: ব্যবহার করে সেগুলি আনয়ন করে।
isOpenWithRequest প্রতিক্রিয়া
isOpenWithRequest একটি GMSPlaceIsOpenResponse অবজেক্ট ফেরত পাঠায় যার নাম status যা নির্দেশ করে যে ব্যবসাটি খোলা আছে, বন্ধ আছে, অথবা স্ট্যাটাসটি অজানা কিনা।
| ভাষা | খোলা থাকলে মান | বন্ধ থাকলে মান | স্ট্যাটাস অজানা থাকলে মান |
|---|---|---|---|
| স্থান সুইফট | true | false | nil |
| সুইফট | .open | .closed | .unknown |
| অবজেক্টিভ-সি | GMSPlaceOpenStatusOpen | GMSPlaceOpenStatusClosed | GMSPlaceOpenStatusUnknown |
isOpenWithRequest এর জন্য বিলিং
-
GMSPlacePropertyUTCOffsetMinutesএবংGMSPlacePropertyBusinessStatusক্ষেত্রগুলি বেসিক ডেটা SKU এর অধীনে চার্জ করা হয়। বাকি খোলা থাকার সময়গুলি স্থান বিবরণী এন্টারপ্রাইজ SKU এর অধীনে চার্জ করা হয়। - যদি আপনার
GMSPlaceঅবজেক্টে ইতিমধ্যেই পূর্ববর্তী অনুরোধের এই ক্ষেত্রগুলি থাকে, তাহলে আপনাকে আর চার্জ করা হবে না।
উদাহরণ: একটি GMSPlaceIsOpenWithRequest অনুরোধ করুন
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি বিদ্যমান GMSPlace অবজেক্টের মধ্যে একটি GMSPlaceIsOpenWithRequest আরম্ভ করতে হয়। প্লেস সুইফট এসডিকে
let isOpenRequest = IsPlaceOpenRequest(place: place) switch await placesClient.isPlaceOpen(with: isOpenRequest) { case .success(let isOpenResponse): switch isOpenResponse.status { case true: // Handle open case false: // Handle closed case nil: // Handle unknown case .failure(let placesError): // Handle error }
সুইফট
let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil) GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in if let error = error { // Handle Error } switch response.status { case .open: // Handle open case .closed: // Handle closed case .unknown: // Handle unknown } }
অবজেক্টিভ-সি
GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil]; [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) { if (error) { // Handle error } switch (response.status) { case GMSPlaceOpenStatusOpen: // Handle open case GMSPlaceOpenStatusClosed: // Handle closed case GMSPlaceOpenStatusUnknown: // Handle unknown } }];
প্রয়োজনীয় পরামিতি
প্রয়োজনীয় প্যারামিটারগুলি নির্দিষ্ট করতে GMSFetchPlaceRequest অবজেক্ট ব্যবহার করুন।
স্থান আইডি
iOS এর জন্য Places SDK তে ব্যবহৃত স্থান আইডি হল Places API, Android এর জন্য Places SDK এবং অন্যান্য Google API তে ব্যবহৃত একই শনাক্তকারী। প্রতিটি স্থান আইডি শুধুমাত্র একটি স্থানকে নির্দেশ করতে পারে, তবে একটি একক স্থানে একাধিক স্থান আইডি থাকতে পারে।
এমন কিছু পরিস্থিতি রয়েছে যার কারণে কোনও স্থানের জন্য একটি নতুন স্থান আইডি পেতে পারে। উদাহরণস্বরূপ, যদি কোনও ব্যবসা নতুন স্থানে চলে যায় তবে এটি ঘটতে পারে।
যখন আপনি একটি স্থান আইডি উল্লেখ করে একটি স্থানের জন্য অনুরোধ করেন, তখন আপনি নিশ্চিত থাকতে পারেন যে আপনি সর্বদা প্রতিক্রিয়ায় একই স্থান পাবেন (যদি স্থানটি এখনও বিদ্যমান থাকে)। তবে মনে রাখবেন যে প্রতিক্রিয়াতে এমন একটি স্থান আইডি থাকতে পারে যা আপনার অনুরোধে থাকা থেকে আলাদা।
ক্ষেত্রের তালিকা
যখন আপনি স্থানের বিবরণের জন্য অনুরোধ করবেন, তখন আপনাকে অবশ্যই GMSPlace অবজেক্টে ফিল্ড মাস্ক হিসেবে ফেরত পাঠানোর জন্য ডেটা নির্দিষ্ট করতে হবে। ফিল্ড মাস্ক সংজ্ঞায়িত করতে GMSPlaceProperty থেকে GMSFetchPlaceRequest অবজেক্টে মানগুলির একটি অ্যারে পাস করুন। ফিল্ড মাস্কিং একটি ভাল ডিজাইন অনুশীলন যা নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটা অনুরোধ করবেন না, যা অপ্রয়োজনীয় প্রক্রিয়াকরণ সময় এবং বিলিং চার্জ এড়াতে সাহায্য করে।
নিম্নলিখিত ক্ষেত্রগুলির মধ্যে একটি বা একাধিক উল্লেখ করুন:
নিম্নলিখিত ক্ষেত্রগুলি স্থানের বিবরণ অপরিহার্য আইডি শুধুমাত্র SKU ট্রিগার করে:
GMSPlacePropertyPlaceID
GMSPlacePropertyPhotosনিম্নলিখিত ক্ষেত্রগুলি স্থানের বিবরণ অপরিহার্য SKU ট্রিগার করে:
GMSPlacePropertyAddressComponents
GMSPlacePropertyFormattedAddress
GMSPlacePropertyCoordinate
GMSPlacePropertyPlusCode
GMSPlacePropertyTypes
GMSPlacePropertyViewportনিম্নলিখিত ক্ষেত্রগুলি স্থান বিবরণ প্রো SKU ট্রিগার করে:
GMSPlacePropertyBusinessStatus
GMSPlacePropertyIconBackgroundColor
GMSPlacePropertyIconImageURL
GMSPlacePropertyName
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyWheelchairAccessibleEntranceনিম্নলিখিত ক্ষেত্রগুলি স্থান বিবরণ প্রো SKU ট্রিগার করে:
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
GMSPlacePropertyPhoneNumber
GMSPlacePropertyPriceLevel
GMSPlacePropertyRating
GMSPlacePropertyOpeningHours
GMSPlacePropertyUserRatingsTotal
GMSPlacePropertyWebsiteনিম্নলিখিত ক্ষেত্রগুলি স্থান বিবরণী এন্টারপ্রাইজ SKU ট্রিগার করে:
GMSPlacePropertyCurbsidePickup
GMSPlacePropertyDelivery
GMSPlacePropertyDineIn
GMSPlacePropertyEditorialSummary
GMSPlacePropertyReservable
GMSPlacePropertyReviews
GMSPlacePropertyServesBeer
GMSPlacePropertyServesBreakfast
GMSPlacePropertyServesBrunch
GMSPlacePropertyServesDinner
GMSPlacePropertyServesLunch
GMSPlacePropertyServesVegetarianFood
GMSPlacePropertyServesWine
GMSPlacePropertyTakeout
নিম্নলিখিত উদাহরণে দুটি ফিল্ড মানের একটি তালিকা প্রদান করা হয়েছে যাতে উল্লেখ করা হয় যে একটি অনুরোধ দ্বারা ফেরত পাঠানো GMSPlace অবজেক্টে name এবং placeID ক্ষেত্র রয়েছে:
প্লেস সুইফট এসডিকে
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
সুইফট
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
অবজেক্টিভ-সি
// Specify the place data types to return. NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
ঐচ্ছিক পরামিতি
ঐচ্ছিক প্যারামিটারগুলি নির্দিষ্ট করতে GMSFetchPlaceRequest অবজেক্ট ব্যবহার করুন।
অঞ্চল কোড
প্রতিক্রিয়া ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড, দুই-অক্ষরের CLDR কোড মান হিসাবে নির্দিষ্ট করা হয়েছে। এই প্যারামিটারটি অনুসন্ধান ফলাফলের উপর পক্ষপাতের প্রভাবও ফেলতে পারে। কোনও ডিফল্ট মান নেই।
যদি উত্তরে ঠিকানা ক্ষেত্রের দেশের নাম অঞ্চল কোডের সাথে মিলে যায়, তাহলে ঠিকানা থেকে দেশের কোড বাদ দেওয়া হবে।
বেশিরভাগ CLDR কোড ISO 3166-1 কোডের অনুরূপ, কিছু উল্লেখযোগ্য ব্যতিক্রম ছাড়া। উদাহরণস্বরূপ, যুক্তরাজ্যের ccTLD হল "uk" (.co.uk) যেখানে এর ISO 3166-1 কোড হল "gb" (প্রযুক্তিগতভাবে "The United Kingdom of Great Britain and Northern Ireland" এর সত্তার জন্য)। প্রযোজ্য আইনের উপর ভিত্তি করে প্যারামিটারটি ফলাফলকে প্রভাবিত করতে পারে।
সেশনটোকেন
সেশন টোকেন হল ব্যবহারকারী-উত্পাদিত স্ট্রিং যা "সেশন" হিসেবে স্বয়ংক্রিয়পূর্ণ (নতুন) কল ট্র্যাক করে। স্বয়ংক্রিয়পূর্ণ (নতুন) বিলিং উদ্দেশ্যে ব্যবহারকারীর স্বয়ংক্রিয়পূর্ণ অনুসন্ধানের কোয়েরি এবং স্থান নির্বাচনের ধাপগুলিকে একটি পৃথক সেশনে গোষ্ঠীভুক্ত করতে সেশন টোকেন ব্যবহার করে। সেশন টোকেনগুলি স্বয়ংক্রিয়পূর্ণ (নতুন) কলের পরে স্থান বিবরণ (নতুন) কলগুলিতে স্থানান্তরিত হয়। আরও তথ্যের জন্য, সেশন টোকেন দেখুন।
আপনার অ্যাপে অ্যাট্রিবিউশন দেখান
যখন আপনার অ্যাপটি GMSPlacesClient থেকে প্রাপ্ত তথ্য, যেমন ছবি এবং পর্যালোচনা প্রদর্শন করে, তখন অ্যাপটিকে অবশ্যই প্রয়োজনীয় বৈশিষ্ট্যগুলিও প্রদর্শন করতে হবে।
উদাহরণস্বরূপ, GMSPlacesClient অবজেক্টের reviews প্রপার্টিতে পাঁচটি পর্যন্ত GMSPlaceReview অবজেক্টের একটি অ্যারে থাকে। প্রতিটি GMSPlaceReview অবজেক্টে অ্যাট্রিবিউশন এবং লেখক অ্যাট্রিবিউশন থাকতে পারে। আপনি যদি আপনার অ্যাপে রিভিউটি প্রদর্শন করেন, তাহলে আপনাকে অবশ্যই যেকোনো অ্যাট্রিবিউশন বা লেখক অ্যাট্রিবিউশনও প্রদর্শন করতে হবে।
আরও তথ্যের জন্য, অ্যাট্রিবিউশন সম্পর্কিত ডকুমেন্টেশন দেখুন।