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

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

يمكنك التعرّف على المكان الذي يقع فيه الجهاز حاليًا باستخدام حزمة تطوير البرامج (SDK) لأماكن Google على نظام التشغيل 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 واحدة أو أكثر، مع تحديد أنواع البيانات التي يتم عرضها وفي حال حذف هذه المعلَمة، سيتم عرض جميع الحقول المحتمَلة، وسيتمّ تحصيل الرسوم منك وفقًا لذلك. وينطبق هذا فقط على طلبات تفاصيل المكان.
  • طريقة رد اتصال لمعالجة النتائج.

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

تستدعي واجهة برمجة التطبيقات طريقة معاودة الاتصال المحدّدة، لعرض مجموعة من العناصر 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% أنه "المكان ب"، فإن مصفوفة الاحتمال تحتوي على عضوين: "المكان "أ" مع الاحتمال 0.55 والمكان "ب" مع الاحتمال 0.35.

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

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