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

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: থেকে পাওয়া তথ্য দেখায়, তখন অ্যাপকে অবশ্যই অ্যাট্রিবিউশনও দেখাতে হবে। অ্যাট্রিবিউশন সম্পর্কে আরও জানুন।