স্থান বিবরণ

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

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

স্থান বিবরণ

GMSPlace ক্লাস একটি নির্দিষ্ট স্থান সম্পর্কে তথ্য প্রদান করে। আপনি নিম্নলিখিত উপায়ে একটি GMSPlace অবজেক্ট ধরতে পারেন:

আপনি যখন একটি স্থানের অনুরোধ করেন, তখন আপনাকে অবশ্যই নির্দিষ্ট করে দিতে হবে যে কোন ধরনের স্থানের ডেটা ফেরত দিতে হবে। এটি করার জন্য, একটি GMSPlaceField পাস করুন, ফেরত পাঠানোর জন্য ডেটা প্রকারগুলি উল্লেখ করুন৷ এটি একটি গুরুত্বপূর্ণ বিবেচনা, যেহেতু এটি প্রতিটি অনুরোধের খরচকে প্রভাবিত করবে।

যেহেতু স্থানের ডেটা ফলাফলগুলি খালি হতে পারে না, শুধুমাত্র ডেটা সহ স্থানের ফলাফলগুলি ফেরত দেওয়া হয় (উদাহরণস্বরূপ, যদি অনুরোধ করা জায়গায় কোনও ফটো না থাকে তবে photos ক্ষেত্রটি ফলাফলে উপস্থিত থাকবে না)।

নিম্নলিখিত উদাহরণটি একটি অনুরোধ দ্বারা ফিরে আসা ডেটা নির্দিষ্ট করতে দুটি ক্ষেত্রের মানের একটি তালিকা পাস করে:

সুইফট

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

      // Specify the place data types to return.
      let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
      UInt(GMSPlaceField.placeID.rawValue))
  

উদ্দেশ্য-C

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

      // Specify the place data types to return.
      GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
  

স্থান ক্ষেত্র সম্পর্কে আরো জানুন. স্থান ডেটার অনুরোধগুলি কীভাবে বিল করা হয় সে সম্পর্কে আরও তথ্যের জন্য, ব্যবহার এবং বিলিং দেখুন।

GMSPlace ক্লাসে নিম্নলিখিত স্থানের ডেটা থাকতে পারে:

  • name - জায়গার নাম।
  • editorialSummary - একটি স্থানের একটি সহজ বিবরণ প্রদান করে।
  • placeID - স্থানের জন্য পাঠ্য শনাক্তকারী। এই পৃষ্ঠার বাকি অংশে স্থান আইডি সম্পর্কে আরও পড়ুন।
  • coordinate - স্থানের ভৌগলিক অবস্থান, অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে নির্দিষ্ট।
  • phoneNumber - জায়গার ফোন নম্বর, আন্তর্জাতিক বিন্যাসে।
  • formattedAddress – এই অবস্থানের মানুষের পঠনযোগ্য ঠিকানা।

    প্রায়শই এই ঠিকানাটি ডাক ঠিকানার সমতুল্য। উল্লেখ্য যে কিছু দেশ, যেমন ইউনাইটেড কিংডম, লাইসেন্সিং বিধিনিষেধের কারণে সত্যিকারের ডাক ঠিকানা বিতরণের অনুমতি দেয় না।

    ফরম্যাট করা ঠিকানা যৌক্তিকভাবে এক বা একাধিক ঠিকানা উপাদান নিয়ে গঠিত। উদাহরণস্বরূপ, ঠিকানা "111 8th Avenue, New York, NY" নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত: "111" (রাস্তার নম্বর), "8th Avenue" (রুট), "New York" (শহর) এবং "NY" "(মার্কিন রাষ্ট্র)।

    ফরম্যাট করা ঠিকানাকে প্রোগ্রাম্যাটিকভাবে পার্স করবেন না। পরিবর্তে আপনার পৃথক ঠিকানা উপাদানগুলি ব্যবহার করা উচিত, যা এপিআই প্রতিক্রিয়া ফর্ম্যাট করা ঠিকানা ক্ষেত্র ছাড়াও অন্তর্ভুক্ত করে।

  • openingHours – জায়গার খোলার সময় (যেমন GMSOpeningHours দ্বারা প্রতিনিধিত্ব করে)। সপ্তাহের জন্য দৈনিক খোলার সময়ের স্থানীয় স্ট্রিংগুলির একটি তালিকা পেতে GMSOpeningHours.weekdayText কল করুন। GMSOpeningHours.Periods কে আরও বিস্তারিত তথ্য সহ GMSPeriod এর একটি তালিকা ফেরত দিতে কল করুন যা weekdayText দ্বারা প্রদত্ত ডেটার সমতুল্য। দ্রষ্টব্য: যদি একটি স্থান সর্বদা খোলা থাকে, তবে সময়কাল রবিবার মধ্যরাতে হিসাবে উপস্থাপন করা হয় এবং closeEvent শূন্য হয়।
  • currentOpeningHours এবং secondaryOpeningHours - যে ক্ষেত্রগুলি ছুটি নেয় এবং একটি স্থানের সময়সূচীতে অস্থায়ী পরিবর্তন করে।
  • addressComponents - একটি স্থানের জন্য ঠিকানার উপাদান প্রতিনিধিত্ব করে GMSAddressComponent বস্তুর একটি অ্যারে। এই উপাদানগুলি একটি স্থানের ঠিকানা সম্পর্কে কাঠামোগত তথ্য বের করার উদ্দেশ্যে প্রদান করা হয়, উদাহরণস্বরূপ একটি জায়গা যেখানে অবস্থিত সেই শহরটি খুঁজে বের করা। ঠিকানা বিন্যাসের জন্য এই উপাদানগুলি ব্যবহার করবেন না; পরিবর্তে, formattedAddress বৈশিষ্ট্য ব্যবহার করুন, যা একটি স্থানীয় বিন্যাসিত ঠিকানা প্রদান করে।

    addressComponents অ্যারে সম্পর্কে নিম্নলিখিত তথ্যগুলি নোট করুন:

    • ঠিকানা উপাদানগুলির অ্যারেতে formattedAddress ঠিকানার চেয়ে বেশি উপাদান থাকতে পারে।
    • বিন্যাসে অগত্যা সমস্ত রাজনৈতিক সত্ত্বাকে অন্তর্ভুক্ত করে না যেগুলির মধ্যে একটি ঠিকানা রয়েছে, formattedAddress অন্তর্ভুক্ত করা ছাড়াও৷
    • অনুরোধের মধ্যে প্রতিক্রিয়ার বিন্যাস একই থাকার নিশ্চয়তা দেওয়া হয় না। বিশেষ করে, addressComponents সংখ্যা অনুরোধ করা ঠিকানার উপর ভিত্তি করে পরিবর্তিত হয় এবং একই ঠিকানার জন্য সময়ের সাথে সাথে পরিবর্তিত হতে পারে। একটি উপাদান অ্যারে অবস্থান পরিবর্তন করতে পারেন. উপাদানের ধরন পরিবর্তন হতে পারে। পরবর্তী প্রতিক্রিয়ায় একটি নির্দিষ্ট উপাদান অনুপস্থিত হতে পারে।
  • userRatingsTotal – কতগুলি রিভিউ স্থানের রেটিং তৈরি করে তা প্রতিনিধিত্ব করে।

GMSPlace ক্লাসে নিম্নলিখিত সদস্য ফাংশন রয়েছে:

  • openingHours এবং UTCOffsetMinutes এবং বর্তমান তারিখ ও সময়ের উপর ভিত্তি করে isOpen নির্দিষ্ট সময়ে একটি স্থান খোলা আছে কিনা তা গণনা করে।
  • openingHours এবং UTCOffsetMinutes এবং বর্তমান তারিখ ও সময়ের উপর ভিত্তি করে isOpenAtDate একটি নির্দিষ্ট তারিখে একটি স্থান খোলা আছে কিনা তা গণনা করে।
  • খোলার সময় এবং/অথবা তারিখগুলি পেতে এই ফাংশনগুলি ব্যবহার করার সময়, আসল fetchPlaceFromPlaceID: বা findPlaceLikelihoodsFromUserLocationWithPlaceFields: অনুরোধে অবশ্যই GMSPlaceFieldOpeningHours এবং GMSPlaceFieldUTCOffsetMinutes উভয় ক্ষেত্র নির্দিষ্ট করতে হবে। যদি এই ক্ষেত্রগুলির যেকোন একটি অনুপস্থিত থাকে, ফলে GMSPlace অবজেক্টে খোলার সময় বা তারিখ থাকবে না এবং কলটি GMSPlaceOpenStatusUnknown ফেরত দেবে। সঠিক ফলাফল নিশ্চিত করতে, আপনার আসল স্থানের অনুরোধে GMSPlaceFieldBusinessStatus এবং GMSPlaceFieldUTCOffsetMinutes ক্ষেত্রগুলির জন্য অনুরোধ করুন। যদি অনুরোধ না করা হয় তবে ধরে নেওয়া হয় যে ব্যবসাটি চালু আছে।

    স্থানের বিবরণ সহ isOpen কীভাবে ব্যবহার করবেন তার জন্য এই ভিডিওটি দেখুন।

ব্যতিক্রমী ঘন্টা পান

যদিও নিয়মিত খোলার সময় openingHours সময় প্রাপ্ত হয়, currentOpeningHours এবং secondaryOpeningHours ছুটি এবং অস্থায়ী সময়সূচী পরিবর্তন সমর্থন করে। এই বিশেষ দিনগুলির জন্য ব্যতিক্রমী সময়গুলি ফিল্টার করা যেতে পারে এবং উপলব্ধ থাকলে উপস্থাপন করা যেতে পারে।

সুইফট

    func examineOpeningHours(place: GMSPlace) {

      // Check if the current opening hours contains a special day that has exceptional hours
      guard let currentOpeningHours = place.currentOpeningHours else { return }
      if let specialDays = currentOpeningHours.specialDays {
        guard !specialDays.isEmpty else { return }
        if let specialDay = specialDays.filter { $0.isExceptional }.first  {
          // Indicate exceptional hours
        }
      }

      // Check if current opening hours contains a truncated time period
      let periods = currentOpeningHours.periods

      if !periods.isEmpty {
        for period in periods {
          let open = period.open
          let close = period.close

          if let open = open {
            let date = open.date

            if open.isTruncated {
              // Indicate truncated time period
            }
          }
        }
      }

      // Check if the place's secondary opening hours indicate when delivery is available
      let secondaryOpeningHours = place.secondaryOpeningHours
      guard let hoursType = secondaryOpeningHours.first?.hoursType else {
      return
      }

      if (hoursType == GMSPlaceHoursTypeDelivery) {
        // Indicate hours where delivery is available
      }
  }

উদ্দেশ্য-C

- (void)examineOpeningHours:(GMSPlace *) place {

    // Check if the current opening hours contains a special day that has exceptional hours
    GMSOpeningHours *currentOpeningHours = place.currentOpeningHours;
    if (currentOpeningHours != nil) {
      NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays;
      if ([specialDays count] != 0) {
        for (GMSPlaceSpecialDay *specialDay in specialDays) {
          NSDate *date = specialDay.date;
          if ([specialDay isExceptional]) {
            // Indicate exceptional hours
          }
        }
      }
    }

    // Check if current opening hours contains a truncated time period
    NSArray <GMSPeriod *> * periods = currentOpeningHours.periods;

    if ([periods count] != 0) {
      for (GMSPeriod * period in periods) {
        GMSTimeOfWeek *open = period.open;
        GMSTimeOfWeek *close = period.close;

        if (open) {
          if ([open isTruncated]) {
            // Indicate truncated time period
          }
        }
      }
    }

    // Check if the place's secondary opening hours indicate when delivery is available
    GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours;
    GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType;

    if (hoursType == GMSPlaceHoursTypeDelivery) {
      // Indicate hours where delivery is available
    }
}

আইডি দ্বারা একটি স্থান পান

একটি স্থান আইডি একটি পাঠ্য শনাক্তকারী যা একটি স্থানকে অনন্যভাবে সনাক্ত করে। iOS এর জন্য Places SDK-এ, আপনি একটি GMSPlace অবজেক্ট থেকে একটি জায়গার আইডি পুনরুদ্ধার করতে পারেন। আপনি স্থান আইডি সংরক্ষণ করতে পারেন এবং পরে আবার GMSPlace অবজেক্ট পুনরুদ্ধার করতে এটি ব্যবহার করতে পারেন।

আইডি দ্বারা একটি স্থান পেতে, GMSPlacesClient fetchPlaceFromPlaceID: , নিম্নলিখিত পরামিতিগুলি পাস করে কল করুন:

  • একটি স্থান আইডি ধারণকারী একটি স্ট্রিং।
  • এক বা একাধিক GMSPlaceField s, প্রত্যাবর্তনের জন্য ডেটা প্রকারগুলি নির্দিষ্ট করে৷
  • একটি সেশন টোকেন যদি একটি স্বয়ংসম্পূর্ণ ক্যোয়ারী শেষ করতে কল করা হয়। অন্যথায়, শূন্য পাস.
  • ফলাফল পরিচালনা করতে একটি GMSPlaceResultCallback .

এপিআই একটি GMSPlace অবজেক্টে পাস করে নির্দিষ্ট কলব্যাক পদ্ধতি চালু করে। স্থান পাওয়া না গেলে, স্থান বস্তুটি শূন্য।

সুইফট

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

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeID, 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 {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

উদ্দেশ্য-C

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

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_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) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

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

যখন আপনার অ্যাপ GMSPlacesClient lookUpPlaceID:callback: থেকে প্রাপ্ত তথ্য প্রদর্শন করে, তখন অ্যাপটিকে অবশ্যই বৈশিষ্ট্যও প্রদর্শন করতে হবে। বৈশিষ্ট্যের ডকুমেন্টেশন দেখুন।

স্থান আইডি সম্পর্কে আরো

iOS-এর জন্য Places SDK-এ ব্যবহৃত স্থান আইডি একই শনাক্তকারী যা Places API, Places SDK-এর জন্য Android এবং অন্যান্য Google API- এ ব্যবহৃত হয়।

প্রতিটি স্থানের আইডি শুধুমাত্র একটি স্থান উল্লেখ করতে পারে, কিন্তু একটি একক স্থানে একাধিক স্থানের আইডি থাকতে পারে।

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

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

আরও তথ্যের জন্য, স্থান আইডি ওভারভিউ দেখুন।