স্থান ফটো

আপনার অ্যাপ্লিকেশনে প্রদর্শনের জন্য স্থানের ছবি অনুরোধ করতে আপনি iOS-এর জন্য Places SDK ব্যবহার করতে পারেন। ফটো পরিষেবা থেকে প্রাপ্ত ছবিগুলো বিভিন্ন উৎস থেকে আসে, যার মধ্যে রয়েছে ব্যবসার মালিক এবং ব্যবহারকারীদের দেওয়া ছবি। কোনো স্থানের জন্য ছবি সংগ্রহ করতে, আপনাকে নিম্নলিখিত পদক্ষেপগুলো নিতে হবে:

  1. একটি প্লেস আইডি ও একটি কলব্যাক সহ একটি স্ট্রিং পাস করে [GMSPlacesClient fetchPlaceFromPlaceId] কল করুন। এটি একটি GMSPlacePhotoMetadataList অবজেক্ট সহ কলব্যাকটিকে কল করবে।
  2. GMSPlacePhotoMetadataList অবজেক্টের results প্রপার্টিতে অ্যাক্সেস করুন এবং অ্যারে থেকে লোড করার জন্য ফটোগুলো নির্বাচন করুন।
  3. এই তালিকা থেকে প্রতিটি GMSPlacePhotoMetadata লোড করার জন্য [GMSPlacesClient loadPlacePhoto:callback:] অথবা [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] কল করুন। এগুলো একটি ব্যবহারযোগ্য UIImage সহ কলব্যাকটি কল করবে। ফটোগুলোর সর্বোচ্চ প্রস্থ বা উচ্চতা ১৬০০ পিক্সেল হতে পারে।

নমুনা কোড

নিম্নলিখিত উদাহরণ পদ্ধতিটি একটি স্থানের আইডি গ্রহণ করে এবং ফেরত আসা তালিকা থেকে প্রথম ছবিটি নিয়ে আসে। আপনি আপনার নিজের অ্যাপে যে পদ্ধতিটি তৈরি করবেন, তার জন্য এই পদ্ধতিটিকে একটি টেমপ্লেট হিসেবে ব্যবহার করতে পারেন।

সুইফট

// 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:] ব্যবহার করে লোড করা ফটোগুলি ফাউন্ডেশন ইউআরএল লোডিং সিস্টেম দ্বারা শেয়ার্ড NSURLCache এ ডিস্ক এবং মেমোরি উভয় স্থানেই ক্যাশ করা হয়।

ক্যাশিং আচরণ কনফিগার করতে, আপনি আপনার অ্যাপ্লিকেশন ডেলিগেটের application:didFinishLaunchingWithOptions: মেথডে [NSURLCache setSharedURLCache:] ব্যবহার করে শেয়ার্ড ইউআরএল ক্যাশে পরিবর্তন করতে পারেন।

আপনি যদি না চান যে আপনার অ্যাপ্লিকেশনটি iOS-এর জন্য Places SDK-এর সাথে একটি NSURLCache শেয়ার করুক, তাহলে আপনি একটি নতুন NSURLCache তৈরি করতে পারেন এবং এটিকে শেয়ার্ড ক্যাশে হিসেবে সেট না করে শুধুমাত্র আপনার অ্যাপের মধ্যেই ব্যবহার করতে পারেন।

অ্যাট্রিবিউশন

বেশিরভাগ ক্ষেত্রে, স্থানের ছবি অ্যাট্রিবিউশন ছাড়াই ব্যবহার করা যায়, অথবা ছবির অংশ হিসেবে প্রয়োজনীয় অ্যাট্রিবিউশন অন্তর্ভুক্ত থাকে। তবে, যদি ফেরত আসা GMSPlacePhotoMetadata ইনস্ট্যান্সে কোনো অ্যাট্রিবিউশন অন্তর্ভুক্ত থাকে, তাহলে আপনার অ্যাপ্লিকেশনে যেখানেই ছবিটি প্রদর্শন করবেন, সেখানে আপনাকে অবশ্যই অতিরিক্ত অ্যাট্রিবিউশনটি যোগ করতে হবে। মনে রাখবেন, অ্যাট্রিবিউশনের লিঙ্কগুলো অবশ্যই ট্যাপযোগ্য হতে হবে। অ্যাট্রিবিউশন সম্পর্কিত ডকুমেন্টেশন দেখুন।

ব্যবহারের সীমা

একটি ছবি পুনরুদ্ধার করতে এক ইউনিট কোটা খরচ হয়; ছবির মেটাডেটা পুনরুদ্ধারের ক্ষেত্রে ব্যবহারের কোনো সীমা নেই। ব্যবহার ও বিলিং সম্পর্কে আরও পড়ুন।