میتوانید از «کیت توسعه نرمافزار مکانها برای iOS (قدیمی)» برای درخواست عکسهای مکان جهت نمایش در برنامهتان استفاده کنید. عکسهایی که سرویس عکس برمیگرداند از منابع مختلفی میآید، ازجمله مالکان کسبوکار و عکسهای همیاریشده توسط کاربران. برای بازیابی عکسهای یک مکان، باید مراحل زیر را انجام دهید:
- با ارسال رشتهای با شناسه مکان و تماس برگشتی،
[GMSPlacesClient fetchPlaceFromPlaceId]را فراخوانی کنید. با این کار، با شیءGMSPlacePhotoMetadataListبا پاسخبر تماس گرفته میشود. - در
GMSPlacePhotoMetadataListشیء بهresultsدارایی دسترسی پیدا کنید و عکسهای موردنظر را برای بار کردن از آرایه انتخاب کنید. - برای هر
GMSPlacePhotoMetadataبرای بار کردن از این فهرست، با[GMSPlacesClient loadPlacePhoto:callback:]یا[GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:]تماس بگیرید. اینها با UIImage قابلاستفادهای با تماس برگشتی تماس میگیرند. عکسها میتوانند حداکثر پهنا یا درازای ۱۶۰۰ پیکسل داشته باشند.
کدگذاری نمونه
روش مثال زیر شناسه مکان را میگیرد و اولین عکس را در فهرست برگرداندهشده دریافت میکند. میتوانید از این روش بهعنوان الگویی برای روشی که در برنامه خودتان ایجاد خواهید کرد استفاده کنید.
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; } }) } })
آبجکتیو-سی
// 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:]
بارگذاری میشوند، هم در دیسک و هم در حافظه توسط سیستم بارگذاری نشانی وب Foundation
در NSURLCache همرسانیشده ذخیره میشوند.
برای پیکربندی رفتار ذخیره در حافظه نهان، میتوانید حافظه نهان نشانی وب مشترک را بااستفاده از
[NSURLCache setSharedURLCache:]
در روش application:didFinishLaunchingWithOptions:
نماینده برنامه تغییر دهید.
اگر نمیخواهید برنامهتان NSURLCache را با
«کیت توسعه نرمافزار Places برای iOS» همرسانی کند، میتوانید NSURLCache جدیدی ایجاد کنید و از آن
منحصراً در برنامهتان استفاده کنید بدون اینکه آن را بهعنوان حافظه نهان همرسانیشده تنظیم کنید.
ارجاعها
در بیشتر موارد، میتوان از عکسهای مکان بدون ارجاع استفاده کرد، یا ارجاع موردنیاز بهعنوان بخشی از تصویر اضافه خواهد شد. بااینحال، اگر نمونه برگشتی
GMSPlacePhotoMetadata
شامل ارجاع باشد، باید ارجاع اضافی را
در برنامهتان در هر جایی که تصویر را نمایش میدهید بگنجانید. توجه داشته باشید که پیوندهای موجود در
ارجاع باید قابلتکضرب زدن باشند. مستندات مربوط به ارجاعها را ببینید.
حدود استفاده
بازیابی تصویر یک واحد از سهمیه را مصرف میکند؛ هیچ محدودیت استفادهای برای بازیابی فراداده عکس وجود ندارد. درباره استفاده و صورتحساب بیشتر بخوانید.