iOS এর জন্য Places SDK (নতুন) স্থানের নাম এবং ঠিকানা, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট ভৌগলিক অবস্থান, স্থানের ধরন (যেমন নাইট ক্লাব, পোষা প্রাণীর দোকান, যাদুঘর) এবং আরও অনেক কিছু সহ স্থান সম্পর্কে সমৃদ্ধ তথ্য সহ আপনার অ্যাপকে প্রদান করে৷ একটি নির্দিষ্ট স্থানের জন্য এই তথ্য অ্যাক্সেস করতে, আপনি স্থান আইডি ব্যবহার করতে পারেন, একটি স্থিতিশীল শনাক্তকারী যা একটি স্থানকে অনন্যভাবে সনাক্ত করে।
স্থান বিবরণ পান
GMSPlace ক্লাসে একটি নির্দিষ্ট স্থান সম্পর্কে তথ্য রয়েছে, যেখানে প্লেস ডেটা ফিল্ড (নতুন) এ দেখানো সমস্ত ডেটা ক্ষেত্র রয়েছে। GMSPlacesClient fetchPlaceWithRequest: , একটি GMSFetchPlaceRequest অবজেক্ট পাস করে এবং GMSPlaceResultCallback টাইপের একটি কলব্যাক পদ্ধতিতে কল করে একটি GMSPlace অবজেক্ট পান।
GMSFetchPlaceRequest বস্তুটি নির্দিষ্ট করে:
- (প্রয়োজনীয়) স্থান আইডি , Google Places ডাটাবেসে এবং Google মানচিত্রে একটি স্থানের জন্য একটি অনন্য শনাক্তকারী৷
- (প্রয়োজনীয়)
GMSPlaceঅবজেক্টে ফিল্ডের তালিকা, যাকে ফিল্ড মাস্কও বলা হয়, যেমনGMSPlacePropertyদ্বারা সংজ্ঞায়িত করা হয়েছে। আপনি যদি ক্ষেত্র তালিকায় অন্তত একটি ক্ষেত্র নির্দিষ্ট না করেন, অথবা যদি আপনি ক্ষেত্র তালিকা বাদ দেন, তাহলে কলটি একটি ত্রুটি প্রদান করে৷ - (ঐচ্ছিক) উত্তর ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড।
- (ঐচ্ছিক) একটি স্বয়ংসম্পূর্ণ (নতুন) সেশন শেষ করতে ব্যবহৃত সেশন টোকেন।
একটি স্থান বিবরণ অনুরোধ করুন
এই উদাহরণটি আইডি দ্বারা একটি স্থান পায়, নিম্নলিখিত পরামিতিগুলি পাস করে:
-
ChIJV4k8_9UodTERU5KXbkYpSYsএর স্থান আইডি। - জায়গার নাম এবং ওয়েবসাইটের URL ফেরত দেওয়ার জন্য একটি ক্ষেত্রের তালিকা।
- ফলাফল পরিচালনা করতে একটি
GMSPlaceResultCallback.
এপিআই একটি GMSPlace অবজেক্টে পাস করে নির্দিষ্ট কলব্যাক পদ্ধতির আহ্বান করে। স্থান পাওয়া না গেলে, স্থান বস্তুটি শূন্য।
স্থান সুইফট SDK
// 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))") })
উদ্দেশ্য-C
// 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 ( সুইফটে isOpenRequest এবং GooglePlacesSwift-এ isPlaceOpenRequest ) নামক একটি সদস্য ফাংশন রয়েছে যা কলে নির্দিষ্ট সময়ের উপর ভিত্তি করে স্থানটি বর্তমানে খোলা আছে কিনা তা নির্দেশ করে।
এই পদ্ধতিটি GMSPlaceIsOpenWithRequest প্রকারের একটি একক আর্গুমেন্ট নেয় যাতে রয়েছে:
- একটি
GMSPlaceঅবজেক্ট , বা একটি স্থান আইডি নির্দিষ্ট করে এমন একটি স্ট্রিং। প্রয়োজনীয় ক্ষেত্রগুলির সাথে প্লেস অবজেক্ট তৈরি করার বিষয়ে আরও তথ্যের জন্য, স্থানের বিবরণ দেখুন। - একটি ঐচ্ছিক
NSDate(Obj-C) বাDate(Swift) অবজেক্ট যা আপনি পরীক্ষা করতে চান তা নির্দিষ্ট করে। যদি কোন সময় নির্দিষ্ট করা না থাকে, ডিফল্ট এখন। - প্রতিক্রিয়া পরিচালনা করার জন্য একটি
GMSPlaceOpenStatusResponseCallbackপদ্ধতি। >
GMSPlaceIsOpenWithRequest পদ্ধতির জন্য GMSPlace অবজেক্টে নিম্নলিখিত ক্ষেত্রগুলি সেট করা প্রয়োজন:
-
GMSPlacePropertyUTCOffsetMinutes -
GMSPlacePropertyBusinessStatus -
GMSPlacePropertyOpeningHours -
GMSPlacePropertyCurrentOpeningHours -
GMSPlacePropertySecondaryOpeningHours
যদি এই ক্ষেত্রগুলি প্লেস অবজেক্টে প্রদান করা না হয়, বা আপনি যদি একটি স্থান আইডি পাস করেন, তাহলে পদ্ধতিটি GMSPlacesClient GMSFetchPlaceRequest: সেগুলি আনার জন্য ব্যবহার করে।
isOpenWithRequest প্রতিক্রিয়া
isOpenWithRequest একটি GMSPlaceIsOpenResponse অবজেক্ট ফেরত দেয় যেখানে একটি বুলিয়ান মান নামক status রয়েছে যা নির্দেশ করে যে ব্যবসাটি খোলা, বন্ধ, বা স্থিতি অজানা কিনা।
| ভাষা | খোলা থাকলে মান | বন্ধ হলে মান | স্থিতি অজানা থাকলে মান |
|---|---|---|---|
| স্থান সুইফট | true | false | nil |
| সুইফট | .open | .closed | .unknown |
| উদ্দেশ্য-C | GMSPlaceOpenStatusOpen | GMSPlaceOpenStatusClosed | GMSPlaceOpenStatusUnknown |
isOpenWithRequest এর জন্য বিলিং
-
GMSPlacePropertyUTCOffsetMinutesএবংGMSPlacePropertyBusinessStatusক্ষেত্রগুলি বেসিক ডেটা SKU-এর অধীনে চার্জ করা হয়। খোলার বাকি সময়গুলি প্লেস ডিটেইলস এন্টারপ্রাইজ SKU-এর অধীনে চার্জ করা হয়। - যদি আপনার
GMSPlaceঅবজেক্টে পূর্বের অনুরোধ থেকে এই ক্ষেত্রগুলি ইতিমধ্যেই থাকে, তাহলে আপনাকে আর চার্জ করা হবে না।
উদাহরণ: একটি GMSPlaceIsOpenWithRequest অনুরোধ করুন
নিম্নলিখিত উদাহরণ দেখায় কিভাবে একটি বিদ্যমান GMSPlace অবজেক্টের মধ্যে একটি GMSPlaceIsOpenWithRequest আরম্ভ করতে হয়। স্থান সুইফট SDK
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 } }
উদ্দেশ্য-C
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, Places SDK-এর জন্য Android এবং অন্যান্য 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 ক্ষেত্র রয়েছে:
স্থান সুইফট SDK
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
সুইফট
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
উদ্দেশ্য-C
// 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 অবজেক্টে অ্যাট্রিবিউশন এবং লেখক অ্যাট্রিবিউশন থাকতে পারে। আপনি যদি আপনার অ্যাপে পর্যালোচনা প্রদর্শন করেন, তাহলে আপনাকে অবশ্যই কোনো অ্যাট্রিবিউশন বা লেখকের অ্যাট্রিবিউশনও প্রদর্শন করতে হবে।
আরও তথ্যের জন্য, বৈশিষ্ট্যের ডকুমেন্টেশন দেখুন।