iOS (নতুন)-এর জন্য Places SDK আপনার অ্যাপকে জায়গা সম্পর্কে প্রচুর তথ্য প্রদান করে, যার মধ্যে রয়েছে জায়গার নাম ও ঠিকানা, অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট হিসেবে নির্দিষ্ট করা ভৌগোলিক লোকেশন, জায়গার ধরন (যেমন নাইট ক্লাব, পোষ্য প্রাণীর দোকান, মিউজিয়াম) এবং আরও অনেক কিছু। কোনও নির্দিষ্ট জায়গার জন্য এই তথ্য অ্যাক্সেস করতে, আপনি প্লেস আইডি ব্যবহার করতে পারেন, এটি একটি স্থায়ী শনাক্তকারী যা কোনও জায়গাকে অনন্যভাবে শনাক্ত করে।
জায়গার বিবরণ পাওয়া
এই
GMSPlace
ক্লাসে কোনও নির্দিষ্ট জায়গা সম্পর্কে তথ্য থাকে, এর মধ্যে
জায়গা সংক্রান্ত ডেটা ফিল্ড (নতুন)-এ দেখানো সব ডেটা ফিল্ড অন্তর্ভুক্ত। GMSPlacesClient
fetchPlaceWithRequest:
কল করে একটি
GMSPlace
অবজেক্ট পান, একটি GMSFetchPlaceRequest অবজেক্ট এবং
GMSPlaceResultCallback টাইপের একটি
কলব্যাক পদ্ধতি পাস করুন।
GMSFetchPlaceRequest অবজেক্ট এগুলি নির্দিষ্ট করে:
- (প্রয়োজনীয়) প্লেস আইডি, Google Places ডেটাবেস ও Google Maps-এ কোনও জায়গার অনন্য শনাক্তকারী।
- (আবশ্যক)
GMSPlaceঅবজেক্টে রিটার্ন করার জন্য ফিল্ডের তালিকা, এছাড়াও এটিকে ফিল্ড মাস্ক বলা হয়, এটিGMSPlacePropertyদ্বারা সংজ্ঞায়িত করা হয়। ফিল্ড তালিকায় কমপক্ষে একটি ফিল্ড নির্দিষ্ট না করলে অথবা ফিল্ড তালিকা বাদ দিলে কলটি একটি সমস্যা রিটার্ন করে। - (ঐচ্ছিক) উত্তর ফর্ম্যাট করার জন্য ব্যবহৃত অঞ্চল কোড।
- (ঐচ্ছিক) সেশন টোকেন যা Autocomplete (নতুন) সেশন শেষ করতে ব্যবহার করা হয়।
জায়গার বিবরণ সংক্রান্ত অনুরোধ করা
এই উদাহরণটি আইডি দিয়ে কোনও জায়গা পায়, নিম্নলিখিত প্যারামিটার পাস করে:
ChIJV4k8_9UodTERU5KXbkYpSYs-এর প্লেস আইডি।- জায়গার নাম ও ওয়েবসাইটের URL রিটার্ন করার জন্য নির্দিষ্ট করা ফিল্ডের তালিকা।
- ফলাফল ম্যানেজ করার জন্য
GMSPlaceResultCallback।
API, নির্দিষ্ট কলব্যাক পদ্ধতিকে ইনভোক করে, যার মধ্যে একটি
GMSPlace
অবজেক্ট পাস করা হয়। জায়গাটি খুঁজে না পাওয়া গেলে, জায়গার অবজেক্টটি শূন্য হয়।
Places Swift 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 }
Swift
// 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))") })
Objective-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); } }];
জায়গার বিবরণ সংক্রান্ত উত্তর
Place Details, জায়গা সম্পর্কে বিবরণ সহ একটি
GMSPlace অবজেক্ট রিটার্ন করে। ফিল্ডের তালিকায় উল্লেখ করা ফিল্ডগুলিই শুধু GMSPlace অবজেক্টে পপুলেট করা হয়।
ওপেন স্ট্যাটাস পান
GMSPlacesClient অবজেক্টে isOpenWithRequest (Swift-এ isOpenRequest এবং GooglePlacesSwift-এ isPlaceOpenRequest) নামে একটি মেম্বার ফাংশন থাকে যা কলে উল্লেখ করা সময়ের ভিত্তিতে জায়গাটি বর্তমানে খোলা আছে কিনা তা জানিয়ে একটি উত্তর দেয়।
এই পদ্ধতিতে GMSPlaceIsOpenWithRequest ধরনের একটি আর্গুমেন্ট নেওয়া হয়, যার মধ্যে এগুলি থাকে:
GMSPlaceঅবজেক্ট অথবা কোনও জায়গার আইডি উল্লেখ করা স্ট্রিং। প্রয়োজনীয় ফিল্ড সহ Place অবজেক্ট তৈরি করার ব্যাপারে আরও জানতে, জায়গার বিবরণ দেখুন।
- আপনি যে সময় চেক করতে চান তা নির্দিষ্ট করে এমন একটি ঐচ্ছিক
NSDate(Obj-C) বাDate(Swift) অবজেক্ট। কোনও সময় উল্লেখ করা না থাকলে, ডিফল্ট হিসেবে এখনকার সময় সেট করা হয়। - উত্তর ম্যানেজ করার একটি
GMSPlaceOpenStatusResponseCallbackপদ্ধতি। >
GMSPlaceIsOpenWithRequest পদ্ধতিতে GMSPlace অবজেক্টে নিম্নলিখিত ফিল্ড সেট করতে হবে:
GMSPlacePropertyUTCOffsetMinutesGMSPlacePropertyBusinessStatusGMSPlacePropertyOpeningHoursGMSPlacePropertyCurrentOpeningHoursGMSPlacePropertySecondaryOpeningHours
এইসব ফিল্ড যদি Place অবজেক্টে না দেওয়া থাকে অথবা আপনি যদি কোনও প্লেস আইডি পাস করেন, তাহলে পদ্ধতিটি সেগুলি আনার জন্য GMSPlacesClient GMSFetchPlaceRequest: ব্যবহার করে।
isOpenWithRequest উত্তর
isOpenWithRequest একটি GMSPlaceIsOpenResponse অবজেক্ট রিটার্ন করে যাতে status নামের একটি বুলিয়ান ভ্যালু থাকে যা থেকে বোঝা যায় যে ব্যবসাটি খোলা আছে, বন্ধ আছে নাকি স্ট্যাটাস অজানা।
| ভাষা | খোলা থাকলে ভ্যালু | বন্ধ থাকলে ভ্যালু | স্ট্যাটাস জানা না থাকলে ভ্যালু |
|---|---|---|---|
| Places Swift | true |
false |
nil |
| Swift | .open |
.closed |
.unknown |
| Objective-C | GMSPlaceOpenStatusOpen |
GMSPlaceOpenStatusClosed |
GMSPlaceOpenStatusUnknown |
isOpenWithRequest-এর জন্য বিলিং
GMSPlacePropertyUTCOffsetMinutesএবংGMSPlacePropertyBusinessStatusফিল্ডের জন্য Basic Data SKU-এর অধীনে চার্জ করা হয়। বাকি খোলা থাকার সময় জায়গার বিবরণ Enterprise SKU-এর অধীনে চার্জ করা হয়।- আপনার
GMSPlaceঅবজেক্টে আগে থেকেই পূর্ববর্তী অনুরোধের এই ফিল্ডগুলি থাকলে, আপনাকে আবার চার্জ করা হবে না।
যেমন: GMSPlaceIsOpenWithRequest অনুরোধ
নিচের উদাহরণে দেখানো হয়েছে যে কীভাবে আগে থেকে থাকা GMSPlace অবজেক্টের মধ্যে GMSPlaceIsOpenWithRequest ইনিশিয়ালাইজ করতে হয়।
Places Swift 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 }
Swift
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 } }
Objective-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, Android-এর জন্য Places SDK এবং অন্যান্য Google API-তে ব্যবহৃত হয়। প্রতিটি প্লেস আইডি শুধুমাত্র একটি জায়গাকে রেফার করতে পারে, কিন্তু একটি জায়গার একাধিক প্লেস আইডি থাকতে পারে।
এমন কিছু পরিস্থিতি আছে যার কারণে কোনও জায়গার নতুন প্লেস আইডি তৈরি হতে পারে। যেমন, কোনও ব্যবসা নতুন লোকেশনে স্থানান্তরিত হলে এটি হতে পারে।
আপনি যখন কোনও প্লেস আইডি উল্লেখ করে কোনও জায়গার অনুরোধ করেন, তখন আপনি নিশ্চিত থাকতে পারেন যে আপনি সবসময় উত্তরে একই জায়গা পাবেন (যদি জায়গাটি এখনও বিদ্যমান থাকে)। তবে, মনে রাখবেন যে উত্তরে এমন একটি প্লেস আইডি থাকতে পারে যা আপনার অনুরোধে থাকা আইডি থেকে আলাদা।
ফিল্ডের তালিকা
আপনি জায়গার বিবরণ সম্পর্কে অনুরোধ করলে, আপনাকে অবশ্যই ফিল্ড মাস্ক হিসেবে জায়গার জন্য GMSPlace অবজেক্টে
ফেরত দেওয়ার জন্য ডেটা নির্দিষ্ট করতে হবে। ফিল্ড মাস্ককে সংজ্ঞায়িত করতে
GMSFetchPlaceRequest অবজেক্টে
GMSPlaceProperty
থেকে ভ্যালুর একটি অ্যারে পাস করুন।
আপনি যাতে অপ্রয়োজনীয় ডেটা না চান তা নিশ্চিত করতে ফিল্ড মাস্কিং হল একটি ভালো ডিজাইন প্র্যাক্টিস, যা অপ্রয়োজনীয় প্রসেসিং সময় ও বিলিং চার্জ এড়াতে সাহায্য করে।
নিম্নলিখিত ফিল্ডের মধ্যে একটি বা একাধিক ফিল্ড নির্দিষ্ট করুন:
নিম্নলিখিত ফিল্ড শুধুমাত্র SKU সহ স্থান সম্পর্কিত বিবরণ এসেনশিয়াল আইডি ট্রিগার করে:
GMSPlacePropertyPlaceID
GMSPlacePropertyPhotosফিল্ডের সম্পূর্ণ তালিকা এবং তাদের সাথে সম্পর্কিত SKU-এর জন্য, জায়গার ডেটা ফিল্ড (নতুন) দেখুন।
নিম্নলিখিত ফিল্ডগুলি জায়গার বিবরণ সংক্রান্ত প্রয়োজনীয় SKU ট্রিগার করে:
GMSPlacePropertyAddressComponents
GMSPlacePropertyFormattedAddress
GMSPlacePropertyCoordinate
GMSPlacePropertyPlusCode
GMSPlacePropertyTypes
GMSPlacePropertyViewportফিল্ড ও সংশ্লিষ্ট SKU-এর সম্পূর্ণ তালিকা দেখতে, প্লেস ডেটা ফিল্ড (নতুন) দেখুন।
নিম্নলিখিত ফিল্ড Place Details Pro SKU ট্রিগার করে:
GMSPlacePropertyBusinessStatus
GMSPlacePropertyIconBackgroundColor
GMSPlacePropertyIconImageURL
GMSPlacePropertyName
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyWheelchairAccessibleEntranceফিল্ড ও সংশ্লিষ্ট SKU-এর সম্পূর্ণ তালিকা দেখতে, প্লেস ডেটা ফিল্ড (নতুন) দেখুন।
নিম্নলিখিত ফিল্ড Place Details Pro SKU ট্রিগার করে:
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
GMSPlacePropertyPhoneNumber
GMSPlacePropertyPriceLevel
GMSPlacePropertyRating
GMSPlacePropertyOpeningHours
GMSPlacePropertyUserRatingsTotal
GMSPlacePropertyWebsiteফিল্ডের সম্পূর্ণ তালিকা এবং তাদের সাথে সম্পর্কিত SKU-এর জন্য, জায়গার ডেটা ফিল্ড (নতুন) দেখুন।
নিম্নলিখিত ফিল্ড জায়গার বিবরণ এন্টারপ্রাইজ SKU ট্রিগার করে:
GMSPlacePropertyCurbsidePickup
GMSPlacePropertyDelivery
GMSPlacePropertyDineIn
GMSPlacePropertyEditorialSummary
GMSPlacePropertyReservable
GMSPlacePropertyReviews
GMSPlacePropertyServesBeer
GMSPlacePropertyServesBreakfast
GMSPlacePropertyServesBrunch
GMSPlacePropertyServesDinner
GMSPlacePropertyServesLunch
GMSPlacePropertyServesVegetarianFood
GMSPlacePropertyServesWine
GMSPlacePropertyTakeoutফিল্ড ও সংশ্লিষ্ট SKU-এর সম্পূর্ণ তালিকা দেখতে, প্লেস ডেটা ফিল্ড (নতুন) দেখুন।
নিচে দেওয়া উদাহরণে, কোনও অনুরোধের মাধ্যমে পাওয়া GMSPlace অবজেক্টে যে
name ও placeID ফিল্ড আছে তা নির্দিষ্ট করতে, দুটি
ফিল্ড ভ্যালু
সহ একটি তালিকা পাস করা হয়েছে:
Places Swift SDK
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
Swift
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
Objective-C
// Specify the place data types to return. NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
ঐচ্ছিক প্যারামিটার
ঐচ্ছিক প্যারামিটার নির্দিষ্ট করতে GMSFetchPlaceRequest অবজেক্ট ব্যবহার করুন।
regionCode
উত্তরের ফর্ম্যাট করার জন্য ব্যবহৃত অঞ্চল কোড, যা দুটি অক্ষরের CLDR কোড ভ্যালু হিসেবে নির্দিষ্ট করা আছে। এই প্যারামিটার সার্চ ফলাফলে পক্ষপাতদুষ্ট প্রভাবও ফেলতে পারে। কোনও ডিফল্ট ভ্যালু নেই।
উত্তরে থাকা ঠিকানার ফিল্ডে দেশের নাম অঞ্চল কোডের সাথে মিলে গেলে, ঠিকানা থেকে দেশের কোড বাদ দেওয়া হয়।
বেশিরভাগ CLDR কোড ISO 3166-1 কোডের মতো একই রকম, তবে কিছু উল্লেখযোগ্য ব্যতিক্রম আছে। যেমন, যুক্তরাজ্যের ccTLD হল "uk" (.co.uk) এবং এর ISO 3166-1 কোড হল "gb" (প্রযুক্তিগতভাবে এটি "গ্রেট ব্রিটেন ও উত্তর আয়ারল্যান্ডের যুক্তরাজ্য" এন্টিটির জন্য)। প্রযোজ্য আইনের ভিত্তিতে প্যারামিটার ফলাফলের উপর প্রভাব ফেলতে পারে।
sessionToken
সেশন টোকেন হল ব্যবহারকারীর তৈরি করা স্ট্রিং যা "সেশন" হিসেবে Autocomplete (New) কল ট্র্যাক করে। অটোকমপ্লিট (নতুন) সেশন টোকেন ব্যবহার করে কোয়েরি গ্রুপ করে এবং বিলিংয়ের উদ্দেশ্যে ব্যবহারকারীর অটোকমপ্লিট সার্চের জায়গা বেছে নেওয়ার ধাপকে একটি পৃথক সেশনে রাখে। অটোমেটিক সম্পূর্ণ (নতুন) কলের পরে আসা জায়গার বিবরণ (নতুন) কলে সেশন টোকেন পাস করা হয়। আরও তথ্যের জন্য, সেশন টোকেন দেখুন।
আপনার অ্যাপে অ্যাট্রিবিউশন দেখানো
আপনার অ্যাপ যখন
GMSPlacesClient-এর
থেকে পাওয়া তথ্য দেখায়, যেমন ফটো ও রিভিউ, তখন অ্যাপটিকে প্রয়োজনীয় অ্যাট্রিবিউশনও দেখাতে হবে।
যেমন, GMSPlacesClient অবজেক্টের reviews প্রপার্টিতে
পাঁচটি পর্যন্ত
GMSPlaceReview
অবজেক্টের একটি অ্যারে থাকে। প্রতিটি GMSPlaceReview অবজেক্টে অ্যাট্রিবিউশন ও লেখকের অ্যাট্রিবিউশন থাকতে পারে।
আপনার অ্যাপে রিভিউ দেখালে, আপনাকে অবশ্যই কোনও অ্যাট্রিবিউশন বা লেখকের
অ্যাট্রিবিউশন দেখাতে হবে।
আরও তথ্যের জন্য, অ্যাট্রিবিউশন সংক্রান্ত ডকুমেন্টেশন দেখুন।