বর্তমান জায়গা (লিগ্যাসি)

iOS-এর জন্য Places SDK ব্যবহার করে, আপনি সেই জায়গাটি খুঁজে পেতে পারেন যেখানে ডিভাইসটি বর্তমানে অবস্থিত। অর্থাৎ, ডিভাইসের বর্তমানে-রিপোর্ট করা লোকেশনে থাকা জায়গা। জায়গার উদাহরণের মধ্যে স্থানীয় ব্যবসা, উল্লেখযোগ্য স্থান এবং ভৌগোলিক লোকেশন অন্তর্ভুক্ত।

  1. লোকেশন অনুমোদনের জন্য অনুরোধ করা
  2. ব্যবহারের সীমা
  3. বর্তমান লোকেশন জানুন
  4. আপনার অ্যাপে অ্যাট্রিবিউশন দেখানো

লোকেশন অনুমোদনের অনুরোধ করা হচ্ছে

আপনার অ্যাপ GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: ব্যবহার করলে, লোকেশন পরিষেবা ব্যবহার করার জন্য আপনার অ্যাপকে অবশ্যই অনুমতি চাইতে হবে। আপনার Info.plist ফাইলে NSLocationWhenInUseUsageDescription কী যোগ করুন, যাতে স্ট্রিং নির্ধারণ করে ব্যবহারকারীকে জানানো যায় যে কেন আপনার লোকেশন পরিষেবা প্রয়োজন। যেমন:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

অ্যাপ ব্যাকগ্রাউন্ডে থাকাকালীন, কনফার্মেশন ডায়ালগ ট্রিগার না করে, আপনি findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:-কে কল করতে চাইলে, কল করার আগে নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. আপনার Info.plistফাইলে NSLocationAlwaysUsageDescription কী যোগ করুন।
  2. মেথডটিকে কল করার আগে CLLocationManager-এর যেকোনও ইনস্ট্যান্সে requestAlwaysAuthorization-কে কল করুন।

CLLocationManager-এর থেকে নিম্নলিখিত উপায়ে অনুমোদনের অনুরোধ করুন:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

বর্তমান লোকেশন বের করা হচ্ছে

ডিভাইসটি বর্তমানে যে স্থানীয় ব্যবসা বা অন্য জায়গায় আছে তা খুঁজে পেতে, GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:-এ কল করুন। নিম্নলিখিত প্যারামিটার অন্তর্ভুক্ত করুন:

  • এক বা একাধিক GMSPlaceField, কোন ডেটার ধরন ফেরত দিতে হবে তা নির্দিষ্ট করে। আপনি এই প্যারামিটার বাদ দিলে, সম্ভাব্য সব ফিল্ড ফেরত পাঠানো হবে এবং আপনাকে সেই অনুযায়ী বিল করা হবে। এটি শুধুমাত্র জায়গার বিবরণ সংক্রান্ত অনুরোধের ক্ষেত্রে প্রযোজ্য।
  • ফলাফল ম্যানেজ করার জন্য একটি কলব্যাক পদ্ধতি।

ফিল্ডগুলি জায়গা সার্চ করার ফলাফলের সাথে সম্পর্কিত এবং তিনটি বিলিং বিভাগে বিভক্ত: বেসিক, পরিচিতি এবং পরিবেশ। বেসিক ফিল্ডের জন্য বেস রেটে বিল করা হয় এবং কোনও অতিরিক্ত চার্জ লাগে না। যোগাযোগ এবং পরিবেশ সংক্রান্ত ফিল্ডের জন্য বেশি রেটে বিল করা হয়। জায়গার ডেটা সংক্রান্ত অনুরোধের জন্য কীভাবে বিল করা হয় সেই সম্পর্কে আরও তথ্য পেতে, ব্যবহার ও বিলিং দেখুন।

API নির্দিষ্ট কলব্যাক পদ্ধতিকে কল করে, GMSPlaceLikelihood অবজেক্টের একটি অ্যারে ফেরত দেয়।

প্রতিটি GMSPlaceLikelihood অবজেক্ট একটি জায়গাকে দেখায়। প্রতিটি জায়গার জন্য, ফলাফলটিতে একটি ইঙ্গিত অন্তর্ভুক্ত থাকে যে জায়গাটি সঠিক হওয়ার সম্ভাবনা কতটা। ভ্যালু বেশি হলে জায়গাটি সবচেয়ে ভালভাবে ম্যাচ করার সম্ভাবনাও বেশি হয়। ডিভাইসের লোকেশন অনুযায়ী কোনও পরিচিত জায়গা না থাকলে, বাফার খালি থাকতে পারে।

নিম্নলিখিত কোড স্যাম্পেল সেইসব জায়গার তালিকা ফিরিয়ে আনে যেখানে ডিভাইসটি থাকার সম্ভাবনা সবচেয়ে বেশি এবং প্রতিটি জায়গার নাম ও সম্ভাবনা লগ করে।

Swift

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
                                          UInt(GMSPlaceField.placeID.rawValue))!
placesClient?.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: fields, callback: {
  (placeLikelihoodList: Array<GMSPlaceLikelihood>?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }

  if let placeLikelihoodList = placeLikelihoodList {
    for likelihood in placeLikelihoodList {
      let place = likelihood.place
      print("Current Place name \(String(describing: place.name)) at likelihood \(likelihood.likelihood)")
      print("Current PlaceID \(String(describing: place.placeID))")
    }
  }
})

Objective-C

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
[_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:fields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (likelihoods != nil) {
    for (GMSPlaceLikelihood *likelihood in likelihoods) {
      GMSPlace *place = likelihood.place;
      NSLog(@"Current place name: %@", place.name);
      NSLog(@"Place ID: %@", place.placeID);
    }
  }
}];

সম্ভাবনার ভ্যালু সম্পর্কে নোট:

  • সম্ভাবনা, একটি অনুরোধের জন্য ফেরত আসা স্থানের তালিকার মধ্যে স্থানটি সবচেয়ে উপযুক্ত হওয়ার আপেক্ষিক সম্ভাবনা প্রদান করে। আপনি বিভিন্ন অনুরোধ জুড়ে সম্ভাবনা তুলনা করতে পারবেন না।
  • সম্ভাবনার মান ০ থেকে ১.০-এর মধ্যে হবে।
  • GMSPlaceLikelihood অবজেক্টের ফেরত পাঠানো অ্যারেতে সম্ভাবনার যোগফল সবসময় ১.০-এর থেকে কম বা সমান হয়। মনে রাখবেন, যোগফল যে ১.০ হতে হবে এমন কোনও বাধ্যবাধকতা নেই।

যেমন, সঠিক জায়গাটি যে জায়গা A হওয়ার সম্ভাবনা ৫৫% এবং জায়গা B হওয়ার সম্ভাবনা ৩৫%, তা দেখানোর জন্য সম্ভাবনার অ্যারেতে দুটি মেম্বার থাকবে: জায়গা A-এর সম্ভাবনা ০.৫৫ এবং জায়গা B-এর সম্ভাবনা ০.৩৫।

আপনার অ্যাপে অ্যাট্রিবিউশন দেখানো

আপনার অ্যাপে GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: থেকে পাওয়া তথ্য দেখানো হলে, অ্যাপে অ্যাট্রিবিউশনও দেখাতে হবে। অ্যাট্রিবিউশন সম্পর্কে আরও জানুন।