iOS-এর জন্য Places SDK জায়গাগুলির নাম এবং ঠিকানা, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট ভৌগলিক অবস্থান, স্থানের ধরন (যেমন নাইট ক্লাব, পোষা প্রাণীর দোকান, যাদুঘর) এবং আরও অনেক কিছু সহ স্থান সম্পর্কে সমৃদ্ধ তথ্য সহ আপনার অ্যাপকে প্রদান করে৷ একটি নির্দিষ্ট স্থানের জন্য এই তথ্য অ্যাক্সেস করতে, আপনি স্থান আইডি ব্যবহার করতে পারেন, একটি স্থিতিশীল শনাক্তকারী যা একটি স্থানকে অনন্যভাবে সনাক্ত করে।
স্থান বিবরণ
GMSPlace
ক্লাস একটি নির্দিষ্ট স্থান সম্পর্কে তথ্য প্রদান করে। আপনি নিম্নলিখিত উপায়ে একটি GMSPlace
অবজেক্ট ধরতে পারেন:
- কল
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
. বর্তমান স্থান পেতে গাইড দেখুন. -
GMSPlacesClient fetchPlaceFromPlaceID:
, একটিGMSPlaceField
, একটি স্থান আইডি এবং একটি কলব্যাক পদ্ধতিতে কল করুন৷ স্থানের বিশদ বিবরণের অনুরোধের জন্য, আপনি যদি অনুরোধের সাথে কমপক্ষে একটি ক্ষেত্র নির্দিষ্ট না করেন, বা আপনি যদি অনুরোধ থেকেfields
পরামিতি বাদ দেন, তবে সম্ভাব্য সমস্ত ক্ষেত্র ফেরত দেওয়া হবে এবং সেই অনুযায়ী আপনাকে বিল করা হবে। আইডি দ্বারা একটি স্থান পেতে গাইড দেখুন.
আপনি যখন একটি স্থানের অনুরোধ করেন, তখন আপনাকে অবশ্যই নির্দিষ্ট করে দিতে হবে যে কোন ধরনের স্থানের ডেটা ফেরত দিতে হবে। এটি করার জন্য, একটি GMSPlaceField
পাস করুন, ফেরত পাঠানোর জন্য ডেটা প্রকারগুলি উল্লেখ করুন৷ এটি একটি গুরুত্বপূর্ণ বিবেচনা, যেহেতু এটি প্রতিটি অনুরোধের খরচকে প্রভাবিত করবে।
যেহেতু স্থানের ডেটা ফলাফলগুলি খালি হতে পারে না, শুধুমাত্র ডেটা সহ স্থানের ফলাফলগুলি ফেরত দেওয়া হয় (উদাহরণস্বরূপ, যদি অনুরোধ করা জায়গায় কোনও ফটো না থাকে তবে photos
ক্ষেত্রটি ফলাফলে উপস্থিত থাকবে না)।
নিম্নলিখিত উদাহরণটি একটি অনুরোধ দ্বারা ফিরে আসা ডেটা নির্দিষ্ট করতে দুটি ক্ষেত্রের মানের একটি তালিকা পাস করে:
সুইফট
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))
উদ্দেশ্য-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
স্থান ক্ষেত্র সম্পর্কে আরো জানুন. স্থান ডেটার অনুরোধগুলি কীভাবে বিল করা হয় সে সম্পর্কে আরও তথ্যের জন্য, ব্যবহার এবং বিলিং দেখুন।
GMSPlace
ক্লাসে নিম্নলিখিত স্থানের ডেটা থাকতে পারে:
-
name
- জায়গার নাম। -
editorialSummary
- একটি স্থানের একটি সহজ বিবরণ প্রদান করে। -
placeID
- স্থানের জন্য পাঠ্য শনাক্তকারী। এই পৃষ্ঠার বাকি অংশে স্থান আইডি সম্পর্কে আরও পড়ুন। -
coordinate
- স্থানের ভৌগলিক অবস্থান, অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট। -
phoneNumber
- জায়গার ফোন নম্বর, আন্তর্জাতিক বিন্যাসে। -
formattedAddress
– এই অবস্থানের মানুষের পঠনযোগ্য ঠিকানা।প্রায়শই এই ঠিকানাটি ডাক ঠিকানার সমতুল্য। উল্লেখ্য যে কিছু দেশ, যেমন ইউনাইটেড কিংডম, লাইসেন্সিং বিধিনিষেধের কারণে সত্যিকারের ডাক ঠিকানা বিতরণের অনুমতি দেয় না।
ফরম্যাট করা ঠিকানা যৌক্তিকভাবে এক বা একাধিক ঠিকানা উপাদান নিয়ে গঠিত। উদাহরণস্বরূপ, ঠিকানা "111 8th Avenue, New York, NY" নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত: "111" (রাস্তার নম্বর), "8th Avenue" (রুট), "New York" (শহর) এবং "NY" "(মার্কিন রাষ্ট্র)।
ফরম্যাট করা ঠিকানাকে প্রোগ্রাম্যাটিকভাবে পার্স করবেন না। পরিবর্তে আপনার পৃথক ঠিকানা উপাদানগুলি ব্যবহার করা উচিত, যা এপিআই প্রতিক্রিয়া ফর্ম্যাট করা ঠিকানা ক্ষেত্র ছাড়াও অন্তর্ভুক্ত করে।
-
openingHours
– জায়গার খোলার সময় (যেমনGMSOpeningHours
দ্বারা প্রতিনিধিত্ব করে)। সপ্তাহের জন্য দৈনিক খোলার সময়ের স্থানীয় স্ট্রিংগুলির একটি তালিকা পেতেGMSOpeningHours.weekdayText
কল করুন।GMSOpeningHours.Periods
কে আরও বিস্তারিত তথ্য সহGMSPeriod
এর একটি তালিকা ফেরত দিতে কল করুন যাweekdayText
দ্বারা প্রদত্ত ডেটার সমতুল্য। দ্রষ্টব্য: যদি একটি স্থান সর্বদা খোলা থাকে, তবে সময়কাল রবিবার মধ্যরাতে হিসাবে উপস্থাপন করা হয় এবংcloseEvent
শূন্য হয়। -
currentOpeningHours
এবংsecondaryOpeningHours
- যে ক্ষেত্রগুলি ছুটি নেয় এবং একটি স্থানের সময়সূচীতে অস্থায়ী পরিবর্তন করে। addressComponents
- একটি স্থানের জন্য ঠিকানার উপাদান প্রতিনিধিত্ব করেGMSAddressComponent
বস্তুর একটি অ্যারে। এই উপাদানগুলি একটি স্থানের ঠিকানা সম্পর্কে কাঠামোগত তথ্য বের করার উদ্দেশ্যে প্রদান করা হয়, উদাহরণস্বরূপ একটি জায়গা যেখানে অবস্থিত সেই শহরটি খুঁজে বের করা। ঠিকানা বিন্যাসের জন্য এই উপাদানগুলি ব্যবহার করবেন না; পরিবর্তে,formattedAddress
বৈশিষ্ট্য ব্যবহার করুন, যা একটি স্থানীয় বিন্যাসিত ঠিকানা প্রদান করে।addressComponents
অ্যারে সম্পর্কে নিম্নলিখিত তথ্যগুলি নোট করুন:- ঠিকানা উপাদানগুলির অ্যারেতে
formattedAddress
ঠিকানার চেয়ে বেশি উপাদান থাকতে পারে। - বিন্যাসে অগত্যা সমস্ত রাজনৈতিক সত্ত্বাকে অন্তর্ভুক্ত করে না যেগুলির মধ্যে একটি ঠিকানা রয়েছে,
formattedAddress
অন্তর্ভুক্ত করা ছাড়াও৷ - অনুরোধের মধ্যে প্রতিক্রিয়ার বিন্যাস একই থাকার নিশ্চয়তা দেওয়া হয় না। বিশেষ করে,
addressComponents
সংখ্যা অনুরোধ করা ঠিকানার উপর ভিত্তি করে পরিবর্তিত হয় এবং একই ঠিকানার জন্য সময়ের সাথে সাথে পরিবর্তিত হতে পারে। একটি উপাদান অ্যারে অবস্থান পরিবর্তন করতে পারেন. উপাদানের ধরন পরিবর্তন হতে পারে। পরবর্তী প্রতিক্রিয়ায় একটি নির্দিষ্ট উপাদান অনুপস্থিত হতে পারে।
- ঠিকানা উপাদানগুলির অ্যারেতে
-
userRatingsTotal
– কতগুলি রিভিউ স্থানের রেটিং তৈরি করে তা প্রতিনিধিত্ব করে।
GMSPlace
ক্লাসে নিম্নলিখিত সদস্য ফাংশন রয়েছে:
-
openingHours
এবংUTCOffsetMinutes
এবং বর্তমান তারিখ ও সময়ের উপর ভিত্তি করেisOpen
নির্দিষ্ট সময়ে একটি স্থান খোলা আছে কিনা তা গণনা করে। -
openingHours
এবংUTCOffsetMinutes
এবং বর্তমান তারিখ ও সময়ের উপর ভিত্তি করেisOpenAtDate
একটি নির্দিষ্ট তারিখে একটি স্থান খোলা আছে কিনা তা গণনা করে।
খোলার সময় এবং/অথবা তারিখগুলি পেতে এই ফাংশনগুলি ব্যবহার করার সময়, আসল fetchPlaceFromPlaceID:
বা findPlaceLikelihoodsFromUserLocationWithPlaceFields:
অনুরোধে অবশ্যই GMSPlaceFieldOpeningHours
এবং GMSPlaceFieldUTCOffsetMinutes
উভয় ক্ষেত্র নির্দিষ্ট করতে হবে। যদি এই ক্ষেত্রগুলির যেকোন একটি অনুপস্থিত থাকে, ফলে GMSPlace
অবজেক্টে খোলার সময় বা তারিখ থাকবে না এবং কলটি GMSPlaceOpenStatusUnknown
ফেরত দেবে। সঠিক ফলাফল নিশ্চিত করতে, আপনার আসল স্থানের অনুরোধে GMSPlaceFieldBusinessStatus
এবং GMSPlaceFieldUTCOffsetMinutes
ক্ষেত্রগুলির জন্য অনুরোধ করুন। যদি অনুরোধ না করা হয় তবে ধরে নেওয়া হয় যে ব্যবসাটি চালু আছে।
isOpen
কীভাবে ব্যবহার করবেন তার জন্য এই ভিডিওটি দেখুন।ব্যতিক্রমী ঘন্টা পান
যদিও নিয়মিত খোলার সময়openingHours
সময় প্রাপ্ত হয়, currentOpeningHours
এবং secondaryOpeningHours
ছুটি এবং অস্থায়ী সময়সূচী পরিবর্তন সমর্থন করে। এই বিশেষ দিনগুলির জন্য ব্যতিক্রমী সময়গুলি ফিল্টার করা যেতে পারে এবং উপলব্ধ থাকলে উপস্থাপন করা যেতে পারে। সুইফট
func examineOpeningHours(place: GMSPlace) { // Check if the current opening hours contains a special day that has exceptional hours guard let currentOpeningHours = place.currentOpeningHours else { return } if let specialDays = currentOpeningHours.specialDays { guard !specialDays.isEmpty else { return } if let specialDay = specialDays.filter { $0.isExceptional }.first { // Indicate exceptional hours } } // Check if current opening hours contains a truncated time period let periods = currentOpeningHours.periods if !periods.isEmpty { for period in periods { let open = period.open let close = period.close if let open = open { let date = open.date if open.isTruncated { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available let secondaryOpeningHours = place.secondaryOpeningHours guard let hoursType = secondaryOpeningHours.first?.hoursType else { return } if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
উদ্দেশ্য-C
- (void)examineOpeningHours:(GMSPlace *) place { // Check if the current opening hours contains a special day that has exceptional hours GMSOpeningHours *currentOpeningHours = place.currentOpeningHours; if (currentOpeningHours != nil) { NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays; if ([specialDays count] != 0) { for (GMSPlaceSpecialDay *specialDay in specialDays) { NSDate *date = specialDay.date; if ([specialDay isExceptional]) { // Indicate exceptional hours } } } } // Check if current opening hours contains a truncated time period NSArray <GMSPeriod *> * periods = currentOpeningHours.periods; if ([periods count] != 0) { for (GMSPeriod * period in periods) { GMSTimeOfWeek *open = period.open; GMSTimeOfWeek *close = period.close; if (open) { if ([open isTruncated]) { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours; GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType; if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
আইডি দ্বারা একটি স্থান পান
একটি স্থান আইডি একটি পাঠ্য শনাক্তকারী যা একটি স্থানকে অনন্যভাবে সনাক্ত করে। iOS এর জন্য Places SDK-এ, আপনি একটি GMSPlace
অবজেক্ট থেকে একটি জায়গার আইডি পুনরুদ্ধার করতে পারেন। আপনি স্থান আইডি সংরক্ষণ করতে পারেন এবং পরে আবার GMSPlace
অবজেক্ট পুনরুদ্ধার করতে এটি ব্যবহার করতে পারেন।
আইডি দ্বারা একটি স্থান পেতে, GMSPlacesClient fetchPlaceFromPlaceID:
, নিম্নলিখিত পরামিতিগুলি পাস করে কল করুন:
- একটি স্থান আইডি ধারণকারী একটি স্ট্রিং।
- এক বা একাধিক
GMSPlaceField
s, প্রত্যাবর্তনের জন্য ডেটা প্রকারগুলি নির্দিষ্ট করে৷ - একটি সেশন টোকেন যদি একটি স্বয়ংসম্পূর্ণ ক্যোয়ারী শেষ করতে কল করা হয়। অন্যথায়, শূন্য পাস.
- ফলাফল পরিচালনা করতে একটি
GMSPlaceResultCallback
.
এপিআই একটি GMSPlace
অবজেক্টে পাস করে নির্দিষ্ট কলব্যাক পদ্ধতির আহ্বান করে। স্থান পাওয়া না গেলে, স্থান বস্তুটি শূন্য।
সুইফট
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
উদ্দেশ্য-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
আপনার অ্যাপে বৈশিষ্ট্য প্রদর্শন করুন
যখন আপনার অ্যাপ GMSPlacesClient lookUpPlaceID:callback:
থেকে প্রাপ্ত তথ্য প্রদর্শন করে, তখন অ্যাপটিকে অবশ্যই বৈশিষ্ট্যও প্রদর্শন করতে হবে। বৈশিষ্ট্যের ডকুমেন্টেশন দেখুন।
স্থান আইডি সম্পর্কে আরো
iOS-এর জন্য Places SDK-এ ব্যবহৃত স্থান আইডি একই শনাক্তকারী যা Places API, Places SDK-এর জন্য Android এবং অন্যান্য Google API- এ ব্যবহৃত হয়।
প্রতিটি স্থানের আইডি শুধুমাত্র একটি স্থান উল্লেখ করতে পারে, কিন্তু একটি একক স্থানে একাধিক স্থানের আইডি থাকতে পারে।
এমন পরিস্থিতি রয়েছে যার কারণে একটি নতুন জায়গার আইডি পেতে পারে। উদাহরণস্বরূপ, এটি ঘটতে পারে যদি একটি ব্যবসা একটি নতুন অবস্থানে চলে যায়।
যখন আপনি একটি জায়গার আইডি নির্দিষ্ট করে একটি জায়গার জন্য অনুরোধ করেন, তখন আপনি নিশ্চিত হতে পারেন যে আপনি উত্তরে সবসময় একই জায়গা পাবেন (যদি জায়গাটি এখনও বিদ্যমান থাকে)। মনে রাখবেন, যাইহোক, প্রতিক্রিয়াটিতে এমন একটি জায়গার আইডি থাকতে পারে যা আপনার অনুরোধের থেকে আলাদা।
আরও তথ্যের জন্য, স্থান আইডি ওভারভিউ দেখুন।