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

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

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

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