میتوانید از «کیت توسعه نرمافزار مکانها» برای 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
برگرداندهشده حاوی ارجاع باشد، باید ارجاع اضافی را در هر جایی از برنامهتان که تصویر را نمایش میدهید بگنجانید. توجه داشته باشید که پیوندهای موجود در
ارجاع باید قابلتکضرب زدن باشند. اسناد مربوط به ارجاعها را ببینید.
حدود استفاده
بازیابی تصویر یک واحد از سهمیه را مصرف میکند؛ هیچ محدودیت استفادهای برای بازیابی فراداده عکس وجود ندارد. درباره استفاده و صورتحساب بیشتر بخوانید.