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