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