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

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