Places SDK for iOS (New) आपके ऐप्लिकेशन को जगहों के बारे में ज़्यादा जानकारी देता है. जैसे, जगह का नाम और पता, अक्षांश/देशांतर निर्देशांक के तौर पर बताई गई भौगोलिक जगह, जगह का टाइप (जैसे, नाइट क्लब, पेट स्टोर, म्यूज़ियम) वगैरह. किसी जगह की यह जानकारी ऐक्सेस करने के लिए, जगह के आईडी का इस्तेमाल किया जा सकता है. यह एक ऐसा आइडेंटिफ़ायर होता है जो किसी जगह की पहचान करता है.
जगह की जानकारी पाना
GMSPlace
क्लास में किसी जगह के बारे में जानकारी होती है. इसमें जगह की जानकारी के डेटा फ़ील्ड (नए) में दिखाए गए सभी डेटा फ़ील्ड शामिल होते हैं. GMSPlacesClient
fetchPlaceWithRequest:
को कॉल करके, GMSFetchPlaceRequest
ऑब्जेक्ट और GMSPlaceResultCallback
टाइप का कॉलबैक तरीका पास करके, GMSPlace
ऑब्जेक्ट पाएं.
GMSFetchPlaceRequest
ऑब्जेक्ट में यह जानकारी होती है:
- (ज़रूरी है) जगह का आईडी, Google Places के डेटाबेस और Google Maps पर मौजूद किसी जगह की खास तौर पर पहचान करता है.
- (ज़रूरी है)
GMSPlace
ऑब्जेक्ट में दिखाए जाने वाले फ़ील्ड की सूची. इसे फ़ील्ड मास्क भी कहा जाता है. इसेGMSPlaceProperty
ने तय किया है. अगर फ़ील्ड की सूची में कम से कम एक फ़ील्ड नहीं दिया जाता है या फ़ील्ड की सूची को छोड़ दिया जाता है, तो कॉल में गड़बड़ी दिखती है. - (ज़रूरी नहीं) जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया क्षेत्र कोड.
- (ज़रूरी नहीं) इस सेशन टोकन का इस्तेमाल, Autocomplete (New) सेशन को खत्म करने के लिए किया जाता है.
जगह की जानकारी के लिए अनुरोध करना
इस उदाहरण में, आईडी के हिसाब से जगह की जानकारी मिलती है. इसके लिए, यहां दिए गए पैरामीटर पास किए जाते हैं:
ChIJV4k8_9UodTERU5KXbkYpSYs
का प्लेस आईडी.- जगह के नाम और वेबसाइट का यूआरएल दिखाने वाली फ़ील्ड की सूची.
- नतीजे को मैनेज करने के लिए,
GMSPlaceResultCallback
का इस्तेमाल करें.
एपीआई, बताई गई कॉलबैक विधि को शुरू करता है. साथ ही, इसमें GMSPlace
ऑब्जेक्ट पास करता है. अगर जगह नहीं मिलती है, तो जगह का ऑब्जेक्ट शून्य होता है.
Places Swift SDK
// 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 }
Swift
// 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))") })
Objective-C
// 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); } }];
जगह की जानकारी देने वाला रिस्पॉन्स
जगह की जानकारी देने वाली सेवा, GMSPlace
ऑब्जेक्ट दिखाती है. इसमें जगह के बारे में जानकारी होती है. GMSPlace
ऑब्जेक्ट में सिर्फ़ वे फ़ील्ड भरे जाते हैं जो फ़ील्ड की सूची में दिए गए हैं.
खुले होने की स्थिति पाना
GMSPlacesClient
ऑब्जेक्ट में एक मेंबर फ़ंक्शन होता है, जिसे isOpenWithRequest
(Swift में isOpenRequest
और GooglePlacesSwift में isPlaceOpenRequest
) कहा जाता है. यह फ़ंक्शन एक ऐसा जवाब देता है जिससे पता चलता है कि कॉल में बताए गए समय के हिसाब से, जगह फ़िलहाल खुली है या नहीं.
यह तरीका, GMSPlaceIsOpenWithRequest
टाइप का एक आर्ग्युमेंट लेता है. इसमें यह जानकारी शामिल होती है:
GMSPlace
ऑब्जेक्ट या जगह का आईडी बताने वाली स्ट्रिंग. ज़रूरी फ़ील्ड के साथ Place ऑब्जेक्ट बनाने के बारे में ज़्यादा जानने के लिए, जगह की जानकारी देखें.
- यह एक वैकल्पिक
NSDate
(Obj-C) याDate
(Swift) ऑब्जेक्ट है. इससे यह तय किया जाता है कि आपको किस समय की जांच करनी है. अगर कोई समय नहीं दिया गया है, तो डिफ़ॉल्ट रूप से 'अभी' का समय सेट होता है. - जवाब को मैनेज करने का
GMSPlaceOpenStatusResponseCallback
तरीका. >
GMSPlaceIsOpenWithRequest
तरीके के लिए, GMSPlace
ऑब्जेक्ट में इन फ़ील्ड को सेट करना ज़रूरी है:
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyBusinessStatus
GMSPlacePropertyOpeningHours
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
अगर 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 } }];
ज़रूरी पैरामीटर
ज़रूरी पैरामीटर तय करने के लिए, GMSFetchPlaceRequest
ऑब्जेक्ट का इस्तेमाल करें.
जगह का आईडी
Places SDK for iOS में इस्तेमाल किया गया जगह का आईडी, Places API, Places SDK for Android, और Google के अन्य एपीआई में इस्तेमाल किए गए आइडेंटिफ़ायर के जैसा ही होता है. हर प्लेस आईडी, सिर्फ़ एक जगह के लिए होता है. हालांकि, एक जगह के लिए एक से ज़्यादा प्लेस आईडी हो सकते हैं.
कुछ ऐसी स्थितियां होती हैं जिनकी वजह से किसी जगह को नया प्लेस आईडी मिल सकता है. उदाहरण के लिए, ऐसा तब हो सकता है, जब कोई कारोबार किसी नई जगह पर शिफ़्ट हो जाता है.
जगह के आईडी के हिसाब से किसी जगह की जानकारी का अनुरोध करने पर, आपको हमेशा जवाब में वही जगह मिलेगी (अगर वह जगह अब भी मौजूद है). हालांकि, ध्यान दें कि जवाब में ऐसा प्लेस आईडी हो सकता है जो आपके अनुरोध में दिए गए आईडी से अलग हो.
फ़ील्ड की सूची
जगह की जानकारी का अनुरोध करते समय, आपको उस डेटा के बारे में बताना होगा जिसे जगह के लिए GMSPlace
ऑब्जेक्ट में फ़ील्ड मास्क के तौर पर दिखाना है. फ़ील्ड मास्क तय करने के लिए, GMSPlaceProperty
से GMSFetchPlaceRequest
ऑब्जेक्ट में वैल्यू का एक कलेक्शन पास करें.
फ़ील्ड मास्किंग, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जा सकता है कि आपने बिना वजह डेटा का अनुरोध न किया हो. इससे, प्रोसेसिंग में लगने वाले समय और बिलिंग के शुल्कों को कम करने में मदद मिलती है.
इनमें से एक या उससे ज़्यादा फ़ील्ड डालें:
इन फ़ील्ड से, सिर्फ़ जगह की जानकारी देने वाले आईडी के लिए उपलब्ध एसकेयू ट्रिगर होता है:
GMSPlacePropertyPlaceID
GMSPlacePropertyPhotos
इन फ़ील्ड से, Place Details Essentials SKU ट्रिगर होता है:
GMSPlacePropertyAddressComponents
GMSPlacePropertyFormattedAddress
GMSPlacePropertyCoordinate
GMSPlacePropertyPlusCode
GMSPlacePropertyTypes
GMSPlacePropertyViewport
इन फ़ील्ड से, Place Details Pro एसकेयू ट्रिगर होता है:
GMSPlacePropertyBusinessStatus
GMSPlacePropertyIconBackgroundColor
GMSPlacePropertyIconImageURL
GMSPlacePropertyName
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyWheelchairAccessibleEntrance
इन फ़ील्ड से, Place Details Pro एसकेयू ट्रिगर होता है:
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
GMSPlacePropertyPhoneNumber
GMSPlacePropertyPriceLevel
GMSPlacePropertyRating
GMSPlacePropertyOpeningHours
GMSPlacePropertyUserRatingsTotal
GMSPlacePropertyWebsite
इन फ़ील्ड से, Place Details Enterprise SKU ट्रिगर होता है:
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];
ज़रूरी नहीं पैरामीटर
ज़रूरी नहीं पैरामीटर की जानकारी देने के लिए, GMSFetchPlaceRequest
ऑब्जेक्ट का इस्तेमाल करें.
regionCode
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया क्षेत्र कोड. इसे दो वर्णों वाले CLDR कोड वैल्यू के तौर पर तय किया जाता है. इस पैरामीटर का असर खोज नतीजों पर भी पड़ सकता है. कोई डिफ़ॉल्ट वैल्यू नहीं है.
अगर जवाब में मौजूद पते के फ़ील्ड में दिए गए देश का नाम, क्षेत्र के कोड से मेल खाता है, तो पते से देश का कोड हटा दिया जाता है.
ज़्यादातर CLDR कोड, ISO 3166-1 कोड के जैसे ही होते हैं. हालांकि, कुछ मामलों में ये अलग होते हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि इसका ISO 3166-1 कोड "gb" है. तकनीकी तौर पर, यह "ग्रेट ब्रिटेन और उत्तरी आयरलैंड का यूनाइटेड किंगडम" के लिए है. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.
sessionToken
सेशन टोकन, उपयोगकर्ता के जनरेट किए गए ऐसे स्ट्रिंग होते हैं जो "सेशन" के तौर पर, ऑटोकंप्लीट (नया) कॉल को ट्रैक करते हैं. Autocomplete (नया) सुविधा, सेशन टोकन का इस्तेमाल करती है. इससे, उपयोगकर्ता की अपने-आप पूरी होने वाली खोज की क्वेरी और जगह चुनने के चरणों को बिलिंग के मकसद से अलग सेशन में ग्रुप किया जाता है. सेशन टोकन, Place Details (New) कॉल में पास किए जाते हैं. ये कॉल, Autocomplete (New) कॉल के बाद किए जाते हैं. ज़्यादा जानकारी के लिए, सेशन टोकन देखें.
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाना
अगर आपका ऐप्लिकेशन, GMSPlacesClient
से मिली जानकारी दिखाता है, तो उसे ज़रूरी एट्रिब्यूशन भी दिखाने होंगे. जैसे, फ़ोटो और समीक्षाएं.
उदाहरण के लिए, GMSPlacesClient
ऑब्जेक्ट की reviews
प्रॉपर्टी में ज़्यादा से ज़्यादा पांच GMSPlaceReview
ऑब्जेक्ट का कलेक्शन होता है. हर GMSPlaceReview
ऑब्जेक्ट में एट्रिब्यूशन और लेखक के एट्रिब्यूशन शामिल हो सकते हैं.
अगर आपने अपने ऐप्लिकेशन में समीक्षा दिखाई है, तो आपको एट्रिब्यूशन या लेखक का एट्रिब्यूशन भी दिखाना होगा.
ज़्यादा जानकारी के लिए, एट्रिब्यूशन के बारे में दस्तावेज़ देखें.