Places SDK for iOS (नया) आपके ऐप्लिकेशन को जगहों के बारे में ज़्यादा जानकारी देता है. इसमें जगह का नाम और पता, अक्षांश/देशांतर के कोऑर्डिनेट के तौर पर बताई गई भौगोलिक जगह, जगह का टाइप (जैसे, नाइट क्लब, पालतू जानवरों की दुकान, म्यूज़ियम) वगैरह शामिल हैं. किसी खास जगह के बारे में यह जानकारी पाने के लिए, जगह के आईडी का इस्तेमाल किया जा सकता है. यह एक ऐसा स्थायी आइडेंटिफ़ायर है जो किसी जगह की अलग पहचान करता है.
जगह की जानकारी पाना
GMSPlace
क्लास में, किसी खास जगह के बारे में जानकारी होती है. इसमें,
जगह के लिए डेटा फ़ील्ड (नया) में दिखाए गए सभी डेटा फ़ील्ड शामिल होते हैं.
GMSPlace
ऑब्जेक्ट पाएं. इसके लिए,
GMSPlacesClient
fetchPlaceWithRequest: को कॉल करके, GMSFetchPlaceRequest ऑब्जेक्ट और
GMSPlaceResultCallback टाइप का कॉलबैक तरीका पास करें.
GMSFetchPlaceRequest ऑब्जेक्ट में यह जानकारी दी जाती है:
- (ज़रूरी) जगह का आईडी. यह Google Places के डेटाबेस और Google Maps में किसी जगह की अलग पहचान के लिए इस्तेमाल होने वाला यूनीक आइडेंटिफ़ायर है.
- (ज़रूरी)
GMSPlaceऑब्जेक्ट में लौटाए जाने वाले फ़ील्ड की सूची. इसे फ़ील्ड मास्क भी कहा जाता है. इसेGMSPlacePropertyके हिसाब से तय किया जाता है. अगर फ़ील्ड की सूची में कम से कम एक फ़ील्ड नहीं बताया जाता है या फ़ील्ड की सूची शामिल नहीं की जाती है , तो कॉल करने पर गड़बड़ी का मैसेज दिखता है. - (ज़रूरी नहीं) जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया इलाके का कोड.
- (ज़रूरी नहीं) Autocomplete (नया) सेशन खत्म करने के लिए इस्तेमाल किया गया सेशन टोकन.
Place Details अनुरोध करना
इस उदाहरण में, आईडी के हिसाब से जगह की जानकारी मिलती है. इसके लिए, ये पैरामीटर पास किए जाते हैं:
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); } }];
जगह की जानकारी का जवाब
Place Details अनुरोध करने पर,
GMSPlace ऑब्जेक्ट मिलता है. इसमें जगह के बारे में जानकारी होती है. GMSPlace ऑब्जेक्ट में सिर्फ़ वे फ़ील्ड शामिल होते हैं जो फ़ील्ड की सूची में बताए गए हैं.
जगह के खुले होने का स्टेटस पाना
GMSPlacesClient ऑब्जेक्ट में, isOpenWithRequest नाम का एक मेंबर फ़ंक्शन होता है. इसे Swift में isOpenRequest और GooglePlacesSwift में isPlaceOpenRequest कहा जाता है. यह एक जवाब लौटाता है. इससे पता चलता है कि कॉल में बताए गए समय के हिसाब से, जगह फ़िलहाल खुली है या नहीं.
इस तरीके में, GMSPlaceIsOpenWithRequest टाइप का सिर्फ़ एक आर्ग्युमेंट होता है. इसमें यह जानकारी शामिल होती है:
- एक
GMSPlaceऑब्जेक्ट या जगह का आईडी बताने वाली स्ट्रिंग. ज़रूरी फ़ील्ड के साथ जगह का ऑब्जेक्ट बनाने के बारे में ज़्यादा जानने के लिए, जगह की जानकारी देखें.
- ज़रूरी नहीं
NSDate(Obj-C) याDate(Swift) ऑब्जेक्ट. इसमें वह समय बताया जाता है जिसके बारे में आपको जानकारी चाहिए. अगर कोई समय नहीं बताया जाता है, तो डिफ़ॉल्ट रूप से, मौजूदा समय माना जाता है. - जवाब को मैनेज करने के लिए,
GMSPlaceOpenStatusResponseCallbackतरीका. >
GMSPlaceIsOpenWithRequest तरीके के लिए, GMSPlace ऑब्जेक्ट में ये फ़ील्ड सेट होने चाहिए:
GMSPlacePropertyUTCOffsetMinutesGMSPlacePropertyBusinessStatusGMSPlacePropertyOpeningHoursGMSPlacePropertyCurrentOpeningHoursGMSPlacePropertySecondaryOpeningHours
अगर जगह के ऑब्जेक्ट में ये फ़ील्ड नहीं दिए जाते हैं या जगह का आईडी पास किया जाता है, तो तरीका इन्हें फ़ेच करने के लिए GMSPlacesClient GMSFetchPlaceRequest: का इस्तेमाल करता है.
isOpenWithRequest का जवाब
isOpenWithRequest एक GMSPlaceIsOpenResponse ऑब्जेक्ट लौटाता है. इसमें status नाम की बूलियन वैल्यू होती है. इससे पता चलता है कि कारोबार खुला है, बंद है या इसका स्टेटस पता नहीं है.
| भाषा | खुला होने पर वैल्यू | बंद होने पर वैल्यू | स्टेटस की जानकारी न होने पर वैल्यू |
|---|---|---|---|
| Places Swift | true |
false |
nil |
| Swift | .open |
.closed |
.unknown |
| Objective-C | GMSPlaceOpenStatusOpen |
GMSPlaceOpenStatusClosed |
GMSPlaceOpenStatusUnknown |
isOpenWithRequest के लिए बिलिंग
GMSPlacePropertyUTCOffsetMinutesऔरGMSPlacePropertyBusinessStatusफ़ील्ड के लिए, बेसिक डेटा SKU के तहत शुल्क लिया जाता है. खुलने के समय की बाकी जानकारी के लिए, Place Details 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 ऑब्जेक्ट में लौटाया जाने वाला डेटा तय करना होगा. फ़ील्ड मास्क तय करने के लिए, GMSFetchPlaceRequest ऑब्जेक्ट में GMSPlaceProperty से वैल्यू का कलेक्शन पास करें.
फ़ील्ड मास्क का इस्तेमाल करना, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जा सकता है कि आपने ज़रूरत से ज़्यादा डेटा का अनुरोध न किया हो. इससे, डेटा को प्रोसेस करने में लगने वाला समय और बिलिंग शुल्क कम करने में मदद मिलती है.
इनमें से एक या ज़्यादा फ़ील्ड तय करें:
इन फ़ील्ड से, Place Details Essentials ID Only SKU ट्रिगर होता है:
GMSPlacePropertyPlaceID
GMSPlacePropertyPhotosफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
इन फ़ील्ड से, Place Details Essentials SKU ट्रिगर होता है:
GMSPlacePropertyAddressComponents
GMSPlacePropertyFormattedAddress
GMSPlacePropertyCoordinate
GMSPlacePropertyPlusCode
GMSPlacePropertyTypes
GMSPlacePropertyViewportफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
इन फ़ील्ड से, Place Details Pro SKU ट्रिगर होता है:
GMSPlacePropertyBusinessStatus
GMSPlacePropertyIconBackgroundColor
GMSPlacePropertyIconImageURL
GMSPlacePropertyName
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyWheelchairAccessibleEntranceफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
इन फ़ील्ड से, Place Details Pro SKU ट्रिगर होता है:
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
GMSPlacePropertyPhoneNumber
GMSPlacePropertyPriceLevel
GMSPlacePropertyRating
GMSPlacePropertyOpeningHours
GMSPlacePropertyUserRatingsTotal
GMSPlacePropertyWebsiteफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
इन फ़ील्ड से, Place Details Enterprise SKU ट्रिगर होता है:
GMSPlacePropertyCurbsidePickup
GMSPlacePropertyDelivery
GMSPlacePropertyDineIn
GMSPlacePropertyEditorialSummary
GMSPlacePropertyReservable
GMSPlacePropertyReviews
GMSPlacePropertyServesBeer
GMSPlacePropertyServesBreakfast
GMSPlacePropertyServesBrunch
GMSPlacePropertyServesDinner
GMSPlacePropertyServesLunch
GMSPlacePropertyServesVegetarianFood
GMSPlacePropertyServesWine
GMSPlacePropertyTakeoutफ़ील्ड और उनसे जुड़े SKU की पूरी सूची देखने के लिए, जगह के लिए डेटा फ़ील्ड (नया) देखें.
यहां दिए गए उदाहरण में, दो
फ़ील्ड वैल्यू
की सूची पास की गई है. इससे यह तय होता है कि अनुरोध से मिले 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
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया इलाके का कोड. इसे दो वर्णों वाली सीएलडीआर कोड वैल्यू के तौर पर तय किया जाता है. इस पैरामीटर से, खोज के नतीजों पर भी असर पड़ सकता है. इसकी कोई डिफ़ॉल्ट वैल्यू नहीं होती.
अगर जवाब में पते के फ़ील्ड में मौजूद देश का नाम, इलाके के कोड से मेल खाता है, तो पते में देश का कोड शामिल नहीं किया जाता.
ज़्यादातर सीएलडीआर कोड, आईएसओ 3166-1 कोड के जैसे ही होते हैं. हालांकि, कुछ अपवाद भी हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि इसका आईएसओ 3166-1 कोड "gb" है. तकनीकी तौर पर, यह "ग्रेट ब्रिटेन और उत्तरी आयरलैंड का यूनाइटेड किंगडम" के लिए है. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.
sessionToken
सेशन टोकन, उपयोगकर्ता की ओर से जनरेट की गई स्ट्रिंग होती हैं. इनसे, Autocomplete (नया) के कॉल को "सेशन" के तौर पर ट्रैक किया जाता है. Autocomplete (नया), बिलिंग के मकसद से, उपयोगकर्ता के अपने-आप पूरे होने वाली खोज के क्वेरी और जगह चुनने के चरणों को अलग-अलग सेशन में ग्रुप करने के लिए, सेशन टोकन का इस्तेमाल करता है. सेशन टोकन, Place Details (नया) के उन कॉल में पास किए जाते हैं जो Autocomplete (नया) के कॉल के बाद किए जाते हैं. ज़्यादा जानकारी के लिए, सेशन टोकन देखें.
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाना
जब आपका ऐप्लिकेशन,
GMSPlacesClientसे मिली जानकारी दिखाता है, तो उसे ज़रूरी एट्रिब्यूशन भी दिखाने होंगे. जैसे, फ़ोटो और समीक्षाएं.
उदाहरण के लिए, reviews ऑब्जेक्ट की GMSPlacesClient प्रॉपर्टी में, ज़्यादा से ज़्यादा पांच
GMSPlaceReview
ऑब्जेक्ट का कलेक्शन होता है. हर GMSPlaceReview ऑब्जेक्ट में, एट्रिब्यूशन और लेखक के एट्रिब्यूशन शामिल हो सकते हैं.
अगर अपने ऐप्लिकेशन में समीक्षा दिखाई जाती है, तो आपको कोई भी एट्रिब्यूशन या लेखक का एट्रिब्यूशन भी दिखाना होगा.
ज़्यादा जानकारी के लिए, एट्रिब्यूशन के बारे में दस्तावेज़ देखें .