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

تتيح حزمة تطوير البرامج (SDK) للأماكن لنظام التشغيل iOS (الإصدار القديم) استخدام صور الأماكن (الإصدار القديم). إذا كنت على دراية بخدمة 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
    }
  }];
}];