স্থানের ছবি (নতুন)

প্ল্যাটফর্ম নির্বাচন করুন: Android iOS ওয়েব পরিষেবা

আপনি আপনার অ্যাপ্লিকেশনে প্রদর্শনের জন্য স্থানের ফটোর অনুরোধ করতে iOS (নতুন) এর জন্য স্থান SDK ব্যবহার করতে পারেন। ফটো পরিষেবা দ্বারা প্রত্যাবর্তিত ফটোগুলি ব্যবসার মালিক এবং ব্যবহারকারীর অবদানকৃত ফটোগুলি সহ বিভিন্ন উত্স থেকে আসে৷

ফটোগুলি হল একটি UIImage অবজেক্ট দ্বারা উপস্থাপিত বিটম্যাপ ছবি। একটি বিটম্যাপ চিত্রের সর্বোচ্চ আকার 4800 x 4800 পিক্সেল।

একটি ইমেজ অনুরোধ

আপনি একটি জায়গার জন্য 10টি ফটো পর্যন্ত অনুরোধ করতে পারেন:

  1. [GMSPlacesClient lookUpPhotosForPlaceID] কল করুন, একটি স্থান আইডি এবং একটি GMSPlacePhotoMetadataResultCallback কলব্যাক পাস করুন৷ এই অনুরোধটি একটি GMSPlacePhotoMetadataList বস্তুর সাথে GMSPlacePhotoMetadataResultCallback কলব্যাক কল করে।

  2. কলব্যাকে GMSPlacePhotoMetadataList অবজেক্ট থেকে, results অ্যারে প্রপার্টিতে ফটো থাকে, যেখানে প্রতিটি ফটোকে একটি GMSPlacePhotoMetadata অবজেক্ট দ্বারা উপস্থাপন করা হয়।

  3. অনুরোধ করা ছবির সর্বোচ্চ আকার সহ একটি GMSFetchPhotoRequest তৈরি করতে GMSPlacePhotoMetadata অবজেক্ট ব্যবহার করুন।

  4. অ্যারের প্রতিটি GMSPlacePhotoMetadata অবজেক্টের জন্য, GMSFetchPhotoRequest অবজেক্ট পাস করে [GMSPlacesClient fetchPhotoWithRequest:callback:] কল করুন। এই পদ্ধতিগুলি একটি UIImage হিসাবে একটি ব্যবহারযোগ্য বিটম্যাপ চিত্র সহ GMSFetchPhotoResultCallback কলব্যাককে কল করে৷

একটি স্থানের জন্য ফটোর অনুরোধ করার আরেকটি উপায় হল একটি স্থানের বিবরণ (নতুন) অনুরোধ করা, যার মধ্যে রয়েছে ফিল্ড তালিকায় GMSPlacePropertyPhotos । একটি স্থানের বিবরণ কল করার সুবিধা হল যে প্রতিক্রিয়া GMSPlace অবজেক্টে ফটো এবং অন্য যেকোনো ডেটা ক্ষেত্র থাকতে পারে যা আপনি স্থানটির জন্য চান৷

নমুনা কোড

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

সুইফট

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Request list of photos for a place
placesClient.lookUpPhotos(forPlaceID: placeID) { (photos, error) in

  guard let photoMetadata: GMSPlacePhotoMetadata = photos?.results[0] else {
    return }

  // Request individual photos in the response list
  let fetchPhotoRequest = GMSFetchPhotoRequest(photoMetadata: photoMetadata, maxSize: CGSizeMake(4800, 4800))
  self.client.fetchPhoto(with: fetchPhotoRequest, callback: {
    (photoImage: UIImage?, error: Error?) in
      guard let photoImage, error == nil else {
        print("Handle photo error: ")
        return }
      print("Display photo Image: ")
    }
  )
}

উদ্দেশ্য-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

[placesClient lookUpPhotosForPlaceID:placeID callback: ^(GMSPlacePhotoMetadataList *list, NSError *error) {
  GMSPlacePhotoMetadata *photoMetadata = [list results][0];

  // Request individual photos in the response list
  GMSFetchPhotoRequest *fetchPhotoRequest = [[GMSFetchPhotoRequest alloc] initWithPhotoMetadata:photoMetadata maxSize:CGSizeMake(4800, 4800)];
  [placesClient fetchPhotoWithRequest:fetchPhotoRequest callback: ^(UIImage *_Nullable photoImage, NSError *_Nullable error) {
    if (error == nil) {
      // Display photo
    }
  }];
}];

আইওএসের জন্য সুইফট SDK রাখে (প্রিভিউ)

// First fetch place details
// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [ . name, .website ]
)
var fetchedPlace: Place
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  fetchedPlace = place
case .failure(let placesError):
  // Handle error
}

// Use the place details to fetch a photo's image.
guard let photo = fetchedPlace.photos?.first else {
  // Handle place without photos.
}
let fetchPhotoRequest =
  FetchPhotoRequest(photo: photo, maxSize: CGSizeMake(4800, 4800))
switch await placesClient.fetchPhoto(with: fetchPhotoRequest) {
case .success(let uiImage):
  // Handle image.
case .failure(let placesError):
  // Handle error
}

ক্যাশিং

[GMSPlacesClient loadPlacePhoto:callback:] বা [GMSPlacesClient loadPlacePhoto:constrainedToSize:scale:callback:] ব্যবহার করে লোড করা ফটো শেয়ার করা NSURLCacheফাউন্ডেশন ইউআরএল লোডিং সিস্টেম দ্বারা ডিস্ক এবং ইন-মেমরিতে ক্যাশ করা হয়।

ক্যাশিং আচরণ কনফিগার করতে আপনি আপনার অ্যাপ্লিকেশন প্রতিনিধির application:didFinishLaunchingWithOptions: পদ্ধতিতে [NSURLCache setSharedURLCache:] ব্যবহার করে ভাগ করা URL ক্যাশে পরিবর্তন করতে পারেন।

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

গুণাবলী

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