يمكنك استخدام 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 مع حزمة تطوير البرامج Places SDK لنظام التشغيل iOS، يمكنك إنشاء NSURLCache جديد واستخدامه حصريًا داخل تطبيقك بدون ضبطه كذاكرة تخزين مؤقت مشتركة.
عمليات تحديد المصدر
في معظم الحالات، يمكن استخدام صور الأماكن بدون الإشارة إلى المصدر، أو سيتم تضمين الإشارة المطلوبة إلى المصدر كجزء من الصورة. ومع ذلك، إذا كان عنصر GMSPlacePhotoMetadata الذي تم عرضه يتضمّن معلومات تحديد المصدر، عليك تضمين معلومات تحديد المصدر الإضافية في تطبيقك في أي مكان تعرض فيه الصورة. يُرجى العِلم أنّه يجب أن تكون الروابط في معلومات تحديد المصدر قابلة للنقر. يمكنك الاطّلاع على المستندات حول الإحالات.
سقف الاستخدام
تتطلّب استرداد صورة وحدة واحدة من الحصة، ولا توجد حدود للاستخدام عند استرداد البيانات الوصفية للصور. مزيد من المعلومات حول الاستخدام والفوترة