'आस-पास की जगहों की जानकारी (नया वर्शन)' अनुरोध में, खोजे जाने वाले क्षेत्र को इनपुट के तौर पर लिया जाता है. इसे एक सर्कल के तौर पर दिखाया जाता है. इसे सर्कल के केंद्र बिंदु के अक्षांश और देशांतर निर्देशांकों और मीटर में रेडियस के हिसाब से तय किया जाता है. अनुरोध के जवाब में, खोज के लिए तय की गई जगह में मौजूद मिलती-जुलती जगहों की सूची मिलती है. हर जगह को GMSPlace ऑब्जेक्ट के तौर पर दिखाया जाता है.
डिफ़ॉल्ट रूप से, जवाब में खोज के दायरे में आने वाली सभी तरह की जगहें शामिल होती हैं. आपके पास यह विकल्प होता है कि जवाब को फ़िल्टर किया जा सके. इसके लिए, जगहों के टाइप की एक सूची तय करें. इससे यह तय किया जा सकेगा कि जवाब में किन जगहों को शामिल करना है और किन जगहों को शामिल नहीं करना है. उदाहरण के लिए, जवाब में सिर्फ़ "रेस्तरां", "बेकरी", और "कैफ़े" टाइप की जगहों को शामिल करने के लिए कहा जा सकता है. इसके अलावा, "स्कूल" टाइप की सभी जगहों को बाहर रखने के लिए कहा जा सकता है.
आस-पास की जगहों की जानकारी (नई) के लिए किए गए अनुरोध
GMSPlacesClient searchNearbyWithRequest: को कॉल करके, आस-पास की जगहों की जानकारी खोजने का अनुरोध करें. इसके लिए, GMSPlaceSearchNearbyRequest ऑब्जेक्ट पास करें. यह ऑब्जेक्ट, अनुरोध के पैरामीटर और कॉलबैक का तरीका तय करता है. साथ ही, GMSPlaceSearchNearbyResultCallback टाइप का होता है, ताकि जवाब को हैंडल किया जा सके.
GMSPlaceSearchNearbyRequest ऑब्जेक्ट, अनुरोध के लिए ज़रूरी और ज़रूरी नहीं पैरामीटर के बारे में बताता है. इनमें ये ज़रूरी पैरामीटर शामिल हैं:
GMSPlaceऑब्जेक्ट में दिखाई जाने वाली फ़ील्ड की सूची. इसे फ़ील्ड मास्क भी कहा जाता है. इसेGMSPlacePropertyने तय किया है. अगर फ़ील्ड की सूची में कम से कम एक फ़ील्ड नहीं दिया जाता है या फ़ील्ड की सूची को छोड़ दिया जाता है, तो कॉल में गड़बड़ी दिखती है.- जगह के हिसाब से खोज करने की सुविधा, इसका मतलब है कि खोज के दायरे को तय करने वाला सर्कल.
आस-पास की जगहों को खोजने के इस उदाहरण में बताया गया है कि खोज के नतीजों में मौजूद हर GMSPlace ऑब्जेक्ट के लिए, जवाब वाले GMSPlace ऑब्जेक्ट में जगह का नाम (GMSPlacePropertyName) और जगह के कोऑर्डिनेट (GMSPlacePropertyCoordinate) शामिल हैं. यह जवाब को फ़िल्टर करके, सिर्फ़ "रेस्टोरेंट" और "कैफ़े" टाइप की जगहों की जानकारी दिखाता है.
Places Swift SDK
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 }
Swift
// 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)
Objective-C
// 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; } } ];
आस-पास की खोज के जवाब
Nearby Search API, मैच करने वाली जगहों की जानकारी कोGMSPlace ऑब्जेक्ट के तौर पर दिखाता है. इसमें मैच करने वाली हर जगह के लिए एक GMSPlace ऑब्जेक्ट होता है.
खुला है
GMSPlacesClient ऑब्जेक्ट में एक मेंबर फ़ंक्शन होता है, जिसे isOpenWithRequest (Swift में isOpenRequest और GooglePlacesSwift में isPlaceOpenRequest) कहा जाता है. यह फ़ंक्शन एक ऐसा जवाब देता है जिससे पता चलता है कि कॉल में बताए गए समय के हिसाब से, जगह फ़िलहाल खुली है या नहीं.
यह तरीका, GMSPlaceIsOpenWithRequest टाइप का एक आर्ग्युमेंट लेता है. इसमें ये शामिल हैं:
GMSPlaceऑब्जेक्ट या जगह का आईडी बताने वाली स्ट्रिंग. ज़रूरी फ़ील्ड के साथ Place ऑब्जेक्ट बनाने के बारे में ज़्यादा जानने के लिए, जगह की जानकारी देखें.
- यह एक वैकल्पिक
NSDate(Obj-C) याDate(Swift) ऑब्जेक्ट है. इससे यह तय किया जाता है कि आपको किस समय की जांच करनी है. अगर कोई समय नहीं दिया गया है, तो डिफ़ॉल्ट रूप से मौजूदा समय का इस्तेमाल किया जाता है. - जवाब को मैनेज करने का
GMSPlaceOpenStatusResponseCallbackतरीका. >
GMSPlaceIsOpenWithRequest तरीके के लिए, GMSPlace ऑब्जेक्ट में इन फ़ील्ड को सेट करना ज़रूरी है:
GMSPlacePropertyUTCOffsetMinutesGMSPlacePropertyBusinessStatusGMSPlacePropertyOpeningHoursGMSPlacePropertyCurrentOpeningHoursGMSPlacePropertySecondaryOpeningHours
अगर ये फ़ील्ड, Place ऑब्जेक्ट में नहीं दिए गए हैं या आपने कोई जगह का आईडी पास किया है, तो यह तरीका उन्हें फ़ेच करने के लिए GMSPlacesClient GMSFetchPlaceRequest: का इस्तेमाल करता है.
isOpenWithRequest जवाब
isOpenWithRequest, GMSPlaceIsOpenResponse ऑब्जेक्ट दिखाता है. इसमें status नाम की एक बूलियन वैल्यू होती है. इससे पता चलता है कि कारोबार खुला है, बंद है या उसका स्टेटस पता नहीं है.
| भाषा | अगर खुला है, तो वैल्यू | कारोबार बंद होने पर वैल्यू | स्थिति की जानकारी न होने पर वैल्यू |
|---|---|---|---|
| Places Swift | true |
false |
nil |
| Swift | .open |
.closed |
.unknown |
| Objective-C | GMSPlaceOpenStatusOpen |
GMSPlaceOpenStatusClosed |
GMSPlaceOpenStatusUnknown |
isOpenWithRequest के लिए बिलिंग
GMSPlacePropertyUTCOffsetMinutesऔरGMSPlacePropertyBusinessStatusफ़ील्ड के लिए, बुनियादी डेटा एसकेयू के तहत शुल्क लिया जाता है. खुलने के समय के बाकी घंटे, जगह की जानकारी देने वाले Enterprise SKU के तहत शुल्क लिया जाता है.- अगर आपके
GMSPlaceऑब्जेक्ट में, पिछले अनुरोध से ये फ़ील्ड पहले से ही मौजूद हैं, तो आपसे फिर से शुल्क नहीं लिया जाएगा.
उदाहरण: GMSPlaceIsOpenWithRequest का अनुरोध करो
यहां दिए गए उदाहरण में, किसी मौजूदा GMSPlace ऑब्जेक्ट में GMSPlaceIsOpenWithRequest को शुरू करने का तरीका बताया गया है.
Places Swift SDK
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 }
Swift
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 } }
Objective-C
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 } }];
ज़रूरी पैरामीटर
खोज के लिए ज़रूरी पैरामीटर तय करने के लिए, GMSPlaceSearchNearbyRequest ऑब्जेक्ट का इस्तेमाल करें.
-
फ़ील्ड की सूची
जगह की जानकारी का अनुरोध करते समय, आपको उस डेटा के बारे में बताना होगा जिसे जगह के लिए
GMSPlaceऑब्जेक्ट में फ़ील्ड मास्क के तौर पर दिखाना है. फ़ील्ड मास्क तय करने के लिए,GMSPlacePropertyसेGMSPlaceSearchNearbyRequestऑब्जेक्ट तक वैल्यू का एक कलेक्शन पास करें. फ़ील्ड मास्किंग, डिज़ाइन करने का एक अच्छा तरीका है. इससे यह पक्का किया जा सकता है कि आपने बिना वजह डेटा का अनुरोध न किया हो. इससे, प्रोसेसिंग में लगने वाले समय और बिलिंग के शुल्कों से बचा जा सकता है.इनमें से एक या उससे ज़्यादा फ़ील्ड डालें:
इन फ़ील्ड से आस-पास की जगहों की जानकारी Search Pro SKU ट्रिगर होता है:
GMSPlacePropertyAddressComponents
GMSPlacePropertyBusinessStatus
GMSPlacePropertyCoordinate
GMSPlacePropertyFormattedAddress
GMSPlacePropertyName
GMSPlacePropertyIconBackgroundColor
GMSPlacePropertyIconImageURL
GMSPlacePropertyPhotos
GMSPlacePropertyPlaceID
GMSPlacePropertyPlusCode
GMSPlacePropertyTypes
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyViewport
GMSPlacePropertyWheelchairAccessibleEntranceफ़ील्ड और उनसे जुड़े एसकेयू की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
इन फ़ील्ड से आस-पास की जगहों की जानकारी Enterprise SKU ट्रिगर होता है:
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
GMSPlacePropertyPhoneNumber
GMSPlacePropertyPriceLevel
GMSPlacePropertyRating
GMSPlacePropertyOpeningHours
GMSPlacePropertyUserRatingsTotal
GMSPlacePropertyWebsiteफ़ील्ड और उनसे जुड़े एसकेयू की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
नीचे दिए गए फ़ील्ड, आस-पास की जगहों की जानकारी Enterprise Plus एसकेयू को ट्रिगर करते हैं:
GMSPlacePropertyCurbsidePickup
GMSPlacePropertyDelivery
GMSPlacePropertyDineIn
GMSPlacePropertyEditorialSummary
GMSPlacePropertyReservable
GMSPlacePropertyReviews
GMSPlacePropertyServesBeer
GMSPlacePropertyServesBreakfast
GMSPlacePropertyServesBrunch
GMSPlacePropertyServesDinner
GMSPlacePropertyServesLunch
GMSPlacePropertyServesVegetarianFood
GMSPlacePropertyServesWine
GMSPlacePropertyTakeoutफ़ील्ड और उनसे जुड़े एसकेयू की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
यहां दिए गए उदाहरण में, दो फ़ील्ड वैल्यू की सूची पास की गई है. इससे यह पता चलता है कि अनुरोध से मिले
GMSPlaceऑब्जेक्ट मेंnameऔरplaceIDफ़ील्ड शामिल हैं:Places Swift SDK
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
Swift
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
Objective-C
// Specify the place data types to return. NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
-
locationRestriction
GMSPlaceLocationRestrictionऑब्जेक्ट. यह ऑब्जेक्ट, खोज के लिए क्षेत्र तय करता है. इसे एक सर्कल के तौर पर दिखाया जाता है. इसे केंद्र बिंदु और मीटर में रेडियस के हिसाब से तय किया जाता है. रेडियस, 0.0 और 50000.0 के बीच होना चाहिए. हालांकि, इन दोनों में से भी कोई संख्या हो सकती है. डिफ़ॉल्ट रेडियस 0.0 है. आपको अपने अनुरोध में इसे 0.0 से ज़्यादा पर सेट करना होगा.
ज़रूरी नहीं पैरामीटर
खोज के लिए, वैकल्पिक पैरामीटर तय करने के लिए GMSPlaceSearchNearbyRequest ऑब्जेक्ट का इस्तेमाल करें.
-
includedTypes/excludedTypes, includedPrimaryTypes/excludedPrimaryTypes
इस विकल्प की मदद से, टेबल A में मौजूद टाइप की सूची तय की जा सकती है. इसका इस्तेमाल खोज के नतीजों को फ़िल्टर करने के लिए किया जाता है. पाबंदी के हर टाइप की कैटगरी में, ज़्यादा से ज़्यादा 50 टाइप दिए जा सकते हैं.
किसी जगह के लिए, टेबल A में दिए गए टाइप में से सिर्फ़ एक प्राइमरी टाइप चुना जा सकता है. उदाहरण के लिए, प्राइमरी टाइप
"mexican_restaurant"या"steak_house"हो सकता है. किसी जगह के मुख्य टाइप के हिसाब से नतीजों को फ़िल्टर करने के लिए,includedPrimaryTypesऔरexcludedPrimaryTypesका इस्तेमाल करें.किसी जगह के लिए, उससे जुड़ी टेबल A में मौजूद एक से ज़्यादा टाइप वैल्यू भी हो सकती हैं. उदाहरण के लिए, किसी रेस्टोरेंट के ये टाइप हो सकते हैं:
"seafood_restaurant","restaurant","food","point_of_interest","establishment". किसी जगह से जुड़े टाइप की सूची में मौजूद नतीजों को फ़िल्टर करने के लिए,includedTypesऔरexcludedTypesका इस्तेमाल करें.जब
"restaurant"या"hotel"जैसे सामान्य प्राइमरी टाइप के बारे में बताया जाता है, तो जवाब में ऐसे स्थान शामिल हो सकते हैं जिनका प्राइमरी टाइप, बताए गए प्राइमरी टाइप से ज़्यादा सटीक हो. उदाहरण के लिए, आपने"restaurant"को शामिल करने के लिए कहा है. इसके बाद, जवाब में"restaurant"प्राइमरी टाइप वाली जगहें शामिल हो सकती हैं. हालांकि, जवाब में"chinese_restaurant"या"seafood_restaurant"जैसे ज़्यादा खास प्राइमरी टाइप वाली जगहें भी शामिल हो सकती हैं.अगर किसी खोज में कई तरह की पाबंदियां लगाई गई हैं, तो सिर्फ़ वे जगहें दिखाई जाती हैं जो सभी पाबंदियों को पूरा करती हैं. उदाहरण के लिए, अगर आपने
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}को चुना है, तो खोज के नतीजों में दिखने वाली जगहों पर"restaurant"से जुड़ी सेवाएं मिलती हैं. हालांकि, ये मुख्य रूप से"steak_house"के तौर पर काम नहीं करती हैं.includedTypes
टेबल A में मौजूद जगहों के टाइप की सूची, जिन्हें खोजना है. अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो सभी तरह की जगहों की जानकारी मिलती है.
excludedTypes
टेबल A में मौजूद जगहों के टाइप की सूची, जिसे खोज के नतीजों से बाहर रखना है.
अगर अनुरोध में
includedTypes(जैसे कि"school") औरexcludedTypes(जैसे कि"primary_school") दोनों को शामिल किया जाता है, तो जवाब में वे जगहें शामिल होती हैं जिन्हें"school"के तौर पर कैटगरी में रखा गया है, लेकिन"primary_school"के तौर पर नहीं. जवाब में ऐसी जगहें शामिल हैं जोincludedTypesमें से कम से कम एक से मैच करती हैं औरexcludedTypesमें से किसी से भी मैच नहीं करती हैं.अगर कोई टाइप दोनों में दिखता है, जैसे कि
includedTypesऔरexcludedTypes, तोINVALID_REQUESTगड़बड़ी दिखती है.includedPrimaryTypes
खोज में शामिल करने के लिए, टेबल A में मौजूद मुख्य जगहों के टाइप की सूची.
excludedPrimaryTypes
टेबल A में मौजूद मुख्य जगहों के टाइप की सूची, जिन्हें खोज के नतीजों में शामिल नहीं करना है.
अगर प्राइमरी टाइप में कोई टकराव होता है, जैसे कि कोई टाइप
includedPrimaryTypesऔरexcludedPrimaryTypes, दोनों में दिखता है, तोINVALID_ARGUMENTगड़बड़ी दिखती है. -
maxResultCount
जगह के नतीजों की ज़्यादा से ज़्यादा संख्या तय करता है. यह 1 और 20 (डिफ़ॉल्ट) के बीच होना चाहिए.
-
rankPreference
इस्तेमाल की जाने वाली रैंकिंग का टाइप. अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो नतीजों को लोकप्रियता के हिसाब से रैंक किया जाता है. यह इनमें से कोई एक हो सकता है:
.popularity(डिफ़ॉल्ट) नतीजों को उनकी लोकप्रियता के आधार पर क्रम से लगाता है..distanceनतीजों को, बताई गई जगह से उनकी दूरी के हिसाब से बढ़ते क्रम में क्रमबद्ध करता है.
-
regionCode
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया क्षेत्र कोड. इसे दो वर्णों वाले CLDR कोड वैल्यू के तौर पर तय किया जाता है. इसकी कोई डिफ़ॉल्ट वैल्यू नहीं होती.
अगर जवाब में मौजूद
formattedAddressफ़ील्ड में दिए गए देश का नाम,regionCodeमें दिए गए देश के नाम से मेल खाता है, तोformattedAddressसे देश का कोड हटा दिया जाता है. इस पैरामीटर काadrFormatAddressपर कोई असर नहीं पड़ता. इसमें हमेशा देश का नाम शामिल होता है. साथ ही, इसकाshortFormattedAddressपर भी कोई असर नहीं पड़ता. इसमें देश का नाम कभी शामिल नहीं होता.ज़्यादातर CLDR कोड, ISO 3166-1 कोड के जैसे ही होते हैं. हालांकि, कुछ मामलों में ये अलग होते हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि इसका ISO 3166-1 कोड "gb" है. तकनीकी तौर पर, यह "ग्रेट ब्रिटेन और उत्तरी आयरलैंड का यूनाइटेड किंगडम" के लिए है. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाना
अगर आपका ऐप्लिकेशन, GMSPlacesClient से मिली जानकारी दिखाता है, तो उसे ज़रूरी एट्रिब्यूशन भी दिखाने होंगे. जैसे, फ़ोटो और समीक्षाएं.
उदाहरण के लिए, GMSPlacesClient ऑब्जेक्ट की reviews प्रॉपर्टी में ज़्यादा से ज़्यादा पांच GMSPlaceReview ऑब्जेक्ट का कलेक्शन होता है. हर GMSPlaceReview ऑब्जेक्ट में एट्रिब्यूशन और लेखक के एट्रिब्यूशन शामिल हो सकते हैं.
अगर आपने अपने ऐप्लिकेशन में समीक्षा दिखाई है, तो आपको एट्रिब्यूशन या लेखक का एट्रिब्यूशन भी दिखाना होगा.
ज़्यादा जानकारी के लिए, एट्रिब्यूशन के बारे में दस्तावेज़ देखें.