المكان الحالي (الإصدار القديم)

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

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:، يجب أن يعرض التطبيق أيضًا معلومات تحديد المصدر. مزيد من المعلومات حول الإحالات