একটি কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ বৃত্তের কেন্দ্র বিন্দুর অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক এবং মিটার ব্যাসার্ধ দ্বারা সংজ্ঞায়িত একটি বৃত্ত হিসাবে নির্দিষ্ট করা অঞ্চলটিকে ইনপুট হিসাবে নেয়৷ অনুরোধটি নির্দিষ্ট অনুসন্ধান এলাকার মধ্যে মিলিত স্থানগুলির একটি তালিকা প্রদান করে, প্রতিটিকে একটি GMSPlace
অবজেক্ট দ্বারা উপস্থাপিত করা হয়।
ডিফল্টরূপে, প্রতিক্রিয়া অনুসন্ধান এলাকার মধ্যে সব ধরনের স্থান ধারণ করে। আপনি ঐচ্ছিকভাবে প্রতিক্রিয়া থেকে স্পষ্টভাবে অন্তর্ভুক্ত বা বাদ দেওয়ার জন্য স্থানের প্রকারের একটি তালিকা নির্দিষ্ট করে প্রতিক্রিয়া ফিল্টার করতে পারেন। উদাহরণ স্বরূপ, আপনি "রেস্তোরাঁ", "বেকারি" এবং "ক্যাফে" টাইপের সেইসব স্থানগুলিকে প্রতিক্রিয়াতে অন্তর্ভুক্ত করার জন্য নির্দিষ্ট করতে পারেন বা "স্কুল" টাইপের সমস্ত জায়গা বাদ দিতে পারেন৷
কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ
GMSPlacesClient searchNearbyWithRequest:
, একটি GMSPlaceSearchNearbyRequest
অবজেক্ট পাস করে যা অনুরোধের পরামিতি এবং একটি কলব্যাক পদ্ধতি সংজ্ঞায়িত করে, GMSPlaceSearchNearbyResultCallback
টাইপ, প্রতিক্রিয়া পরিচালনা করতে কল করে একটি কাছাকাছি অনুসন্ধানের অনুরোধ করুন৷
GMSPlaceSearchNearbyRequest
বস্তুটি অনুরোধের জন্য প্রয়োজনীয় এবং ঐচ্ছিক পরামিতিগুলি নির্দিষ্ট করে। প্রয়োজনীয় পরামিতি অন্তর্ভুক্ত:
-
GMSPlace
অবজেক্টে ফিল্ডের তালিকা, যাকে ফিল্ড মাস্কও বলা হয়, যেমনGMSPlaceProperty
দ্বারা সংজ্ঞায়িত করা হয়েছে। আপনি যদি ক্ষেত্র তালিকায় অন্তত একটি ক্ষেত্র নির্দিষ্ট না করেন, অথবা যদি আপনি ক্ষেত্র তালিকা বাদ দেন, তাহলে কলটি একটি ত্রুটি প্রদান করে৷ - অবস্থানের সীমাবদ্ধতা , যার অর্থ সার্চ এলাকা সংজ্ঞায়িত করে বৃত্ত।
কাছাকাছি অনুসন্ধান অনুরোধের এই উদাহরণটি নির্দিষ্ট করে যে প্রতিক্রিয়া GMSPlace
অবজেক্টে সার্চ ফলাফলে প্রতিটি GMSPlace
অবজেক্টের জন্য স্থানের নাম ( GMSPlacePropertyName
) এবং স্থান স্থানাঙ্ক ( GMSPlacePropertyCoordinate
) থাকে। এটি শুধুমাত্র "রেস্তোরাঁ" এবং "ক্যাফে" টাইপের রিটার্ন জায়গাগুলির প্রতিক্রিয়া ফিল্টার করে।
সুইফট
// Array to hold the places in the response var placeResults: [GMSPlace] = [] // Define the search area as a 500 meter diameter circle in San Francisco, CA. let circularLocationRestriction = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500) // Specify the fields to return in the GMSPlace object for each place in the response. let placeProperties = [GMSPlaceProperty.name, GMSPlaceProperty.coordinate].map {$0.rawValue} // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. var request = GMSPlaceSearchNearbyRequest(locationRestriction: circularLocationRestriction, placeProperties: placeProperties) let includedTypes = ["restaurant", "cafe"] request.includedTypes = includedTypes let callback: GMSPlaceSearchNearbyResultCallback = { [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().searchNearby(with: request, callback: callback)
উদ্দেশ্য গ
// Array to hold the places in the response _placeResults = [NSArray array]; // Define the search area as a 500 meter diameter circle in San Francisco, CA. id<GMSPlaceLocationRestriction> circularLocation = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500); // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. GMSPlaceSearchNearbyRequest *request = [[GMSPlaceSearchNearbyRequest alloc] initWithLocationRestriction:circularLocation placeProperties:@[ GMSPlacePropertyName, GMSPlacePropertyCoordinate ]]; // Set the place types to filter on. NSArray<NSString *> *includedTypes = @[ @"restaurant", @"cafe" ]; request.includedTypes = [[NSMutableArray alloc] initWithArray:includedTypes]; [_placesClient searchNearbyWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable places, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { // Get list of places. _placeResults = places; } } ];
GooglePlacesSwift
let restriction = CircularCoordinateRegion(center: CLLocationCoordinate2DMake(37.7937, -122.3965), radius: 500) let searchNearbyRequest = SearchNearbyRequest( locationRestriction: restriction, placeProperties: [ .name, .coordinate], includedTypes: [ .restaurant, .cafe ], ) switch await placesClient.searchNearby(with: searchNearbyRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
কাছাকাছি অনুসন্ধান প্রতিক্রিয়া
কাছাকাছি অনুসন্ধান APIGMSPlace
অবজেক্টের আকারে মিলের একটি অ্যারে প্রদান করে, প্রতি মিলিত জায়গায় একটি GMSPlace
অবজেক্ট সহ। ডেটা ক্ষেত্রগুলির পাশাপাশি, প্রতিক্রিয়াতে GMSPlace
অবজেক্টে নিম্নলিখিত সদস্য ফাংশনগুলি রয়েছে:
-
isOpen
নির্দিষ্ট সময়ে একটি জায়গা খোলা আছে কিনা তা গণনা করে। -
isOpenAtDate
একটি নির্দিষ্ট তারিখে একটি স্থান খোলা আছে কিনা তা গণনা করে৷
প্রয়োজনীয় পরামিতি
অনুসন্ধানের জন্য প্রয়োজনীয় পরামিতি নির্দিষ্ট করতে GMSPlaceSearchNearbyRequest
অবজেক্ট ব্যবহার করুন।
ক্ষেত্র তালিকা
আপনি যখন জায়গার বিশদ বিবরণের জন্য অনুরোধ করেন, তখন আপনাকে অবশ্যই ফিল্ড মাস্ক হিসাবে জায়গাটির জন্য
GMSPlace
অবজেক্টে ফিরে আসার জন্য ডেটা নির্দিষ্ট করতে হবে। ফিল্ড মাস্ক সংজ্ঞায়িত করতে,GMSPlaceProperty
থেকেGMSPlaceSearchNearbyRequest
অবজেক্টে মানগুলির একটি অ্যারে পাস করুন। আপনি অপ্রয়োজনীয় ডেটার অনুরোধ করবেন না তা নিশ্চিত করার জন্য ফিল্ড মাস্কিং একটি ভাল ডিজাইন অনুশীলন, যা অপ্রয়োজনীয় প্রক্রিয়াকরণের সময় এবং বিলিং চার্জ এড়াতে সহায়তা করে।নিম্নলিখিত ক্ষেত্রগুলির মধ্যে এক বা একাধিক নির্দিষ্ট করুন:
নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (বেসিক) SKU ট্রিগার করে:
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
Status ,GMSPlacePropertyCoordinate
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyName
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
GMSPlacePropertyPhotos
,GMSPlacePropertyPlaceID
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
GMSPlacePropertyUTCOffsetMinutes
Entranceনিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (উন্নত) SKU ট্রিগার করে:
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
Hours ,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (পছন্দের) SKU ট্রিগার করে:
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
GMSPlacePropertyTakeout
Food ,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
নিম্নলিখিত উদাহরণটি নির্দিষ্ট করতে দুটি ক্ষেত্রের মানের একটি তালিকা পাস করে যে
GMSPlace
অবজেক্টটি একটি অনুরোধ দ্বারা প্রত্যাবর্তন করেname
এবংplaceID
ক্ষেত্র রয়েছে:সুইফট
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
উদ্দেশ্য গ
// Specify the place data types to return. NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
GooglePlacesSwift
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
অবস্থান সীমাবদ্ধতা
একটি
GMSPlaceLocationRestriction
অবজেক্ট যা একটি বৃত্ত হিসাবে নির্দিষ্ট অনুসন্ধানের জন্য অঞ্চলকে সংজ্ঞায়িত করে, কেন্দ্র বিন্দু এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত। ব্যাসার্ধ অবশ্যই 0.0 এবং 50000.0 এর মধ্যে হতে হবে। ডিফল্ট ব্যাসার্ধ হল 0.0। আপনার অনুরোধে এটিকে অবশ্যই 0.0-এর বেশি মান নির্ধারণ করতে হবে।
ঐচ্ছিক পরামিতি
অনুসন্ধানের জন্য ঐচ্ছিক পরামিতি নির্দিষ্ট করতে GMSPlaceSearchNearbyRequest
অবজেক্ট ব্যবহার করুন।
অন্তর্ভুক্ত প্রকার/বাদ দেওয়া প্রকার, অন্তর্ভুক্ত প্রাথমিক প্রকার/বাদ দেওয়া প্রাথমিক প্রকার
সার্চ ফলাফল ফিল্টার করতে ব্যবহৃত সারণী A থেকে প্রকারের একটি তালিকা আপনাকে নির্দিষ্ট করতে দেয়। প্রতিটি ধরনের সীমাবদ্ধতা বিভাগে 50টি পর্যন্ত নির্দিষ্ট করা যেতে পারে।
একটি স্থানের সাথে যুক্ত সারণী A থেকে শুধুমাত্র একটি একক প্রাথমিক প্রকার থাকতে পারে। উদাহরণস্বরূপ, প্রাথমিক প্রকার হতে পারে
"mexican_restaurant"
বা"steak_house"
। একটি স্থানের প্রাথমিক প্রকারের ফলাফলগুলি ফিল্টার করতেincludedPrimaryTypes
এবংexcludedPrimaryTypes
ব্যবহার করুন৷একটি স্থানের সাথে যুক্ত সারণী A থেকে একাধিক ধরণের মান থাকতে পারে। উদাহরণস্বরূপ একটি রেস্তোরাঁর নিম্নলিখিত প্রকারগুলি থাকতে পারে:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
। একটি স্থানের সাথে সম্পর্কিত প্রকারের তালিকায় ফলাফলগুলি ফিল্টার করতেincludedTypes
এবংexcludedTypes
ব্যবহার করুন৷যদি একটি অনুসন্ধান একাধিক প্রকারের বিধিনিষেধের সাথে নির্দিষ্ট করা হয়, শুধুমাত্র সেই স্থানগুলি যা সমস্ত বিধিনিষেধ পূরণ করে ফেরত দেওয়া হয়৷ উদাহরণ স্বরূপ, আপনি যদি
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
উল্লেখ করেন, তাহলে প্রত্যাবর্তিত স্থানগুলি"restaurant"
সম্পর্কিত পরিষেবা প্রদান করে কিন্তু প্রাথমিকভাবে"steak_house"
হিসাবে কাজ করে না।অন্তর্ভুক্ত প্রকার
অনুসন্ধান করার জন্য টেবিল A থেকে স্থানের প্রকারের একটি তালিকা৷ যদি এই প্যারামিটারটি বাদ দেওয়া হয়, তাহলে সব ধরনের স্থান ফেরত দেওয়া হয়।
বর্জিত প্রকার
একটি অনুসন্ধান থেকে বাদ দিতে টেবিল A থেকে স্থানের প্রকারের একটি তালিকা৷
আপনি যদি অনুরোধে
includedTypes
(যেমন"school"
) এবংexcludedTypes
(যেমন"primary_school"
) উভয়ই উল্লেখ করেন, তাহলে প্রতিক্রিয়াতে এমন জায়গাগুলি অন্তর্ভুক্ত থাকে যেগুলিকে"school"
হিসাবে শ্রেণীবদ্ধ করা হয়েছে কিন্তু"primary_school"
হিসাবে নয়। প্রতিক্রিয়ার মধ্যে এমন স্থানগুলি অন্তর্ভুক্ত রয়েছে যেগুলিincludedTypes
মধ্যে অন্তত একটির সাথে মেলে এবংexcludedTypes
একটির সাথেও মেলে না৷যদি কোনো পরস্পরবিরোধী প্রকার থাকে, যেমন একটি প্রকার
includedTypes
এবংexcludedTypes
উভয় ক্ষেত্রে প্রদর্শিত হয়, একটিINVALID_REQUEST
ত্রুটি ফেরত দেওয়া হয়৷প্রাইমারি টাইপস অন্তর্ভুক্ত
একটি অনুসন্ধানে অন্তর্ভুক্ত করার জন্য সারণী A থেকে প্রাথমিক স্থানের প্রকারের একটি তালিকা৷
বাদ দেওয়া প্রাথমিক প্রকার
একটি অনুসন্ধান থেকে বাদ দেওয়ার জন্য সারণী A থেকে প্রাথমিক স্থানের প্রকারের একটি তালিকা৷
যদি কোনো বিরোধপূর্ণ প্রাথমিক প্রকার থাকে, যেমন একটি প্রকার
includedPrimaryTypes
এবংexcludedPrimaryTypes
টাইপস উভয়েই প্রদর্শিত হয়, একটিINVALID_ARGUMENT
ত্রুটি ফেরত দেওয়া হয়৷maxResultCount
স্থানের ফলাফলের সর্বোচ্চ সংখ্যক ফেরত দিতে হবে তা নির্দিষ্ট করে। 1 এবং 20 এর মধ্যে হতে হবে (ডিফল্ট) অন্তর্ভুক্ত।
র্যাঙ্ক পছন্দ
ব্যবহার করার জন্য র্যাঙ্কিংয়ের ধরন। যদি এই প্যারামিটারটি বাদ দেওয়া হয়, ফলাফলগুলি জনপ্রিয়তার ভিত্তিতে র্যাঙ্ক করা হয়। নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
-
.popularity
(ডিফল্ট) তাদের জনপ্রিয়তার উপর ভিত্তি করে ফলাফল বাছাই করে। -
.distance
বাছাই নির্দিষ্ট অবস্থান থেকে তাদের দূরত্ব দ্বারা আরোহী ক্রমে ফলাফল.
-
অঞ্চল কোড
উত্তর ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড, একটি দুই-অক্ষরের CLDR কোড মান হিসাবে নির্দিষ্ট করা হয়েছে। এর কোন পূর্ব মূল্য নেই।
উত্তরে
formattedAddress
ক্ষেত্রের দেশের নাম যদিregionCode
সাথে মেলে, তাহলে দেশের কোডটিformattedAddress
থেকে বাদ দেওয়া হয়। এই পরামিতিটিadrFormatAddress
এ কোন প্রভাব নেই, যা সর্বদা দেশের নাম অন্তর্ভুক্ত করে, অথবাshortFormattedAddress
এ, যা কখনই এটি অন্তর্ভুক্ত করে না।কিছু উল্লেখযোগ্য ব্যতিক্রম সহ বেশিরভাগ 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
অবজেক্টে অ্যাট্রিবিউশন এবং লেখক অ্যাট্রিবিউশন থাকতে পারে। আপনি যদি আপনার অ্যাপে পর্যালোচনা প্রদর্শন করেন, তাহলে আপনাকে অবশ্যই কোনো অ্যাট্রিবিউশন বা লেখকের অ্যাট্রিবিউশনও প্রদর্শন করতে হবে।
আরও তথ্যের জন্য, বৈশিষ্ট্যের ডকুমেন্টেশন দেখুন।