صور المكان

اختَر النظام الأساسي: Android iOS JavaScript خدمة الويب

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

  1. اتصل بـ [GMSPlacesClient fetchPlaceFromPlaceId]، مع تمرير سلسلة بها معرّف مكان ومعاودة اتصال. سيؤدي ذلك إلى استدعاء معاودة الاتصال باستخدام كائن GMSPlacePhotoMetadataList.
  2. في الكائن GMSPlacePhotoMetadataList، عليك الوصول إلى السمة results واختيار الصور المطلوب تحميلها من المصفوفة.
  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 للمؤسسة في مساحة التخزين المشتركة NSURLCache.

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

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

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

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

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

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