مکان فعلی

پلتفرم را انتخاب کنید: Android iOS

با استفاده از Places SDK برای iOS، می توانید مکانی را که دستگاه در حال حاضر در آن قرار دارد، پیدا کنید. یعنی مکانی در مکان گزارش شده دستگاه در حال حاضر. نمونه‌هایی از مکان‌ها شامل مشاغل محلی، نقاط دیدنی و مکان‌های جغرافیایی است.

  1. درخواست مجوز مکان
  2. محدودیت های استفاده
  3. مکان فعلی را دریافت کنید
  4. اسناد را در برنامه خود نمایش دهید

درخواست مجوز مکان

اگر برنامه شما از GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: برنامه شما باید برای استفاده از خدمات مکان درخواست مجوز کند. کلید NSLocationWhenInUseUsageDescription را به فایل Info.plist خود اضافه کنید تا رشته ای را تعریف کنید که به کاربر اطلاع می دهد چرا به خدمات مکان نیاز دارید. به عنوان مثال:

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

اگر می‌خواهید findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: وقتی برنامه در پس‌زمینه است، بدون راه‌اندازی گفتگوی تأیید، مراحل زیر را قبل از برقراری تماس انجام دهید:

  1. کلید NSLocationAlwaysUsageDescription به فایل Info.plist خود اضافه کنید.
  2. قبل از فراخوانی متد، requestAlwaysAuthorization در هر نمونه از CLLocationManager فراخوانی کنید.

درخواست مجوز از CLLocationManager به شرح زیر:

سویفت

    locationManager.requestAlwaysAuthorization()
    

هدف-C

    [self.locationManager requestAlwaysAuthorization];
    

دریافت مکان فعلی

برای یافتن کسب و کار محلی یا مکان دیگری که دستگاه در حال حاضر در آن قرار دارد، با GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: پارامترهای زیر را شامل شود:

  • یک یا چند عدد GMSPlaceField که مشخص می کند کدام نوع داده را برگرداند. اگر این پارامتر را حذف کنید، تمام فیلدهای ممکن برگردانده می شوند و بر اساس آن صورتحساب به شما تعلق می گیرد. این فقط برای درخواست‌های جزئیات مکان اعمال می‌شود.
  • روشی برای کنترل نتایج.

فیلدها با نتایج جستجوی مکان مطابقت دارند و به سه دسته صورتحساب تقسیم می شوند: Basic، Contact، و Atmosphere. فیلدهای اصلی با نرخ پایه صورت‌حساب می‌شوند و هیچ هزینه اضافی متحمل نمی‌شوند. فیلدهای تماس و جو با نرخ بالاتری صورت‌حساب می‌شوند. برای اطلاعات بیشتر درباره نحوه صدور صورت‌حساب درخواست‌های داده مکان، استفاده و صورت‌حساب را ببینید.

API روش برگشت تماس مشخص شده را فراخوانی می کند و آرایه ای از اشیاء GMSPlaceLikelihood را برمی گرداند.

هر شی GMSPlaceLikelihood یک مکان را نشان می دهد. برای هر مکان، نتیجه شامل نشانه ای از احتمال درست بودن مکان است. مقدار بالاتر به معنای احتمال بیشتر است که مکان بهترین تطابق است. اگر مکان شناخته شده ای برای مکان دستگاه وجود نداشته باشد، ممکن است بافر خالی باشد.

نمونه کد زیر فهرستی از مکان‌هایی را بازیابی می‌کند که احتمالاً دستگاه در آن‌ها قرار دارد، و نام و احتمال هر مکان را ثبت می‌کند.

سویفت

// 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))")
    }
  }
})

هدف-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);
    }
  }
}];

نکاتی در مورد مقادیر احتمال:

  • احتمال یک احتمال نسبی را فراهم می کند که مکان بهترین مطابقت در لیست مکان های برگشتی برای یک درخواست واحد باشد. شما نمی توانید احتمالات را در درخواست های مختلف مقایسه کنید.
  • مقدار احتمال بین 0 تا 1.0 خواهد بود.
  • مجموع احتمالات در یک آرایه برگشتی از اشیاء GMSPlaceLikelihood همیشه کمتر یا مساوی 1.0 است. توجه داشته باشید که مجموع لزوماً 1.0 نیست.

به عنوان مثال، برای نشان دادن احتمال 55٪ که مکان صحیح مکان A است، و احتمال 35٪ که مکان B است، آرایه احتمال دارای دو عضو است: مکان A با احتمال 0.55 و مکان B با احتمال 0.35.

نمایش اسناد در برنامه شما

هنگامی که برنامه شما اطلاعات به دست آمده از GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: برنامه همچنین باید اسناد را نمایش دهد. درباره اسناد بیشتر بخوانید.