صور المكان

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

  1. اتّصِل بالرقم [GMSPlacesClient fetchPlaceFromPlaceId]، مع تمرير سلسلة تتضمّن معرّف مكان ودالّة ردّ الاتصال. سيؤدي ذلك إلى استدعاء دالة المعالجة باستخدام الكائن GMSPlacePhotoMetadataList.
  2. في GMSPlacePhotoMetadataList object access the results property واختَر الصور التي تريد تحميلها من المصفوفة.
  3. بالنسبة إلى كل GMSPlacePhotoMetadata يجب استدعاء [GMSPlacesClient loadPlacePhoto:callback:] أو [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] لتحميله من هذه القائمة. ستطلب هذه الدوال رد الاتصال باستخدام UIImage قابل للاستخدام. يمكن أن يبلغ الحد الأقصى لعرض الصور أو ارتفاعها 1600 بكسل.

نموذج التعليمات البرمجية

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

Swift

// Specify the place data types to return (in this case, just photos).
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.photos.rawValue))!

placesClient?.fetchPlace(fromPlaceID: "INSERT_PLACE_ID_HERE",
                         placeFields: fields,
                         sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    // Get the metadata for the first photo in the place photo metadata list.
    let photoMetadata: GMSPlacePhotoMetadata = place.photos![0]

    // Call loadPlacePhoto to display the bitmap and attribution.
    self.placesClient?.loadPlacePhoto(photoMetadata, callback: { (photo, error) -> Void in
      if let error = error {
        // TODO: Handle the error.
        print("Error loading photo metadata: \(error.localizedDescription)")
        return
      } else {
        // Display the first image and its attributions.
        self.imageView?.image = photo;
        self.lblText?.attributedText = photoMetadata.attributions;
      }
    })
  }
})

Objective-C

// Specify the place data types to return (in this case, just photos).
GMSPlaceField fields = (GMSPlaceFieldPhotos);

NSString *placeId = @"INSERT_PLACE_ID_HERE";

[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    GMSPlacePhotoMetadata *photoMetadata = [place photos][0];
    [self->_placesClient loadPlacePhoto:photoMetadata callback:^(UIImage * _Nullable photo, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"Error loading photo metadata: %@", [error localizedDescription]);
        return;
      } else {
        // Display the first image and its attributions.
        self->imageView.image = photo;
        self->lblText.attributedText = photoMetadata.attributions;
      }
    }];
  }
}];

التخزين المؤقت

يتم تخزين الصور التي يتم تحميلها باستخدام [GMSPlacesClient loadPlacePhoto:callback:] أو [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] مؤقتًا على القرص وفي الذاكرة بواسطة نظام تحميل عناوين URL في Foundation في NSURLCache المشترَك.

لضبط سلوك التخزين المؤقت، يمكنك تغيير ذاكرة التخزين المؤقت لعنوان URL المشترَك باستخدام [NSURLCache setSharedURLCache:] في طريقة application:didFinishLaunchingWithOptions: لمندوب التطبيق.

إذا كنت لا تريد أن يشارك تطبيقك NSURLCache مع حزمة تطوير البرامج Places SDK لنظام التشغيل iOS، يمكنك إنشاء NSURLCache جديد واستخدامه حصريًا داخل تطبيقك بدون ضبطه كذاكرة تخزين مؤقت مشتركة.

عمليات تحديد المصدر

في معظم الحالات، يمكن استخدام صور الأماكن بدون الإشارة إلى المصدر، أو سيتم تضمين الإشارة المطلوبة إلى المصدر كجزء من الصورة. ومع ذلك، إذا كان العنصر الذي تم عرضه GMSPlacePhotoMetadata يتضمّن معلومات تحديد المصدر، عليك تضمين هذه المعلومات في تطبيقك في أي مكان تعرض فيه الصورة. يُرجى العِلم أنّه يجب أن تكون الروابط في معلومات تحديد المصدر قابلة للنقر. يمكنك الاطّلاع على المستندات حول المصادر.

حدود الاستخدام

تتطلّب استعادة صورة وحدة واحدة من الحصة، ولا توجد حدود للاستخدام عند استعادة البيانات الوصفية للصور. مزيد من المعلومات حول الاستخدام والفوترة