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

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA) ডেভেলপাররা

iOS-এর জন্য প্লেসেস এসডিকে (নতুন) আপনার অ্যাপকে স্থান সম্পর্কে সমৃদ্ধ তথ্য প্রদান করে, যার মধ্যে রয়েছে স্থানের নাম ও ঠিকানা, অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট ভৌগোলিক অবস্থান, স্থানের ধরন (যেমন নাইট ক্লাব, পোষা প্রাণীর দোকান, জাদুঘর) এবং আরও অনেক কিছু। কোনো নির্দিষ্ট স্থানের এই তথ্য অ্যাক্সেস করার জন্য, আপনি প্লেস আইডি ব্যবহার করতে পারেন, যা একটি স্থিতিশীল শনাক্তকারী এবং একটি স্থানকে অনন্যভাবে চিহ্নিত করে।

স্থানের বিবরণ জানুন

GMSPlace ক্লাসে একটি নির্দিষ্ট স্থান সম্পর্কিত তথ্য থাকে, যার মধ্যে Place Data Fields (New)- এ দেখানো সমস্ত ডেটা ফিল্ড অন্তর্ভুক্ত। একটি GMSPlace অবজেক্ট পেতে, GMSPlacesClient fetchPlaceWithRequest: কল করুন এবং এর সাথে একটি GMSFetchPlaceRequest অবজেক্ট ও GMSPlaceResultCallback টাইপের একটি কলব্যাক মেথড পাস করুন।

GMSFetchPlaceRequest অবজেক্টটি নির্দিষ্ট করে:

  • (আবশ্যক) স্থান আইডি , যা গুগল প্লেসেস ডেটাবেস এবং গুগল ম্যাপসে কোনো স্থানের একটি অনন্য শনাক্তকারী।
  • (আবশ্যক) GMSPlaceProperty দ্বারা সংজ্ঞায়িত GMSPlace অবজেক্টে ফেরত দেওয়ার জন্য ফিল্ডগুলির তালিকা, যা ফিল্ড মাস্ক নামেও পরিচিত। যদি আপনি ফিল্ড তালিকা থেকে অন্তত একটি ফিল্ড নির্দিষ্ট না করেন, অথবা যদি আপনি ফিল্ড তালিকাটি বাদ দেন, তাহলে কলটি একটি ত্রুটি ফেরত দেবে।
  • (ঐচ্ছিক) প্রতিক্রিয়া বিন্যাস করতে ব্যবহৃত অঞ্চল কোড।
  • (ঐচ্ছিক) অটোকমপ্লিট (নতুন) সেশন শেষ করতে ব্যবহৃত সেশন টোকেন।

স্থান বিবরণীর জন্য অনুরোধ করুন

এই উদাহরণটি নিম্নলিখিত প্যারামিটারগুলো পাস করে আইডি দ্বারা একটি স্থান খুঁজে বের করে:

  • ChIJV4k8_9UodTERU5KXbkYpSYs এর স্থান আইডি।
  • স্থানের নাম এবং ওয়েবসাইটের ইউআরএল ফেরত দেওয়ার জন্য একটি ফিল্ড তালিকা।
  • ফলাফলটি পরিচালনা করার জন্য একটি GMSPlaceResultCallback

এপিআইটি একটি GMSPlace অবজেক্ট পাস করে নির্দিষ্ট কলব্যাক মেথডটি কল করে। যদি স্থানটি খুঁজে না পাওয়া যায়, তাহলে প্লেস অবজেক্টটির মান nil হয়।

প্লেসেস সুইফট এসডিকে

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

সুইফট

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

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

উদ্দেশ্য-সি

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

// Specify the place data types to return.
NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

স্থানের বিবরণ প্রতিক্রিয়া

Place Details একটি GMSPlace অবজেক্ট ফেরত দেয়, যাতে স্থানটি সম্পর্কে বিস্তারিত তথ্য থাকে। GMSPlace অবজেক্টটিতে শুধুমাত্র ফিল্ড লিস্টে নির্দিষ্ট করা ফিল্ডগুলোই পূরণ করা হয়।

খোলা অবস্থা পান

GMSPlacesClient অবজেক্টটিতে isOpenWithRequest (Swift-এ isOpenRequest এবং GooglePlacesSwift-এ isPlaceOpenRequest ) নামে একটি মেম্বার ফাংশন রয়েছে, যা কলে নির্দিষ্ট করা সময়ের উপর ভিত্তি করে প্লেসটি বর্তমানে খোলা আছে কিনা তা নির্দেশ করে একটি প্রতিক্রিয়া ফেরত দেয়।

এই মেথডটি GMSPlaceIsOpenWithRequest টাইপের একটিমাত্র আর্গুমেন্ট গ্রহণ করে, যাতে নিম্নলিখিত বিষয়গুলো থাকে:

  • একটি GMSPlace অবজেক্ট , অথবা একটি স্থান আইডি নির্দেশকারী স্ট্রিং। প্রয়োজনীয় ফিল্ডসহ Place অবজেক্ট তৈরি করার বিষয়ে আরও তথ্যের জন্য, Place details দেখুন।
  • একটি ঐচ্ছিক NSDate (Obj-C) বা Date (Swift) অবজেক্ট, যা আপনি যে সময়টি পরীক্ষা করতে চান তা নির্দিষ্ট করে। যদি কোনো সময় নির্দিষ্ট না করা হয়, তবে ডিফল্ট সময় হবে বর্তমান সময়।
  • প্রতিক্রিয়াটি পরিচালনা করার জন্য একটি GMSPlaceOpenStatusResponseCallback মেথড।
  • >

GMSPlaceIsOpenWithRequest মেথডটি চালানোর জন্য GMSPlace অবজেক্টে নিম্নলিখিত ফিল্ডগুলি সেট করা আবশ্যক:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Place অবজেক্টে এই ফিল্ডগুলি প্রদান করা না থাকলে, অথবা আপনি একটি প্লেস আইডি পাস করলে, মেথডটি সেগুলি ফেচ করার জন্য GMSPlacesClient GMSFetchPlaceRequest: ব্যবহার করে।

isOpenWithRequest প্রতিক্রিয়া

isOpenWithRequest একটি GMSPlaceIsOpenResponse অবজেক্ট রিটার্ন করে, যাতে status নামক একটি বুলিয়ান ভ্যালু থাকে যা নির্দেশ করে ব্যবসাটি খোলা, বন্ধ, নাকি এর অবস্থা অজানা।

ভাষা খোলা থাকলে মান বন্ধ থাকলে মান অবস্থা অজানা থাকলে মান
দ্রুত স্থান true false nil
সুইফট .open .closed .unknown
উদ্দেশ্য-সি GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown

isOpenWithRequest এর জন্য বিলিং

  • GMSPlacePropertyUTCOffsetMinutes এবং GMSPlacePropertyBusinessStatus ফিল্ডগুলোর চার্জ Basic Data SKU-এর অধীনে ধার্য করা হয়। Opening Hours-এর বাকি অংশের চার্জ Place Details Enterprise SKU-এর অধীনে ধার্য করা হয়।
  • যদি আপনার GMSPlace অবজেক্টে পূর্ববর্তী কোনো অনুরোধ থেকে এই ফিল্ডগুলো আগে থেকেই থাকে, তাহলে আপনাকে আবার চার্জ করা হবে না।

উদাহরণ: একটি GMSPlaceIsOpenWithRequest অনুরোধ করুন

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি বিদ্যমান GMSPlace অবজেক্টের মধ্যে GMSPlaceIsOpenWithRequest ইনিশিয়ালাইজ করতে হয়।

প্লেসেস সুইফট এসডিকে

        let isOpenRequest = IsPlaceOpenRequest(place: place)
        switch await placesClient.isPlaceOpen(with: isOpenRequest) {
          case .success(let isOpenResponse):
            switch isOpenResponse.status {
              case true:
                // Handle open
              case false:
                // Handle closed
              case nil:
                // Handle unknown
          case .failure(let placesError):
            // Handle error
        }
        

সুইফট

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

উদ্দেশ্য-সি

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }

            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

প্রয়োজনীয় প্যারামিটার

প্রয়োজনীয় প্যারামিটারগুলো নির্দিষ্ট করতে GMSFetchPlaceRequest অবজেক্টটি ব্যবহার করুন।

স্থান আইডি

iOS-এর জন্য Places SDK-তে ব্যবহৃত প্লেস আইডিটি , Places API, Android-এর জন্য Places SDK এবং অন্যান্য Google API-তে ব্যবহৃত শনাক্তকারীর মতোই। প্রতিটি প্লেস আইডি শুধুমাত্র একটি স্থানকে নির্দেশ করতে পারে, কিন্তু একটি স্থানের একাধিক প্লেস আইডি থাকতে পারে।

এমন কিছু পরিস্থিতি রয়েছে যার কারণে কোনো স্থানের নতুন আইডি লাগতে পারে। উদাহরণস্বরূপ, কোনো ব্যবসা নতুন স্থানে স্থানান্তরিত হলে এমনটা হতে পারে।

যখন আপনি একটি প্লেস আইডি উল্লেখ করে কোনো স্থানের জন্য অনুরোধ করেন, তখন আপনি নিশ্চিত থাকতে পারেন যে উত্তরে আপনি সর্বদা একই স্থানটি পাবেন (যদি স্থানটি তখনও বিদ্যমান থাকে)। তবে মনে রাখবেন, উত্তরে এমন একটি প্লেস আইডি থাকতে পারে যা আপনার অনুরোধের আইডি থেকে ভিন্ন।

ক্ষেত্রের তালিকা

যখন আপনি কোনো স্থানের বিবরণ অনুরোধ করেন, তখন আপনাকে অবশ্যই সেই স্থানের জন্য GMSPlace অবজেক্টে ফিল্ড মাস্ক হিসেবে ফেরতযোগ্য ডেটা নির্দিষ্ট করতে হবে। ফিল্ড মাস্ক নির্ধারণ করতে, GMSPlaceProperty থেকে GMSFetchPlaceRequest অবজেক্টে ভ্যালুগুলোর একটি অ্যারে পাস করুন। ফিল্ড মাস্কিং একটি ভালো ডিজাইন অনুশীলন, যা নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটা অনুরোধ করছেন না। এটি অপ্রয়োজনীয় প্রক্রিয়াকরণের সময় এবং বিলিং চার্জ এড়াতে সাহায্য করে।

নিম্নলিখিত ক্ষেত্রগুলির মধ্যে এক বা একাধিক নির্দিষ্ট করুন:

  • নিম্নলিখিত ফিল্ডগুলি প্লেস ডিটেইলস এসেনশিয়ালস আইডি অনলি এসকেইউ (Place Details Essentials ID Only SKU) সক্রিয় করে:

    GMSPlacePropertyPlaceID
    GMSPlacePropertyPhotos

    ফিল্ডসমূহ এবং তাদের সংশ্লিষ্ট SKU-গুলির সম্পূর্ণ তালিকার জন্য, ‘Place Data Fields (New)’ দেখুন।

  • নিম্নলিখিত ফিল্ডগুলি প্লেস ডিটেইলস এসেনশিয়ালস SKU সক্রিয় করে:

    GMSPlacePropertyAddressComponents
    GMSPlacePropertyFormattedAddress
    GMSPlacePropertyCoordinate
    GMSPlacePropertyPlusCode
    GMSPlacePropertyTypes
    GMSPlacePropertyViewport

    ফিল্ডসমূহ এবং তাদের সংশ্লিষ্ট SKU-গুলির সম্পূর্ণ তালিকার জন্য, ‘Place Data Fields (New)’ দেখুন।

  • নিম্নলিখিত ফিল্ডগুলি প্লেস ডিটেইলস প্রো SKU সক্রিয় করে:

    GMSPlacePropertyBusinessStatus
    GMSPlacePropertyIconBackgroundColor
    GMSPlacePropertyIconImageURL
    GMSPlacePropertyName
    GMSPlacePropertyUTCOffsetMinutes
    GMSPlacePropertyWheelchairAccessibleEntrance

    ফিল্ডসমূহ এবং তাদের সংশ্লিষ্ট SKU-গুলির সম্পূর্ণ তালিকার জন্য, ‘Place Data Fields (New)’ দেখুন।

  • নিম্নলিখিত ফিল্ডগুলি প্লেস ডিটেইলস প্রো SKU সক্রিয় করে:

    GMSPlacePropertyCurrentOpeningHours
    GMSPlacePropertySecondaryOpeningHours
    GMSPlacePropertyPhoneNumber
    GMSPlacePropertyPriceLevel
    GMSPlacePropertyRating
    GMSPlacePropertyOpeningHours
    GMSPlacePropertyUserRatingsTotal
    GMSPlacePropertyWebsite

    ফিল্ডসমূহ এবং তাদের সংশ্লিষ্ট SKU-গুলির সম্পূর্ণ তালিকার জন্য, ‘Place Data Fields (New)’ দেখুন।

  • নিম্নলিখিত ফিল্ডগুলি প্লেস ডিটেইলস এন্টারপ্রাইজ SKU সক্রিয় করে:

    GMSPlacePropertyCurbsidePickup
    GMSPlacePropertyDelivery
    GMSPlacePropertyDineIn
    GMSPlacePropertyEditorialSummary
    GMSPlacePropertyReservable
    GMSPlacePropertyReviews
    GMSPlacePropertyServesBeer
    GMSPlacePropertyServesBreakfast
    GMSPlacePropertyServesBrunch
    GMSPlacePropertyServesDinner
    GMSPlacePropertyServesLunch
    GMSPlacePropertyServesVegetarianFood
    GMSPlacePropertyServesWine
    GMSPlacePropertyTakeout

    ফিল্ডসমূহ এবং তাদের সংশ্লিষ্ট SKU-গুলির সম্পূর্ণ তালিকার জন্য, ‘Place Data Fields (New)’ দেখুন।

নিম্নলিখিত উদাহরণটি দুটি ফিল্ড মানের একটি তালিকা পাস করে এটি নির্দিষ্ট করে যে, একটি অনুরোধের মাধ্যমে ফেরত আসা GMSPlace অবজেক্টটিতে name এবং placeID ফিল্ড দুটি রয়েছে:

প্লেসেস সুইফট এসডিকে

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

সুইফট

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

উদ্দেশ্য-সি

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

ঐচ্ছিক পরামিতি

ঐচ্ছিক প্যারামিটারগুলো নির্দিষ্ট করতে GMSFetchPlaceRequest অবজেক্টটি ব্যবহার করুন।

অঞ্চল কোড

প্রতিক্রিয়া বিন্যাস করার জন্য ব্যবহৃত অঞ্চল কোড, যা একটি দুই-অক্ষরের CLDR কোড মান হিসাবে নির্দিষ্ট করা হয়। এই প্যারামিটারটি অনুসন্ধানের ফলাফলের উপর পক্ষপাতমূলক প্রভাবও ফেলতে পারে। এর কোনো ডিফল্ট মান নেই।

রেসপন্সের অ্যাড্রেস ফিল্ডের দেশের নাম যদি রিজিওন কোডের সাথে মিলে যায়, তাহলে অ্যাড্রেস থেকে কান্ট্রি কোডটি বাদ দেওয়া হয়।

কিছু উল্লেখযোগ্য ব্যতিক্রম ছাড়া, বেশিরভাগ CLDR কোড ISO 3166-1 কোডের অনুরূপ। উদাহরণস্বরূপ, যুক্তরাজ্যের ccTLD হলো "uk" (.co.uk), যেখানে এর ISO 3166-1 কোড হলো "gb" (যা প্রযুক্তিগতভাবে "The United Kingdom of Great Britain and Northern Ireland" সত্তাটিকে বোঝায়)। প্রযোজ্য আইনের উপর ভিত্তি করে এই প্যারামিটারটি ফলাফলের উপর প্রভাব ফেলতে পারে।

সেশন টোকেন

সেশন টোকেন হলো ব্যবহারকারী-সৃষ্ট স্ট্রিং যা অটোকমপ্লিট (নতুন) কলগুলোকে "সেশন" হিসেবে ট্র্যাক করে। বিলিংয়ের উদ্দেশ্যে, অটোকমপ্লিট (নতুন) একটি ব্যবহারকারীর অটোকমপ্লিট সার্চের কোয়েরি এবং স্থান নির্বাচনের পর্যায়গুলোকে একটি স্বতন্ত্র সেশনে একত্রিত করতে সেশন টোকেন ব্যবহার করে। অটোকমপ্লিট (নতুন) কলের পরে আসা প্লেস ডিটেইলস (নতুন) কলগুলোতে সেশন টোকেনগুলো পাস করা হয়। আরও তথ্যের জন্য, সেশন টোকেন দেখুন।

আপনার অ্যাপে অ্যাট্রিবিউশন প্রদর্শন করুন

যখন আপনার অ্যাপ GMSPlacesClient থেকে প্রাপ্ত তথ্য, যেমন ছবি এবং রিভিউ, প্রদর্শন করে, তখন অ্যাপটিকে অবশ্যই প্রয়োজনীয় অ্যাট্রিবিউশনও প্রদর্শন করতে হবে।

উদাহরণস্বরূপ, GMSPlacesClient অবজেক্টের reviews প্রপার্টিতে সর্বোচ্চ পাঁচটি GMSPlaceReview অবজেক্টের একটি অ্যারে থাকে। প্রতিটি GMSPlaceReview অবজেক্টে অ্যাট্রিবিউশন এবং অথর অ্যাট্রিবিউশন থাকতে পারে। আপনি যদি আপনার অ্যাপে রিভিউটি প্রদর্শন করেন, তাহলে আপনাকে অবশ্যই যেকোনো অ্যাট্রিবিউশন বা অথর অ্যাট্রিবিউশনও প্রদর্শন করতে হবে।

আরও তথ্যের জন্য, অ্যাট্রিবিউশন সম্পর্কিত ডকুমেন্টেশন দেখুন।