صور المكان

اختيار النظام الأساسي: 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 الذي تم عرضه يتضمّن سمة، عليك تضمين السمة الإضافية في تطبيقك أينما تعرض الصورة. ملاحظة: يجب أن تكون الروابط ضمن معلومات تحديد المصدر قابلة للنقر. اطّلِع على المستندات المتعلّقة بالإحالات.

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

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