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