صور المكان

اختَر النظام الأساسي: 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 مع حزمة SDK للأماكن لنظام التشغيل iOS، يمكنك إنشاء NSURLCache جديد واستخدام هذا فقط داخل تطبيقك بدون تعيينه كذاكرة تخزين مؤقت مشتركة.

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

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

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

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