صور المكان

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

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

  1. رمز الاتصال [GMSPlacesClient fetchPlaceFromPlaceId]، عبر سلسلة مع معرّف المكان ومعاودة الاتصال سيؤدي هذا إلى استدعاء معاودة الاتصال باستخدام عنصر GMSPlacePhotoMetadataList.
  2. في العنصر GMSPlacePhotoMetadataList اطّلِع على السمة results واختَر الصور التي تريد تحميلها من المصفوفة.
  3. لكل GMSPlacePhotoMetadata للتحميل من قائمة القائمة هذه، اتصل [GMSPlacesClient loadPlacePhoto:callback:] أو [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]. سيؤدي هذا إلى استدعاء رد الاتصال مع توفر صورة واجهة مستخدم قابلة للاستخدام. يمكن أن يصل حجم الصور إلى 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 المعروضة تتضمن إحالة، عليك تضمين الإحالة الإضافية في تطبيقك أينما تعرض الصورة. يُرجى العِلم أنّ الروابط التي تظهر في الإحالة يجب أن تكون قابلة للنقر. راجِع المواد المتعلقة بالإحالات.

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

يسترد استرداد الصورة وحدة واحدة من الحصة، ولا تُفرض حدود على الاستخدام لاسترداد البيانات الوصفية للصور. مزيد من المعلومات حول الاستخدام والفوترة