نقل البيانات إلى ميزة "صور الأماكن" (ميزة جديدة)

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

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

  • كانت واجهة برمجة التطبيقات Place Photos (القديمة) تتيح استخدام صور بحجم أقصى يبلغ 1600 × 1600 بكسل. تتيح واجهة برمجة التطبيقات Place Photos (New) استخدام أحجام تصل إلى 4800 × 4800 بكسل.

  • لتقديم طلب، يمكنك استدعاء الطريقة الجديدة GMSPlacesClient fetchPhotoWithRequest:callback:.

  • يتم تمريرها إلى الطلب:

    • مثيل لفئة GMSFetchPhotoRequest الجديدة التي تحدّد جميع مَعلمات الطلب، بما في ذلك الحد الأقصى لحجم الصورة

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

  • يتم تمثيل كل صورة من خلال مثيل GMSPlacePhotoMetadata. في الإصدار الجديد من حزمة تطوير البرامج بالاستناد إلى الموقع الجغرافي لنظام التشغيل iOS، يحتوي مثيل GMSPlacePhotoMetadata على حقل authorAttribution جديد يمثّله الصف GMSPlaceAuthorAttribution الجديد.

    إذا كان مثيل GMSPlacePhotoMetadata الذي تم عرضه يتضمّن attributions أو authorAttribution، يجب تضمين هذه المعلومات في تطبيقك في أي مكان تعرض فيه الصورة. يمكنك الاطّلاع على المستندات حول عمليات تحديد المصدر.

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

تأخذ الطريقة في المثال التالي رقم تعريف المكان وتحصل على الصورة الأولى في القائمة التي تم عرضها. يمكنك استخدام هذه الطريقة كقالب للطريقة التي ستنشئها في تطبيقك الخاص.

Swift

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

// Request list of photos for a place
placesClient.lookUpPhotos(forPlaceID: placeID) { (photos, error) in

  guard let photoMetadata: GMSPlacePhotoMetadata = photos?.results[0] else {
    return }

  // Request individual photos in the response list
  let fetchPhotoRequest = GMSFetchPhotoRequest(photoMetadata: photoMetadata, maxSize: CGSizeMake(4800, 4800))
  self.client.fetchPhoto(with: fetchPhotoRequest, callback: {
    (photoImage: UIImage?, error: Error?) in
      guard let photoImage, error == nil else {
        print("Handle photo error: ")
        return }
      print("Display photo Image: ")
    }
  )
}

Objective-C

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

[placesClient lookUpPhotosForPlaceID:placeID callback: ^(GMSPlacePhotoMetadataList *list, NSError *error) {
  GMSPlacePhotoMetadata *photoMetadata = [list results][0];

  // Request individual photos in the response list
  GMSFetchPhotoRequest *fetchPhotoRequest = [[GMSFetchPhotoRequest alloc] initWithPhotoMetadata:photoMetadata maxSize:CGSizeMake(4800, 4800)];
  [placesClient fetchPhotoWithRequest:fetchPhotoRequest callback: ^(UIImage *_Nullable photoImage, NSError *_Nullable error) {
    if (error == nil) {
      // Display photo
    }
  }];
}];