আপনার অ্যাপ্লিকেশনে দেখানোর জন্য জায়গার ফটো অনুরোধ করতে আপনি iOS-এর জন্য Places SDK (Legacy) ব্যবহার করতে পারেন। ফটো পরিষেবা থেকে পাওয়া ফটো বিভিন্ন সোর্স থেকে আসে, যার মধ্যে ব্যবসার মালিক এবং ব্যবহারকারীর কন্ট্রিবিউট করা ফটোও অন্তর্ভুক্ত। কোনও জায়গার ফটো পেতে, আপনাকে নিম্নলিখিত ধাপগুলি অনুসরণ করতে হবে:
[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; } }) } })
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:] ব্যবহার করে লোড করা ফটো
শেয়ার করা NSURLCache-এ Foundation URL লোডিং সিস্টেম-এর মাধ্যমে
ডিস্ক ও ইন-মেমরি, দুটিতেই ক্যাশে করা হয়।
ক্যাশিং আচরণ কনফিগার করতে, আপনি
[NSURLCache setSharedURLCache:]
ব্যবহার করে আপনার অ্যাপ্লিকেশন ডেলিগেটের application:didFinishLaunchingWithOptions:
পদ্ধতিতে শেয়ার করা URL ক্যাশে পরিবর্তন করতে পারেন।
আপনি যদি চান যে আপনার অ্যাপ্লিকেশন Places SDK for iOS-এর সাথে NSURLCache শেয়ার না করুক, তাহলে আপনি একটি নতুন NSURLCache তৈরি করতে পারেন এবং এটি শেয়ার করা ক্যাশে হিসেবে সেট না করেই আপনার অ্যাপের মধ্যে একচেটিয়াভাবে ব্যবহার করতে পারেন।
অ্যাট্রিবিউশন
বেশিরভাগ ক্ষেত্রে, জায়গার ফটো অ্যাট্রিবিউশন ছাড়াই ব্যবহার করা যেতে পারে অথবা ছবির অংশ হিসেবে
প্রয়োজনীয় অ্যাট্রিবিউশন অন্তর্ভুক্ত করা থাকবে। তবে, ফেরত আসা
GMSPlacePhotoMetadata
ইনস্ট্যান্সে অ্যাট্রিবিউশন থাকলে, আপনার অ্যাপ্লিকেশনে যেখানেই ছবি দেখাবেন,
সেখানেই আপনাকে অতিরিক্ত অ্যাট্রিবিউশন অন্তর্ভুক্ত করতে হবে। মনে রাখবেন যে অ্যাট্রিবিউশনে
লিঙ্ক ট্যাপ করার মতো হতে হবে। অ্যাট্রিবিউশন সংক্রান্ত ডকুমেন্টেশন দেখুন।
ব্যবহারের সীমা
একটি ছবি ফিরিয়ে আনার জন্য কোটার একটি ইউনিট খরচ হয়; ফটো মেটাডেটা ফিরিয়ে আনার জন্য ব্যবহারের কোনও সীমা নেই। ব্যবহার ও বিলিং সম্পর্কে আরও পড়ুন।