iOS के लिए Places 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" (सड़क का नंबर), "8th एवेन्यू" (रास्ता), "न्यूयॉर्क" (शहर) और "NY" (अमेरिका का राज्य).
फ़ॉर्मैट किए गए पते को प्रोग्राम के हिसाब से, पार्स न करें. इसके बजाय, आपको पते के अलग-अलग कॉम्पोनेंट का इस्तेमाल करना चाहिए. ये कॉम्पोनेंट, एपीआई के रिस्पॉन्स में फ़ॉर्मैट किए गए पते के फ़ील्ड के साथ शामिल होते हैं.
openingHours
– जगह के खुले होने का समय (जैसा किGMSOpeningHours
से दिखाया गया है). हफ़्ते के हर दिन के खुले होने का समय स्थानीय भाषा में लिखने वाली स्ट्रिंग की सूची पाने के लिए,GMSOpeningHours.weekdayText
को कॉल करें.GMSPeriod
की सूची दिखाने के लिए,GMSOpeningHours.Periods
को कॉल करें. इसमें, ऐसी ज़्यादा जानकारी दी गई है जोweekdayText
से मिले डेटा के बराबर है. ध्यान दें: अगर कोई जगह हमेशा खुली रहती है, तो समयावधि को रविवार की आधी रात को दिखाया जाता है और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
के लिए जगहें 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 में इस्तेमाल किया गया जगह का आईडी, वही आइडेंटिफ़ायर होता है जिसका इस्तेमाल Locations API, Android के लिए जगहें SDK , और अन्य Google API में किया गया है.
हर जगह के आईडी में सिर्फ़ एक जगह का आईडी हो सकता है. हालांकि, एक जगह के लिए एक से ज़्यादा आईडी हो सकते हैं.
कुछ स्थितियों की वजह से किसी जगह का नया आईडी मिल सकता है. उदाहरण के लिए, ऐसा तब हो सकता है, जब कोई कारोबार किसी नई जगह पर चला जाता है.
जब आप किसी जगह का आईडी देकर किसी जगह का अनुरोध करते हैं, तो आपको इस बात पर भरोसा हो सकता है कि आपको जवाब में हमेशा वही जगह मिलेगी (अगर वह जगह अब भी मौजूद है). हालांकि, ध्यान दें कि जवाब में जगह का ऐसा आईडी हो सकता है जो आपके अनुरोध में दिए गए जगह का आईडी से अलग हो.
ज़्यादा जानकारी के लिए, जगह के आईडी की खास जानकारी वाला लेख पढ़ें.