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

تتيح حزمة تطوير برامج "الأماكن" لأجهزة 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
    }
  }];
}];