صور المكان

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

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

  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 في Foundation في NSURLCache المشترَكة.

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

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

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

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

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

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