نقل إلى صورة المكان (جديد)

تتيح حزمة تطوير برامج "الأماكن" لأجهزة iOS استخدام ميزة صورة المكان الحالية. إذا كنت على دراية بالميزات الحالية في "صورة المكان"، يُجري الإصدار الجديد من "صورة المكان" التغييرات التالية:

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

  • كانت "صورة المكان" الحالية تتيح استخدام صور بحجم 1600 × 1600 بكسل كحد أقصى. تتيح ميزة "صورة المكان" (الإصدار الجديد) استخدام أحجام تصل إلى 4800 × 4800 بكسل.

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

  • عليك إرسال ما يلي إلى الطلب:

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

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

  • يتم تمثيل كل صورة من خلال مثيل GMSPlacePhotoMetadata. بالنسبة إلى حزمة Places SDK لأجهزة 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
    }
  }];
}];