المكان الحالي

اختيار النظام الأساسي: Android iOS

باستخدام حزمة تطوير برامج الأماكن لأجهزة 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 على النحو التالي:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

جارٍ الحصول على الموقع الجغرافي الحالي

للعثور على النشاط التجاري المحلي أو مكان آخر يوجد فيه الجهاز حاليًا موقع جغرافي، اتصال GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: تضمين المعلمات التالية:

  • GMSPlaceField واحد أو أكثر، مع تحديد أنواع البيانات للرجوع. إذا حذفت هذه المعلمة، سيتم عرض جميع الحقول المحتملة سيتم تحصيل الرسوم منك وفقًا لذلك. ينطبق ذلك فقط على طلبات "تفاصيل المكان".
  • طريقة معاودة الاتصال لمعالجة النتائج.

وتتطابق الحقول مع نتائج البحث عن الأماكن، وتنقسم إلى ثلاث فئات فوترة: الأساسي، والتواصل، والأجواء. تتم فوترة الحقول الأساسية بالسعر الأساسي، ولن يتم تحصيل أي رسوم إضافية الرسوم. يتم تحصيل الرسوم من حقلَي Contact وAtmosphere بسعر أعلى. لمزيد من المعلومات حول كيفية إصدار فواتير طلبات بيانات الأماكن، راجع الاستخدام والفوترة:

تستدعي واجهة برمجة التطبيقات طريقة معاودة الاتصال المحددة، وتعرض مصفوفة من 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);
    }
  }
}];

ملاحظات حول قيم الاحتمالية:

  • توفر الاحتمالية احتمالية نسبية للمكان الذي يمثل أفضل تطابق داخل قائمة الأماكن التي تم إرجاعها في طلب واحد. لا يمكنك مقارنة الاحتمالات عبر الطلبات المختلفة.
  • ستكون قيمة الاحتمال بين 0 و1.0.
  • مجموع الاحتمالات في صفيف من GMSPlaceLikelihood الكائنات دائمًا أقل من أو تساوي 1.0. لاحظ أن المجموع ليس بالضرورة 1.0.

فعلى سبيل المثال، لتمثيل احتمال 55% أن المكان الصحيح هو المكان أ، واحتمال بنسبة 35% أن يكون المكان ب، فإن صفيفة الاحتمالية تضم عضوين: ضع A مع احتمال 0.55 ضع بـ باحتمالية 0.35.

عرض الإحالات في تطبيقك

عندما يعرض تطبيقك معلومات تم الحصول عليها من GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:، يتضمن التطبيق يجب أن يعرض أيضًا الإحالات. مزيد من المعلومات عن الإحالة.