iOS এর জন্য Places SDK (নতুন) স্থানের নাম এবং ঠিকানা, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট ভৌগলিক অবস্থান, স্থানের ধরন (যেমন নাইট ক্লাব, পোষা প্রাণীর দোকান, যাদুঘর) সহ স্থান সম্পর্কে সমৃদ্ধ তথ্য সহ আপনার অ্যাপকে প্রদান করে। এবং আরো একটি নির্দিষ্ট স্থানের জন্য এই তথ্য অ্যাক্সেস করতে, আপনি স্থান আইডি ব্যবহার করতে পারেন, একটি স্থিতিশীল শনাক্তকারী যা একটি স্থানকে অনন্যভাবে সনাক্ত করে।
স্থান বিবরণ পান
GMSPlace
ক্লাসে একটি নির্দিষ্ট স্থান সম্পর্কে তথ্য রয়েছে, যেখানে প্লেস ডেটা ফিল্ড (নতুন) এ দেখানো সমস্ত ডেটা ক্ষেত্র রয়েছে। GMSPlacesClient fetchPlaceWithRequest:
, একটি GMSFetchPlaceRequest
অবজেক্ট পাস করে এবং GMSPlaceResultCallback
টাইপের একটি কলব্যাক পদ্ধতিতে কল করে একটি GMSPlace
অবজেক্ট পান।
GMSFetchPlaceRequest
বস্তুটি নির্দিষ্ট করে:
- (প্রয়োজনীয়) স্থান আইডি , Google Places ডাটাবেসে এবং Google মানচিত্রে একটি স্থানের জন্য একটি অনন্য শনাক্তকারী৷
- (প্রয়োজনীয়)
GMSPlace
অবজেক্টে ফিল্ডের তালিকা, যাকে ফিল্ড মাস্কও বলা হয়, যেমনGMSPlaceProperty
দ্বারা সংজ্ঞায়িত করা হয়েছে। আপনি যদি ক্ষেত্র তালিকায় অন্তত একটি ক্ষেত্র নির্দিষ্ট না করেন, অথবা যদি আপনি ক্ষেত্র তালিকা বাদ দেন, তাহলে কলটি একটি ত্রুটি প্রদান করে৷ - (ঐচ্ছিক) উত্তর ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড।
- (ঐচ্ছিক) একটি স্বয়ংসম্পূর্ণ (নতুন) সেশন শেষ করতে ব্যবহৃত সেশন টোকেন।
একটি স্থান বিবরণ অনুরোধ করুন
এই উদাহরণটি আইডি দ্বারা একটি স্থান পায়, নিম্নলিখিত পরামিতিগুলি পাস করে:
-
ChIJV4k8_9UodTERU5KXbkYpSYs
এর স্থান আইডি। - জায়গার নাম এবং ওয়েবসাইটের URL ফেরত দেওয়ার জন্য একটি ক্ষেত্রের তালিকা।
- ফলাফল পরিচালনা করতে একটি
GMSPlaceResultCallback
.
এপিআই একটি GMSPlace
অবজেক্টে পাস করে নির্দিষ্ট কলব্যাক পদ্ধতির আহ্বান করে। স্থান পাওয়া না গেলে, স্থান বস্তুটি শূন্য।
সুইফট
// 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); } }];
আইওএসের জন্য সুইফট 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 }
স্থান বিবরণ প্রতিক্রিয়া
স্থানের বিবরণ একটি 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
রয়েছে যা নির্দেশ করে যে ব্যবসাটি খোলা, বন্ধ, বা স্থিতি অজানা কিনা।
ভাষা | খোলা থাকলে মান | বন্ধ হলে মান | স্থিতি অজানা থাকলে মান |
---|---|---|---|
সুইফট | .open | .closed | .unknown |
উদ্দেশ্য-C | GMSPlaceOpenStatusOpen | GMSPlaceOpenStatusClosed | GMSPlaceOpenStatusUnknown |
GooglePlacesSwift (প্রিভিউ) | true | false | nil |
isOpenWithRequest
এর জন্য বিলিং
-
GMSPlacePropertyUTCOffsetMinutes
এবংGMSPlacePropertyBusinessStatus
ক্ষেত্রগুলি বেসিক ডেটা SKU-এর অধীনে চার্জ করা হয়। খোলার বাকি সময়গুলি স্থানের বিবরণ (অ্যাডভান্সড) SKU-এর অধীনে চার্জ করা হয়। - যদি আপনার
GMSPlace
অবজেক্টে পূর্বের অনুরোধ থেকে এই ক্ষেত্রগুলি ইতিমধ্যেই থাকে, তাহলে আপনাকে আর চার্জ করা হবে না।
উদাহরণ: একটি GMSPlaceIsOpenWithRequest
অনুরোধ করুন
নিম্নলিখিত উদাহরণ দেখায় কিভাবে একটি বিদ্যমান GMSPlace
অবজেক্টের মধ্যে একটি GMSPlaceIsOpenWithRequest
আরম্ভ করতে হয়। সুইফট
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 } }];
GooglePlacesSwift
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 }
প্রয়োজনীয় পরামিতি
প্রয়োজনীয় প্যারামিটার নির্দিষ্ট করতে GMSFetchPlaceRequest
অবজেক্ট ব্যবহার করুন।
স্থান আইডি
iOS-এর জন্য Places SDK-এ ব্যবহৃত স্থান আইডি একই শনাক্তকারী যেমন Places API, Places SDK-এর জন্য Android এবং অন্যান্য Google API-এ ব্যবহৃত হয়। প্রতিটি স্থানের আইডি শুধুমাত্র একটি স্থান উল্লেখ করতে পারে, কিন্তু একটি একক স্থানে একাধিক স্থানের আইডি থাকতে পারে।
এমন পরিস্থিতি রয়েছে যার কারণে একটি নতুন জায়গার আইডি পেতে পারে। উদাহরণস্বরূপ, এটি ঘটতে পারে যদি একটি ব্যবসা একটি নতুন অবস্থানে চলে যায়।
যখন আপনি একটি জায়গার আইডি নির্দিষ্ট করে একটি জায়গার জন্য অনুরোধ করেন, তখন আপনি নিশ্চিত হতে পারেন যে আপনি উত্তরে সবসময় একই জায়গা পাবেন (যদি জায়গাটি এখনও বিদ্যমান থাকে)। মনে রাখবেন, যাইহোক, প্রতিক্রিয়াটিতে এমন একটি জায়গার আইডি থাকতে পারে যা আপনার অনুরোধের থেকে আলাদা।
ক্ষেত্র তালিকা
আপনি যখন জায়গার বিশদ বিবরণের জন্য অনুরোধ করেন, তখন আপনাকে অবশ্যই ফিল্ড মাস্ক হিসাবে জায়গাটির জন্য GMSPlace
অবজেক্টে ফিরে আসার জন্য ডেটা নির্দিষ্ট করতে হবে। ফিল্ড মাস্ক সংজ্ঞায়িত করতে GMSPlaceProperty
থেকে GMSFetchPlaceRequest
অবজেক্টে মানগুলির একটি অ্যারে পাস করুন। আপনি অপ্রয়োজনীয় ডেটার অনুরোধ করবেন না তা নিশ্চিত করার জন্য ফিল্ড মাস্কিং একটি ভাল ডিজাইন অনুশীলন, যা অপ্রয়োজনীয় প্রক্রিয়াকরণের সময় এবং বিলিং চার্জ এড়াতে সহায়তা করে।
নিম্নলিখিত ক্ষেত্রগুলির মধ্যে এক বা একাধিক নির্দিষ্ট করুন:
নিম্নলিখিত ক্ষেত্রগুলি স্থানের বিবরণ ট্রিগার করে (শুধুমাত্র আইডি) SKU :
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
,GMSPlacePropertyPhotos
নিম্নলিখিত ক্ষেত্রগুলি স্থানের বিবরণ ট্রিগার করে (শুধু অবস্থান) SKU :
GMSPlacePropertyAddressComponents
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyViewport
নিম্নলিখিত ক্ষেত্রগুলি স্থানের বিবরণ (বেসিক) SKU ট্রিগার করে:
GMSPlacePropertyBusinessStatus
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyWheelchairAccessibleEntrance
Entranceনিম্নলিখিত ক্ষেত্রগুলি স্থানের বিবরণ (উন্নত) SKU ট্রিগার করে:
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
Hours ,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
নিম্নলিখিত ক্ষেত্রগুলি স্থানের বিবরণ (পছন্দের) SKU ট্রিগার করে:
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
GMSPlacePropertyTakeout
Food ,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
নিম্নলিখিত উদাহরণটি নির্দিষ্ট করতে দুটি ক্ষেত্রের মানের একটি তালিকা পাস করে যে GMSPlace
অবজেক্টটি একটি অনুরোধ দ্বারা প্রত্যাবর্তন করে name
এবং placeID
ক্ষেত্র রয়েছে:
সুইফট
// 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];
আইওএসের জন্য সুইফট SDK রাখে (প্রিভিউ)
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
ঐচ্ছিক পরামিতি
ঐচ্ছিক পরামিতি নির্দিষ্ট করতে 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
অবজেক্টে অ্যাট্রিবিউশন এবং লেখক অ্যাট্রিবিউশন থাকতে পারে। আপনি যদি আপনার অ্যাপে পর্যালোচনা প্রদর্শন করেন, তাহলে আপনাকে অবশ্যই কোনো অ্যাট্রিবিউশন বা লেখকের অ্যাট্রিবিউশনও প্রদর্শন করতে হবে।
আরও তথ্যের জন্য, বৈশিষ্ট্যের ডকুমেন্টেশন দেখুন।