النقل إلى تفاصيل المكان (جديد)

تتيح Places API (الإصدار القديم) استخدام تفاصيل المكان (الإصدار القديم). إذا كنت معتادًا على Places API (الإصدار القديم)، تُجري خدمة تفاصيل المكان (جديدة) التغييرات التالية:

  • تستخدِم نموذج أسعار جديدًا. للاطّلاع على معلومات الأسعار الخاصة بجميع واجهات برمجة التطبيقات، يُرجى الانتقال إلى الاستخدام والفوترة.

  • يجب إخفاء الحقول. يجب تحديد الحقول التي تريد عرضها في الردّ. لا تتوفّر قائمة تلقائية بالحقول المعروضة. إذا حذفت هذه القائمة، ستعرض الطرق رسالة خطأ.

  • لتقديم طلب، اتّصِل بالطريقة الجديدة GMSPlacesClient fetchPlaceWithRequest:.

  • مرِّر ما يلي إلى الطلب:

    • مثيل لفئة GMSFetchPlaceRequest الجديدة التي تحدّد جميع مَعلمات الطلب، مثل معرّف المكان والرمز المميز للجلسة

    • دالة استدعاء من النوع GMSPlaceResultCallback للتعامل مع الاستجابة

  • تحتوي الاستجابة على مثيل GMSPlace يتضمّن تفاصيل حول المكان. يتم الآن تحديد القيم في السمة types الخاصة بمثيل GMSPlace من خلال الجدول أ والجدول ب.

  • يحتوي مثال الاستجابة GMSPlace على السمة الجديدة reviews من النوع GMSPlaceReview. عندما يعرض تطبيقك معلومات تم الحصول عليها من مثيل GMSPlace، مثل الصور والمراجعات، يجب أن يعرض التطبيق أيضًا معلومات تحديد المصدر المطلوبة.

    لمزيد من المعلومات، يمكنك الاطّلاع على المستندات حول عمليات تحديد المصدر.

  • يحتوي مثيل الاستجابة GMSPlace على دوال الأعضاء التالية:

    • isOpen تحسب هذه السمة ما إذا كان المكان مفتوحًا في الوقت المحدّد.

    • isOpenAtDate تحسب هذه السمة ما إذا كان المكان مفتوحًا في تاريخ معيّن.

    لا تتوفّر هذه الدوال إلا عند تفعيل Places SDK لنظام التشغيل iOS. ولا تتوفّر عند تفعيل حزمة تطوير البرامج بالاستناد إلى بيانات "الأماكن" لتطبيقات iOS (الإصدار الجديد). لمزيد من المعلومات، يُرجى الاطّلاع على اختيار إصدار حزمة SDK.

مثال على الطلب

باستخدام "تفاصيل المكان (جديد)"، يمكنك إرسال طلب وتمرير جميع المَعلمات في مثيل GMSFetchPlaceRequest. يستخدم هذا المثال أيضًا قناع حقل حتى تتضمّن الاستجابة اسم العرض وعنوان URL للموقع الإلكتروني الخاص بالمكان فقط:

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];