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