পাঠ্য অনুসন্ধান (নতুন)

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

টেক্সট সার্চ (নতুন) একটি স্ট্রিং-এর উপর ভিত্তি করে একগুচ্ছ স্থান সম্পর্কে তথ্য প্রদান করে (উদাহরণস্বরূপ, "নিউ ইয়র্কে পিৎজা" বা "অটোয়ার কাছে জুতার দোকান" বা "১২৩ মেইন স্ট্রিট")। পরিষেবাটি টেক্সট স্ট্রিংটির সাথে মিলে যাওয়া স্থানগুলির একটি তালিকা এবং সেট করা যেকোনো অবস্থানগত পক্ষপাত সহ প্রতিক্রিয়া জানায়।

প্রয়োজনীয় প্যারামিটারগুলোর পাশাপাশি, টেক্সট সার্চ (নতুন) আরও ভালো ফলাফলের জন্য ঐচ্ছিক প্যারামিটার ব্যবহার করে কোয়েরি পরিমার্জন করার সুবিধা দেয়।

টেক্সট সার্চের মাধ্যমে স্থানসমূহের তালিকা পান

একটি টেক্সট সার্চ অনুরোধ করতে, GMSPlacesClient searchByTextWithRequest: কল করুন এবং এর জন্য একটি GMSPlaceSearchByTextRequest অবজেক্ট পাস করুন, যা অনুরোধের প্যারামিটার এবং প্রতিক্রিয়া পরিচালনা করার জন্য GMSPlaceSearchByTextResultCallback টাইপের একটি কলব্যাক মেথড নির্ধারণ করে।

GMSPlaceSearchByTextRequest অবজেক্টটি অনুরোধের জন্য সমস্ত প্রয়োজনীয় এবং ঐচ্ছিক প্যারামিটার নির্দিষ্ট করে। প্রয়োজনীয় প্যারামিটারগুলো হলো:

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

এই উদাহরণ টেক্সট সার্চ অনুরোধটি নির্দিষ্ট করে যে, রেসপন্স GMSPlace অবজেক্টগুলোতে সার্চ রেজাল্টের প্রতিটি GMSPlace অবজেক্টের জন্য স্থানের নাম এবং স্থানের আইডি থাকবে। এটি রেসপন্সকে ফিল্টার করে শুধুমাত্র "রেস্তোরাঁ" ধরনের স্থানগুলো ফেরত পাঠায়।

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

let restriction = GMSPlaceRectangularLocationOption(
      northEast: CLLocationCoordinate2D(latitude: 20, longitude: 30),
      southWest: CLLocationCoordinate2D(latitude: 40, longitude: 50)
)
let searchByTextRequest = SearchByTextRequest(
        textQuery: "pizza in New York",
        placeProperties: [ .name, .placeID ],
        locationRestriction: restriction,
        includedType: .restaurant,
        maxResultCount: 5,
        minRating: 3.5,
        priceLevels: [ .moderate, .inexpensive ],
        isStrictTypeFiltering: true
)
switch await placesClient.searchByText(with: searchByTextRequest) {
case .success(let places):
  // Handle places
case .failure(let placesError):
  // Handle error
}

সুইফট

// Create the GMSPlaceSearchByTextRequest object.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.placeID].map {$0.rawValue}
let request = GMSPlaceSearchByTextRequest(textQuery:"pizza in New York", placeProperties:myProperties)
request.isOpenNow = true
request.includedType = "restaurant"
request.maxResultCount = 5
request.minRating = 3.5
request.rankPreference = .distance
request.isStrictTypeFiltering = true
request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)

// Array to hold the places in the response
var placeResults: [GMSPlace] = []

let callback: GMSPlaceSearchByTextResultCallback = { [weak self] results, error in
  guard let self, error == nil else {
    if let error {
      print(error.localizedDescription)
    }
    return
  }
  guard let results = results as? [GMSPlace] else {
    return
  }
  placeResults = results
}

GMSPlacesClient.shared().searchByText(with: request, callback: callback)

অবজেক্টিভ-সি

// Create the GMSPlaceSearchByTextRequest object.
GMSPlaceSearchByTextRequest *request =
    [[GMSPlaceSearchByTextRequest alloc] initWithTextQuery:@"pizza in New York" placeProperties:@[GMSPlacePropertyName, GMSPlacePropertyPlaceID]];
request.isOpenNow = YES;
request.includedType = @"restaurant";
request.maxResultCount = 5;
request.minRating = 3.5;
request.rankPreference = GMSPlaceSearchByTextRankPreferenceDistance;
request.isStrictTypeFiltering = YES;
request.priceLevels = @[ @(kGMSPlacesPriceLevelFree), @(kGMSPlacesPriceLevelCheap) ];
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0);

// Array to hold the places in the response
_placeResults = [NSArray array];

// Create the GMSPlaceSearchByTextRequest object.
[_placesClient searchByTextWithRequest:request
    callback:^(NSArray<GMSPlace *> *_Nullable placeResults, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"An error occurred %@", [error localizedDescription]);
        return;
      } else {
        if (placeResults.count > 0) {
          // Get list of places.
          _placeResults = placeResults;
      }
    }
  }
];

টেক্সট অনুসন্ধানের প্রতিক্রিয়া

টেক্সট সার্চ এপিআই মিলে যাওয়া স্থানগুলোর একটি অ্যারে 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
            }
          }];
          

পৃষ্ঠা সংখ্যা

টেক্সট সার্চ একটি পেজিনেশন অবজেক্ট প্রদান করে, যার নাম hasNextPage বুলিয়ান। টেক্সট সার্চ কলের প্রথম প্রতিক্রিয়ায় এটি ফেরত আসে। যদি পরবর্তী কোনো পৃষ্ঠা উপলব্ধ থাকে, তবে আপনি সেটি লোড করার জন্য fetchNextPage() ফাংশনটি ব্যবহার করতে পারেন।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে পরবর্তী পৃষ্ঠা উপলব্ধ আছে কিনা তা পরীক্ষা করতে হয় এবং তারপর পৃষ্ঠাটি লোড করতে হয়।

সুইফট

public struct PlaceSearchPagination {
  public var pageSize: Int
  public var hasNextPage: Bool
  public func fetchNextPage() async -> SearchByTextResponse
}

public struct SearchByTextResponse {
  public var pagination: PlaceSearchPagination?
  public var places: [Place]?
  public var error: PlaceError?
}

PlacesClient.swift
public func searchByText(with request: SearchByTextRequest) async -> SearchByTextResponse

let searchByTextRequest = SearchByTextRequest(textQuery: "restaurants",
    placeProperties: [PlaceProperty.displayName],
    locationBias: CircularCoordinateRegion(center: CLLocationCoordinate2D(latitude: 0, longitude: 0), radius: 100))

searchByTextRequest.maxResultCount = 10

var searchByTextResponse = await PlacesClient.shared.searchByText(with: searchByTextRequest)
print("Found \(searchByTextResponse.places.count) places")

searchByTextResponse.pagination.pageSize = 20

// Continue making requests until no more results are found in pagination object
while searchByTextResponse.pagination.hasNextPage {
    searchByTextResponse = await searchByTextResponse.pagination.fetchNextPage()
    print("Found \(searchByTextResponse.places.count) places")
}
    

অবজেক্টিভ-সি

GMSPlaceSearchByTextRequest *searchByTextRequest = [[GMSPlaceSearchByTextRequest alloc]
    initWithTextQuery: @"restaurants"
    placeProperties: @[GMSPlacePropertyAll]];

searchByTextRequest.maxResultCount = 10;

__block void (^recursiveCallback)(GMSPlaceSearchByTextResponse *, NSError *);
recursiveCallback = ^(GMSPlaceSearchByTextResponse * response, NSError* error) {
    NSLog(@"Found %d places", response.places.count);
    if (response.pagination.hasNextPage) {
      [response.pagination fetchNextPageWithCompletion:recursiveCallback];
   }
};
[GMSPlacesClient.sharedClient searchByTextWithRequest:searchByTextRequest  
                                           completion:recursiveCallback];
    

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

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

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

    কোন প্লেস ডেটা প্রোপার্টিগুলো ফেরত দেওয়া হবে তা নির্দিষ্ট করুন। ফেরতযোগ্য ডেটা ফিল্ডগুলো উল্লেখ করে GMSPlace প্রোপার্টিগুলোর একটি তালিকা পাস করুন। আপনি যদি ফিল্ড মাস্কটি বাদ দেন, তাহলে অনুরোধটি একটি ত্রুটি দেখাবে।

    ফিল্ড লিস্ট একটি ভালো ডিজাইন পদ্ধতি, যা নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটা অনুরোধ করছেন না, এবং এর ফলে অপ্রয়োজনীয় প্রসেসিং সময় ও বিলিং চার্জ এড়ানো যায়।

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

  • টেক্সট কোয়েরি

    যে টেক্সট স্ট্রিংটি দিয়ে সার্চ করতে হবে, যেমন: "restaurant", "123 Main Street", অথবা "best place to visit in San Francisco"।

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

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

  • অন্তর্ভুক্ত প্রকার

    টেবিল A ​​দ্বারা সংজ্ঞায়িত নির্দিষ্ট ধরণের সাথে মেলে এমন স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। শুধুমাত্র একটি ধরণ নির্দিষ্ট করা যেতে পারে। উদাহরণস্বরূপ:

    • let request = SearchByTextRequest()
      request.includedType = "bar"
    • let request = SearchByTextRequest()
      request.includedType = "pharmacy"
  • এখন খোলা আছে

    যদি true , তাহলে কোয়েরি পাঠানোর সময় শুধুমাত্র সেই স্থানগুলোই ফেরত দেওয়া হবে যেগুলো ব্যবসার জন্য খোলা আছে। যদি false , তাহলে খোলা থাকার অবস্থা নির্বিশেষে সমস্ত ব্যবসা ফেরত দেওয়া হবে। আপনি যদি এই প্যারামিটারটি ' false সেট করেন, তাহলে Google Places ডেটাবেসে যেসব স্থানের খোলার সময় উল্লেখ করা নেই, সেগুলোও ফেরত দেওয়া হবে।

  • isStrictTypeFiltering

    includeType প্যারামিটারের সাথে ব্যবহৃত হয়। যখন এটি true তে সেট করা হয়, তখন শুধুমাত্র includeType দ্বারা নির্দিষ্ট করা টাইপের সাথে মেলে এমন স্থানগুলোই ফেরত দেওয়া হয়। যখন এটি false (যা ডিফল্ট) থাকে, তখন রেসপন্সে এমন স্থানও থাকতে পারে যা নির্দিষ্ট টাইপের সাথে মেলে না।

  • অবস্থানগত পক্ষপাত

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

    আপনি locationRestriction অথবা locationBias নির্দিষ্ট করতে পারেন, কিন্তু উভয়ই নয়। locationRestriction কে এমন একটি অঞ্চল নির্দিষ্ট করা হিসেবে ভাবুন যার মধ্যে ফলাফল অবশ্যই থাকতে হবে, এবং locationBias এমন একটি অঞ্চল নির্দিষ্ট করা হিসেবে ভাবুন যার কাছাকাছি ফলাফল থাকতে হবে কিন্তু তা ওই এলাকার বাইরেও হতে পারে।

    অঞ্চলটিকে একটি আয়তাকার ভিউপোর্ট অথবা একটি বৃত্ত হিসাবে নির্দিষ্ট করুন।

    • একটি বৃত্তকে তার কেন্দ্রবিন্দু এবং মিটারে পরিমাপ করা ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। ব্যাসার্ধটি অবশ্যই ০.০ থেকে ৫০০০০.০-এর মধ্যে হতে হবে। ডিফল্ট ব্যাসার্ধ হলো ০.০। উদাহরণস্বরূপ:

      let request = SearchByTextRequest()
      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
    • একটি আয়তক্ষেত্র হলো একটি অক্ষাংশ-দ্রাঘিমাংশ ভিউপোর্ট, যা দুটি কর্ণানুযায়ী বিপরীত নিম্ন ও উচ্চ বিন্দু দ্বারা উপস্থাপিত হয়। নিম্ন বিন্দুটি আয়তক্ষেত্রটির দক্ষিণ-পশ্চিম কোণকে এবং উচ্চ বিন্দুটি এর উত্তর-পূর্ব কোণকে নির্দেশ করে।

      একটি ভিউপোর্টকে একটি বদ্ধ অঞ্চল হিসেবে বিবেচনা করা হয়, যার অর্থ এটি তার সীমানাকে অন্তর্ভুক্ত করে। অক্ষাংশের সীমা অবশ্যই -৯০ থেকে ৯০ ডিগ্রির মধ্যে হতে হবে এবং দ্রাঘিমাংশের সীমা অবশ্যই -১৮০ থেকে ১৮০ ডিগ্রির মধ্যে হতে হবে।

      • যদি low = high , তাহলে ভিউপোর্টটি সেই একক বিন্দুটি নিয়ে গঠিত হয়।
      • যদি low.longitude > high.longitude , তাহলে দ্রাঘিমাংশের পরিসরটি উল্টে যায় (ভিউপোর্টটি ১৮০ ডিগ্রি দ্রাঘিমা রেখা অতিক্রম করে)।
      • যদি low.longitude = -180 ডিগ্রি এবং high.longitude = 180 ডিগ্রি হয়, তাহলে ভিউপোর্টে সমস্ত দ্রাঘিমাংশ অন্তর্ভুক্ত থাকবে।
      • যদি low.longitude = 180 ডিগ্রি এবং high.longitude = -180 ডিগ্রি হয়, তাহলে দ্রাঘিমাংশের পরিসরটি খালি থাকে।
      • যদি low.latitude > high.latitude হয়, তাহলে অক্ষাংশের পরিসরটি খালি থাকে।
  • অবস্থান সীমাবদ্ধতা

    অনুসন্ধানের জন্য একটি এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফল ফেরত দেওয়া হয় না। অঞ্চলটিকে একটি আয়তক্ষেত্রাকার ভিউপোর্ট হিসেবে নির্দিষ্ট করুন। ভিউপোর্ট নির্ধারণ সংক্রান্ত তথ্যের জন্য locationBias এর বিবরণ দেখুন।

    আপনি locationRestriction অথবা locationBias নির্দিষ্ট করতে পারেন, কিন্তু উভয়ই নয়। locationRestriction কে এমন একটি অঞ্চল নির্দিষ্ট করা হিসেবে ভাবুন যার মধ্যে ফলাফল অবশ্যই থাকতে হবে, এবং locationBias এমন একটি অঞ্চল নির্দিষ্ট করা হিসেবে ভাবুন যার কাছাকাছি ফলাফল থাকতে হবে কিন্তু তা ওই এলাকার বাইরেও হতে পারে।

  • সর্বোচ্চ ফলাফল সংখ্যা

    ফেরত দেওয়া স্থানের ফলাফলের সর্বোচ্চ সংখ্যা নির্দিষ্ট করে। সংখ্যাটি অবশ্যই ১ থেকে ২০ (ডিফল্ট) এর মধ্যে হতে হবে।

  • সর্বনিম্ন রেটিং

    ফলাফল শুধুমাত্র তাদের মধ্যেই সীমাবদ্ধ থাকবে যাদের গড় ব্যবহারকারী রেটিং এই সীমার সমান বা তার বেশি। মান অবশ্যই ০.০ থেকে ৫.০ (উভয়সহ) এর মধ্যে ০.৫ এর গুণিতকে হতে হবে। উদাহরণস্বরূপ: ০, ০.৫, ১.০, ... , ৫.০ (উভয়সহ)। মান নিকটতম ০.৫ এ উন্নীত করা হয়। উদাহরণস্বরূপ, ০.৬ মানটি ১.০ এর কম রেটিংযুক্ত সমস্ত ফলাফল বাদ দিয়ে দেয়।

  • মূল্যস্তর

    অনুসন্ধানটি নির্দিষ্ট মূল্যস্তরে চিহ্নিত স্থানগুলিতে সীমাবদ্ধ করুন। ডিফল্টরূপে সমস্ত মূল্যস্তর নির্বাচিত থাকে।

    PriceLevel দ্বারা সংজ্ঞায়িত এক বা একাধিক মানের একটি অ্যারে নির্দিষ্ট করুন।

    উদাহরণস্বরূপ:

        let request = SearchByTextRequest()
        request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
  • র‍্যাঙ্কপ্রেফারেন্স

    কোয়েরির ধরনের উপর ভিত্তি করে রেসপন্সে ফলাফলগুলো কীভাবে র‍্যাঙ্ক করা হবে তা নির্দিষ্ট করে:

    • "নিউ ইয়র্ক সিটির রেস্তোরাঁ"-এর মতো একটি ক্যাটাগরিক্যাল কোয়েরির জন্য, .relevance (সার্চের প্রাসঙ্গিকতা অনুসারে ফলাফল র‍্যাঙ্ক করা) হলো ডিফল্ট। আপনি rankPreference কে .relevance অথবা .distance (দূরত্ব অনুসারে ফলাফল র‍্যাঙ্ক করা)-এ সেট করতে পারেন।
    • "Mountain View, CA"-এর মতো অ-শ্রেণীবদ্ধ কোয়েরির জন্য, আমরা rankPreference সেট না করার পরামর্শ দিই।
  • অঞ্চল কোড

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

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

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

  • বিশুদ্ধ পরিষেবা এলাকার ব্যবসাগুলিকে অন্তর্ভুক্ত করা উচিত

    যদি true , তাহলে অনুসন্ধানের ফলাফলে বিশুদ্ধ পরিষেবা এলাকার ব্যবসাগুলো দেখানো হবে। একটি বিশুদ্ধ পরিষেবা এলাকার ব্যবসা হলো এমন একটি ব্যবসা যা সরাসরি গ্রাহকদের কাছে যায় বা পণ্য সরবরাহ করে, কিন্তু গ্রাহকদের তাদের ব্যবসায়িক ঠিকানায় পরিষেবা দেয় না।

    উদাহরণস্বরূপ:

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

    let request = SearchByTextRequest()
    request.shouldIncludePureServiceAreaBusinesses = true

    সুইফট

    let request = SearchByTextRequest()
    request.shouldIncludePureServiceAreaBusinesses: true

    অবজেক্টিভ-সি

    GMSPlaceSearchByTextRequest *request =
        [[GMSPlaceSearchByTextRequest alloc] initWithTextQuery:@"pizza in New York" placeProperties:@[GMSPlacePropertyAll]];
    request.shouldIncludePureServiceAreaBusinesses = YES;

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

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

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

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