iOS के लिए जगहों के SDK टूल में आपके ऐप्लिकेशन के बारे में बेहतर जानकारी दी जाती है. इसमें, जगहों का नाम और पता शामिल है, अक्षांश/देशांतर निर्देशांक के तौर पर बताई गई भौगोलिक जगह, जगह का टाइप, जैसे कि नाइट क्लब, पालतू जानवरों की दुकान, और संग्रहालय वगैरह. किसी खास जगह की यह जानकारी ऐक्सेस करने के लिए, जगह के आईडी का इस्तेमाल किया जा सकता है. यह एक ऐसा आइडेंटिफ़ायर है जो जगह की खास पहचान करता है.
जगह की जानकारी
GMSPlace
क्लास किसी खास जगह के बारे में जानकारी देती है. GMSPlace
ऑब्जेक्ट को इन तरीकों से पकड़ा जा सकता है:
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
को कॉल करें. मौजूदा जगह की जानकारी पाने की गाइड देखें.GMSPlacesClient fetchPlaceFromPlaceID:
को कॉल करें, जैसे किGMSPlaceField
, जगह का आईडी, और कॉलबैक करने का तरीका. जगह की जानकारी का अनुरोध करने के लिए, अगर आप अनुरोध करने वाले कम से कम एक फ़ील्ड के बारे में नहीं बताते हैं या किसी अनुरोध मेंfields
पैरामीटर का इस्तेमाल नहीं करते हैं, तो सभी संभावित फ़ील्ड दिखाए जाएंगे और उसी के मुताबिक आपको बिल भेजा जाएगा. आईडी से जगह पाने के लिए गाइड देखें.
किसी जगह का अनुरोध करने पर, आपको यह बताना होगा कि किस तरह की जगह का डेटा दिखाना है. ऐसा करने के लिए, दिए गए डेटा टाइप के बारे में बताने के लिए, GMSPlaceField
पास करें. ऐसा करना ज़रूरी है, क्योंकि इससे हर अनुरोध की लागत पर असर पड़ेगा.
जगह की जानकारी के डेटा के फ़ील्ड खाली नहीं हो सकते, इसलिए सिर्फ़ डेटा के साथ जगह की जानकारी के नतीजे दिखाए जाते हैं (उदाहरण के लिए, अगर अनुरोध की गई जगह में कोई फ़ोटो नहीं है, तो खोज के नतीजों में photos
फ़ील्ड नहीं दिखेगा).
यह उदाहरण, अनुरोध से लौटाए गए डेटा के बारे में बताने के लिए, दो फ़ील्ड वैल्यू की सूची पास करता है:
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
जगहों के फ़ील्ड के बारे में ज़्यादा जानें. जगह के डेटा के अनुरोधों की बिलिंग कैसे होती है, इस बारे में ज़्यादा जानने के लिए, इस्तेमाल और बिलिंग देखें.
GMSPlace
क्लास में नीचे दी गई जगह की जानकारी का डेटा शामिल हो सकता है:
name
– जगह का नाम.editorialSummary
– किसी जगह के बारे में आसान जानकारी देता है.placeID
– जगह के लिए टेक्स्ट वाला आइडेंटिफ़ायर. पेज के बाकी हिस्से में जगह के आईडी के बारे में ज़्यादा पढ़ें.coordinate
– जगह की भौगोलिक जगह, जिसे अक्षांश और देशांतर निर्देशांक के तौर पर दिखाया गया है.phoneNumber
– अंतरराष्ट्रीय फ़ॉर्मैट में, जगह का फ़ोन नंबर.formattedAddress
– इस जगह का वह पता जिसे लोग पढ़ सकें.अक्सर यह पता, डाक पते के बराबर होता है. ध्यान दें कि कुछ देश, जैसे कि यूनाइटेड किंगडम, लाइसेंस की पाबंदियों की वजह से सही डाक पते उपलब्ध कराने की अनुमति नहीं देते हैं.
फ़ॉर्मैट के हिसाब से दिए गए पते में एक या एक से ज़्यादा पते के कॉम्पोनेंट होते हैं. उदाहरण के लिए, पता "111 8th Avenue, New York, NY" में ये कॉम्पोनेंट शामिल होते हैं: "111" (सड़क का नंबर), "8वां ऐवेन्यू" (रास्ते), "न्यूयॉर्क" (शहर), और "NY" (अमेरिका का राज्य).
प्रोग्राम के हिसाब से, फ़ॉर्मैट किए गए पते को पार्स न करें. इसके बजाय, आपको अलग-अलग पते वाले कॉम्पोनेंट का इस्तेमाल करना चाहिए. इस एपीआई में, फ़ॉर्मैट किए गए पते वाले फ़ील्ड के साथ-साथ, एपीआई के जवाब भी शामिल होते हैं.
openingHours
– जगह के खुले होने का समय (जैसा किGMSOpeningHours
में बताया गया है). हफ़्ते के हर दिन के खुले होने के समय की स्थानीय भाषा की स्ट्रिंग पाने के लिए,GMSOpeningHours.weekdayText
पर कॉल करें.GMSOpeningHours.Periods
को कॉल करें औरweekdayText
की दी हुई जानकारी के मुताबिकGMSPeriod
की सूची देखें. इस सूची में ज़्यादा जानकारी भी होनी चाहिए. ध्यान दें: अगर कोई जगह हमेशा खुली रहती है, तो समयावधि को रविवार को आधी रात के तौर पर दिखाया जाएगा औरcloseEvent
शून्य होगा.currentOpeningHours
औरsecondaryOpeningHours
– ऐसे फ़ील्ड जो किसी जगह के लिए, शेड्यूल और छुट्टी के समय होने वाले बदलावों को शेड्यूल करते हैं.addressComponents
– किसी जगह के पते के कॉम्पोनेंट को दिखाने वालीGMSAddressComponent
ऑब्जेक्ट की कैटगरी. ये कॉम्पोनेंट किसी जगह के पते के बारे में स्ट्रक्चर्ड जानकारी हासिल करने के लिए दिए जाते हैं. उदाहरण के लिए, किसी जगह पर मौजूद शहर को ढूंढना. पते के फ़ॉर्मैट के लिए इन कॉम्पोनेंट का इस्तेमाल न करें. इसके बजाय,formattedAddress
प्रॉपर्टी का इस्तेमाल करें, जो स्थानीय जगह के हिसाब से बनाए गए पते की सुविधा देती है.addressComponents
कलेक्शन के बारे में यह जानकारी दें:- पते के कलेक्शन में,
formattedAddress
से ज़्यादा कॉम्पोनेंट हो सकते हैं. - यह ज़रूरी नहीं है कि श्रेणी में उन सभी राजनैतिक इकाइयों को शामिल किया गया हो जिनमें पता होता है. इनमें
formattedAddress
में शामिल राजनैतिक इकाइयां भी शामिल होती हैं. - यह ज़रूरी नहीं है कि रिस्पॉन्स का फ़ॉर्मैट, अनुरोधों के बीच एक जैसा ही रहे. खास तौर पर,
addressComponents
के लिए अनुरोध किए गए पते के आधार पर यह संख्या बदल सकती है. हालांकि, समय के साथ पते की संख्या बदल सकती है. कोई कॉम्पोनेंट, ऐरे में पोज़िशन बदल सकता है. कॉम्पोनेंट किस तरह का है, इसमें बदलाव किया जा सकता है. हो सकता है कि बाद में दिए गए जवाब में कोई खास कॉम्पोनेंट मौजूद न हो.
- पते के कलेक्शन में,
userRatingsTotal
– यह दिखाता है कि एक जगह की रेटिंग के लिए, कितने समीक्षाएं दी गई हैं.
GMSPlace
क्लास में ये सदस्य फ़ंक्शन होते हैं:
-
isOpen
,openingHours
औरUTCOffsetMinutes
, और मौजूदा तारीख और समय के आधार पर, तय करता है कि कोई जगह तय समय पर खुली है या नहीं. isOpenAtDate
openingHours
औरUTCOffsetMinutes
, और मौजूदा तारीख और समय के आधार पर, कैलकुलेट करता है कि चुनी गई तारीख को कोई जगह खुली है या नहीं.
खुलने का समय और/या तारीख पाने के लिए इन फ़ंक्शन का इस्तेमाल करते समय, मूल
fetchPlaceFromPlaceID:
और findPlaceLikelihoodsFromUserLocationWithPlaceFields:
के अनुरोध में दोनों GMSPlaceFieldOpeningHours
और GMSPlaceFieldUTCOffsetMinutes
फ़ील्ड की जानकारी होनी चाहिए. अगर इनमें से कोई भी फ़ील्ड मौजूद नहीं है, तो नतीजे में दिखने वाले GMSPlace
ऑब्जेक्ट में, खुलने या बंद होने का समय नहीं दिखेगा या कॉल के जवाब में GMSPlaceOpenStatusUnknown
दिखेगा. सही नतीजे पाने के लिए, मूल जगह के अनुरोध में GMSPlaceFieldBusinessStatus
और GMSPlaceFieldUTCOffsetMinutes
फ़ील्ड का अनुरोध करें. अगर अनुरोध नहीं किया गया है, तो यह माना जाता है कि कारोबार काम कर रहा है.
isOpen
इस्तेमाल करने का तरीका जानने के लिए, यह वीडियो देखें.
कारोबार के खुले होने का विशेष समय पाएं
हालांकि, कारोबार के खुले होने का सामान्य समयopeningHours
, currentOpeningHours
, और secondaryOpeningHours
से आता है, लेकिन यह छुट्टी के दिन और कुछ समय के लिए शेड्यूल किए गए बदलावों में काम करता है.
इन विशेष दिनों के लिए विशेष घंटे फ़िल्टर किए जा सकते हैं और अगर उपलब्ध हों, तो उन्हें दिखाया जा सकता है.
Swift
func examineOpeningHours(place: GMSPlace) { // Check if the current opening hours contains a special day that has exceptional hours guard let currentOpeningHours = place.currentOpeningHours else { return } if let specialDays = currentOpeningHours.specialDays { guard !specialDays.isEmpty else { return } if let specialDay = specialDays.filter { $0.isExceptional }.first { // Indicate exceptional hours } } // Check if current opening hours contains a truncated time period let periods = currentOpeningHours.periods if !periods.isEmpty { for period in periods { let open = period.open let close = period.close if let open = open { let date = open.date if open.isTruncated { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available let secondaryOpeningHours = place.secondaryOpeningHours guard let hoursType = secondaryOpeningHours.first?.hoursType else { return } if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
Objective-C
- (void)examineOpeningHours:(GMSPlace *) place { // Check if the current opening hours contains a special day that has exceptional hours GMSOpeningHours *currentOpeningHours = place.currentOpeningHours; if (currentOpeningHours != nil) { NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays; if ([specialDays count] != 0) { for (GMSPlaceSpecialDay *specialDay in specialDays) { NSDate *date = specialDay.date; if ([specialDay isExceptional]) { // Indicate exceptional hours } } } } // Check if current opening hours contains a truncated time period NSArray <GMSPeriod *> * periods = currentOpeningHours.periods; if ([periods count] != 0) { for (GMSPeriod * period in periods) { GMSTimeOfWeek *open = period.open; GMSTimeOfWeek *close = period.close; if (open) { if ([open isTruncated]) { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours; GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType; if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
आईडी के आधार पर जगह पाएं
जगह का आईडी, एक टेक्स्ट आइडेंटिफ़ायर होता है. यह किसी जगह की खास पहचान करता है. iOS के लिए
Places SDK टूल में, किसी
GMSPlace
ऑब्जेक्ट से जगह का आईडी वापस पाया जा सकता है. जगह के आईडी को सेव करके, GMSPlace
ऑब्जेक्ट को बाद में वापस पाने के लिए इसका इस्तेमाल किया जा सकता है.
आईडी के आधार पर जगह पाने के लिए, GMSPlacesClient
fetchPlaceFromPlaceID:
को कॉल करें और यहां दिए गए पैरामीटर पास करें:
- एक स्ट्रिंग जिसमें जगह का आईडी शामिल हो.
- एक या उससे ज़्यादा
GMSPlaceField
, दिए जाने वाले डेटा टाइप की जानकारी. - ऑटोकंप्लीट क्वेरी की सुविधा बंद करने के लिए, कॉल किए जाने पर सेशन टोकन. या फिर, पास पास रखें.
- नतीजा मैनेज करने के लिए,
GMSPlaceResultCallback
.
एपीआई, GMSPlace
ऑब्जेक्ट से होकर पास होकर,
कॉलबैक के खास तरीके को शुरू करता है. अगर स्थान नहीं मिलता है, तो स्थान ऑब्जेक्ट शून्य है.
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं
जब आपका ऐप्लिकेशन
GMSPlacesClient
lookUpPlaceID:callback:
से मिली जानकारी दिखाता है, तब ऐप्लिकेशन को एट्रिब्यूशन भी दिखाने होंगे.
एट्रिब्यूशन पर दस्तावेज़ देखें.
जगह के आईडी के बारे में ज़्यादा जानकारी
'iOS के लिए Places SDK टूल' में इस्तेमाल की जाने वाली जगह की आईडी वही होती है जो जगहों के एपीआई, Android के लिए Places SDK टूल और अन्य Google API में इस्तेमाल की जाती है.
हर जगह के आईडी से सिर्फ़ एक जगह की जानकारी मिल सकती है, लेकिन किसी एक जगह के लिए एक से ज़्यादा जगहों के आईडी हो सकते हैं.
ऐसी स्थितियों की वजह से, जगह की जानकारी का नया आईडी लिया जा सकता है. उदाहरण के लिए, ऐसा तब हो सकता है, जब कोई कारोबार किसी नई जगह पर चला जाता है.
अगर आप किसी जगह का आईडी तय करके, उस जगह के लिए अनुरोध करते हैं, तो इस बात पर भरोसा किया जा सकता है कि जवाब देने पर आपको हमेशा एक ही जगह मिलेगी (अगर जगह अब भी मौजूद है). ध्यान दें कि जवाब में एक ऐसी जगह का आईडी हो सकता है जो आपके अनुरोध में दिए गए आईडी से अलग होगा.
ज़्यादा जानकारी के लिए, जगह के आईडी की खास जानकारी देखें.