ऑटोकंप्लीट (नया) सेवा, एक iOS एपीआई है. यह किसी अनुरोध के जवाब में, जगह के सुझाव दिखाती है. अनुरोध में, टेक्स्ट से खोजने के लिए स्ट्रिंग और भौगोलिक सीमाएं बताएं. इससे खोज के दायरे को कंट्रोल किया जा सकता है.
ऑटोकंप्लीट (नई) सेवा, इनपुट के पूरे शब्दों और सबस्ट्रिंग से मैच कर सकती है. इससे जगहों के नाम, पते, और Plus Code की जानकारी मिलती है. इसलिए, ऐप्लिकेशन उपयोगकर्ता के टाइप करते ही क्वेरी भेज सकते हैं, ताकि तुरंत जगह के सुझाव दिए जा सकें.
जगह के सुझाव, कारोबारों, पतों, और लोकप्रिय जगहों जैसी जगहें होती हैं. ये सुझाव, इनपुट की गई टेक्स्ट स्ट्रिंग और खोज के लिए चुने गए इलाके के आधार पर दिए जाते हैं.
उदाहरण के लिए, आपने एपीआई को कॉल किया और इनपुट के तौर पर एक स्ट्रिंग का इस्तेमाल किया. इसमें उपयोगकर्ता के इनपुट का एक हिस्सा, "Spagh" शामिल है. साथ ही, खोज के दायरे को न्यूयॉर्क शहर तक सीमित किया गया है. इसके बाद, जवाब में जगहों के सुझावों की एक सूची होती है. यह सूची, खोज स्ट्रिंग और खोज के लिए चुनी गई जगह से मैच करती है. जैसे, "कैफ़े स्पैगेटी" नाम का रेस्टोरेंट और उस जगह के बारे में जानकारी.
नतीजों में दिखाए गए जगहों के सुझाव, उपयोगकर्ता को इस तरह दिखाए जाते हैं कि वह अपनी पसंद की जगह चुन सके. सुझाव के तौर पर दिखाए गए किसी भी स्थान के बारे में ज़्यादा जानकारी पाने के लिए, Place Details (New) का अनुरोध किया जा सकता है.
अपने ऐप्लिकेशन में, ऑटोकंप्लीट (नया) की सुविधा को दो मुख्य तरीकों से इंटिग्रेट किया जा सकता है:
- प्रोग्राम के हिसाब से जगह के सुझाव पाना: सुझाव पाने और उन्हें कस्टम यूज़र इंटरफ़ेस में दिखाने के लिए, सीधे एपीआई को कॉल करें.
- किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा वाला विजेट जोड़ना: इससे, खोज के लिए इस्तेमाल होने वाले ऑटोकंप्लीट विजेट को तुरंत इस्तेमाल किया जा सकता है. यह विजेट, उपयोगकर्ता के टाइप करते ही सुझाव दिखाता है.
प्रोग्राम के हिसाब से, जगह के सुझाव पाना
Autocomplete (New) के अनुरोध
GMSPlacesClient पर किसी तरीके को कॉल करके, ऑटोकंप्लीट का अनुरोध करें.
GMSAutocompleteRequest ऑब्जेक्ट में पैरामीटर पास किए जा सकते हैं. रिस्पॉन्स में, GMSAutocompletePlaceSuggestion ऑब्जेक्ट के अंदर अपने-आप पूरा होने वाले सुझाव मिलते हैं.
एपीआई पासकोड और
query
पैरामीटर ज़रूरी हैं. अनुरोधों को बिलिंग सेशन से जोड़ने के लिए, GMSAutocompleteSessionToken को भी शामिल किया जा सकता है. साथ ही, नतीजों पर लागू करने के लिए, GMSAutocompleteFilter को भी शामिल किया जा सकता है.
Places Swift SDK का वर्शन
PlacesClient पर किसी तरीके को कॉल करके, ऑटोकंप्लीट का अनुरोध करें.
AutocompleteRequest ऑब्जेक्ट में पैरामीटर पास किए जा सकते हैं. रिस्पॉन्स में, AutocompletePlaceSuggestion ऑब्जेक्ट के अंदर अपने-आप पूरा होने वाले सुझाव मिलते हैं.
एपीआई पासकोड और query पैरामीटर ज़रूरी हैं. अनुरोधों को बिलिंग सेशन से जोड़ने के लिए, AutocompleteSessionToken को भी शामिल किया जा सकता है. साथ ही, नतीजों पर लागू करने के लिए, AutocompleteFilter को भी शामिल किया जा सकता है.
ज़रूरी और वैकल्पिक पैरामीटर के बारे में ज़्यादा जानकारी के लिए, इस दस्तावेज़ का पैरामीटर सेक्शन देखें.
Places Swift SDK
let center = (37.3913916, -122.0879074) let northEast = (37.388162, -122.088137) let southWest = (37.395804, -122.077023) let bias = RectangularCoordinateRegion(northEast: northEast, southWest: southWest) let filter = AutocompleteFilter(types: [ .restaurant ], origin: center, coordinateRegionBias: bias) let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): // Handle suggestions. case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let northWestBounds = CLLocationCoordinate2DMake(40.921628, -73.700051) let southEastBounds = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.types = [kGMSPlaceTypeRestaurant] filter.locationBias = GMSPlaceRectangularLocationOption(northWestBounds, southEastBounds) let request = GMSAutocompleteRequest(query:"Spagh") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.388162, -122.088137); CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.395804, -122.077023); GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ kGMSPlaceTypeRestaurant ]; filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
ऑटोकंप्लीट (नया) के जवाब
ऑटोकंप्लीट की सुविधा, GMSAutocompleteSuggestion के ज़्यादा से ज़्यादा पांच इंस्टेंस का कलेक्शन दिखाती है. अरे में ये शामिल हैं:
placeIDtypes: इस जगह पर लागू होने वाले टाइप.distanceMeters: शुरुआती स्टेशन से दूरी.attributedFullText: किसी सुझाव का पूरा टेक्स्ट, जिसे कोई व्यक्ति आसानी से पढ़ सकता है.attributedPrimaryText: किसी सुझाव का मुख्य टेक्स्ट, जिसे कोई व्यक्ति आसानी से पढ़ सकता है.attributedSecondaryText: किसी सुझाव का सेकंडरी टेक्स्ट, जिसे कोई व्यक्ति आसानी से पढ़ सकता है.structuredFormat: खास नाम और साफ़ तौर पर जानकारी देने वाला टेक्स्ट, जैसे कि शहर या इलाका.
ज़रूरी पैरामीटर
क्वेरी
वह टेक्स्ट स्ट्रिंग जिसे खोजना है. पूरे शब्द और सबस्ट्रिंग, जगहों के नाम, पते, और प्लस कोड डालें. ऑटोकंप्लीट (नया) सेवा, इस स्ट्रिंग के आधार पर संभावित मैच दिखाती है. साथ ही, नतीजों को उनकी प्रासंगिकता के आधार पर क्रम में लगाती है.
ज़रूरी नहीं पैरामीटर
sessionToken
सेशन टोकन, उपयोगकर्ता से जनरेट की गई स्ट्रिंग होती हैं. ये Autocomplete (New) कॉल को "सेशन" के तौर पर ट्रैक करती हैं. इनमें विजेट और प्रोग्राम के हिसाब से किए गए कॉल, दोनों शामिल हैं. Autocomplete (New) सेवा, सेशन टोकन का इस्तेमाल करके, उपयोगकर्ता की खोज क्वेरी के अपने-आप पूरे होने की सुविधा से जुड़ी क्वेरी और चुने गए विकल्पों को अलग-अलग सेशन में ग्रुप करती है. ऐसा बिलिंग के मकसद से किया जाता है.
Places Autocomplete सेशन टोकन को एक्सपोज़ किया जा सकता है, ताकि उसे Places SDK for iOS के अलावा अन्य सेवाओं को पास किया जा सके. जैसे, Address Validation:
Places Swift SDK
let token = AutocompleteSessionToken() let filter = AutocompleteFilter(origin: CLLocationCoordinate2DMake(39.7, -94.5)) let request = AutocompleteRequest(query: "Piz", sessionToken: token, filter: filter) PlacesClient.shared.fetchAutocompleteSuggestions(request: request) { case .success(let suggestions): ... case .failure(let placesError): print(placesError) } // pass token's string format to use with a service that is not a part of iOS SDK. print("token: \(token)")
Objective-C
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Piz"]; GMSAutocompleteSessionToken *token = [[GMSAutocompleteSessionToken alloc] init]; request.sessionToken = token; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:39.7 longitude:-94.5]; filter.locationBias = GMSPlaceRectangularLocationOption(topLocation, bottomLocation); request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> *_Nullable results, NSError *_Nullable error) { ... }]; // pass token's string format to use with a service that is not a part of iOS SDK. NSLog(@"%@", token.description);
ज़्यादा जानकारी के लिए, सेशन टोकन देखें.
AutocompleteFilter के वैकल्पिक पैरामीटर
प्रकार
किसी जगह के लिए, टेबल A या टेबल B में से सिर्फ़ एक प्राइमरी टाइप चुना जा सकता है.
उदाहरण के लिए, प्राइमरी टाइप mexican_restaurant या steak_house हो सकता है.
डिफ़ॉल्ट रूप से, एपीआई input पैरामीटर के आधार पर सभी जगहों की जानकारी दिखाता है. इससे कोई फ़र्क़ नहीं पड़ता कि उस जगह की प्राइमरी टाइप वैल्यू क्या है. types पैरामीटर को पास करके, नतीजों को किसी खास प्राइमरी टाइप या प्राइमरी टाइप तक सीमित करें.
इस पैरामीटर का इस्तेमाल करके, टेबल A या टेबल B से ज़्यादा से ज़्यादा पांच टाइप वैल्यू तय करें. जवाब में शामिल किए जाने के लिए, किसी जगह की जानकारी, प्राइमरी टाइप की बताई गई वैल्यू में से किसी एक से मेल खानी चाहिए.
अनुरोध को INVALID_REQUEST गड़बड़ी के साथ अस्वीकार कर दिया जाता है, अगर:
- पांच से ज़्यादा टाइप दिए गए हैं.
- किसी ऐसे टाइप की जानकारी दी गई हो जिसकी पहचान नहीं की जा सकी.
उदाहरण के लिए, अगर आपको सिर्फ़ खेल-कूद का सामान बेचने वाले स्टोर के नतीजे चाहिए, तो अपने AutocompleteFilter में उस टाइप की जानकारी दें:
Places Swift SDK
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ])
Swift
let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ];
देश
सिर्फ़ उन क्षेत्रों के नतीजे शामिल करें जो सूची में दिए गए हैं. इस सूची में, दो वर्णों वाली 15 ccTLD ("टॉप-लेवल डोमेन") वैल्यू शामिल की जा सकती हैं. अगर इसे शामिल नहीं किया जाता है, तो जवाब पर कोई पाबंदी लागू नहीं होगी. उदाहरण के लिए, जर्मनी और फ़्रांस को दिखाने के लिए:
Places Swift SDK
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Swift
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
अगर locationRestriction और countries, दोनों की जानकारी दी जाती है, तो नतीजे दोनों सेटिंग के इंटरसेक्शन वाले इलाके में दिखते हैं.
inputOffset
input में कर्सर की पोज़िशन बताने वाला, शून्य पर आधारित यूनिकोड वर्ण ऑफ़सेट. कर्सर की पोज़िशन से, अनुमानों पर असर पड़ सकता है. अगर यह खाली है, तो यह डिफ़ॉल्ट रूप से input की लंबाई पर सेट हो जाता है.
locationBias या locationRestriction
खोज के दायरे को तय करने के लिए, locationBias या locationRestriction में से किसी एक को चुना जा सकता है, लेकिन दोनों को नहीं. locationRestriction का मतलब है कि नतीजे उसी क्षेत्र के होने चाहिए जो आपने चुना है. वहीं, locationBias का मतलब है कि नतीजे चुने गए क्षेत्र के आस-पास के होने चाहिए, लेकिन वे उस क्षेत्र से बाहर के भी हो सकते हैं.
locationBiasसे, खोजने के लिए किसी हिस्से के बारे में पता चलता है. यह जगह, बायस के तौर पर काम करती है. इसका मतलब है कि चुनी गई जगह के आस-पास के नतीजे दिखाए जा सकते हैं. इनमें, चुनी गई जगह से बाहर के नतीजे भी शामिल हैं.locationRestrictionसे, खोजने के लिए किसी हिस्से के बारे में पता चलता है. तय किए गए इलाके से बाहर के नतीजे नहीं दिखाए जाते.
locationBias या locationRestriction इलाके को रेक्टैंगल व्यूपोर्ट या सर्कल के तौर पर तय करें.
सर्कल को सेंटर पॉइंट और मीटर में त्रिज्या से तय किया जाता है. रेडियस, 0.0 और 50000.0 के बीच होना चाहिए. इसमें ये दोनों भी शामिल हैं. डिफ़ॉल्ट वैल्यू 0.0 है. locationRestriction के लिए, आपको रेडियस की वैल्यू 0.0 से ज़्यादा पर सेट करनी होगी.
ऐसा न होने पर, अनुरोध का कोई नतीजा नहीं मिलता.
उदाहरण के लिए:
Places Swift SDK
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Swift
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
रेक्टैंगल, अक्षांश-देशांतर व्यूपोर्ट होता है. इसे दो डायगनल के तौर पर दिखाया जाता है
विपरीत low और high पॉइंट. व्यूपोर्ट को एक बंद इलाका माना जाता है. इसका मतलब है कि इसमें इसकी सीमा शामिल होती है. अक्षांश की सीमाएं -90 से 90 डिग्री के बीच होनी चाहिए. साथ ही, देशांतर की सीमाएं -180 से 180 डिग्री के बीच होनी चाहिए:
- अगर
low=highहै, तो व्यूपोर्ट में सिर्फ़ वह पॉइंट शामिल होता है. - अगर
low.longitude>high.longitudeहै, तो देशांतर की रेंज उल्टी हो जाती है. इसका मतलब है कि व्यूपोर्ट, 180 डिग्री देशांतर लाइन को पार कर जाता है. - अगर
low.longitude= -180 डिग्री औरhigh.longitude= 180 डिग्री है, तो व्यूपोर्ट में सभी देशांतर शामिल होते हैं. - अगर
low.longitude= 180 डिग्री औरhigh.longitude= -180 डिग्री है, तो देशांतर की रेंज खाली होती है.
low और high, दोनों एट्रिब्यूट की वैल्यू सबमिट करना ज़रूरी है. साथ ही, बॉक्स खाली नहीं होना चाहिए. खाली व्यूपोर्ट की वजह से गड़बड़ी होती है.
उदाहरण के लिए, इस व्यूपोर्ट में न्यूयॉर्क शहर पूरी तरह से शामिल है:
Places Swift SDK
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Swift
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Objective-C
CLLocationCoordinate2D high = CLLocationCoordinate2DMake(40.477398, -74.259087); CLLocationCoordinate2D low = CLLocationCoordinate2DMake(440.921628, -73.700051); GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceRectangularLocationOption(high, low);
origin
वह शुरुआती पॉइंट जहां से डेस्टिनेशन तक की सीधी दूरी कैलकुलेट करनी है. यह वैल्यू, distanceMeters के तौर पर दिखती है. अगर यह वैल्यू नहीं दी जाती है, तो सीधी दूरी नहीं दिखेगी. अक्षांश और देशांतर निर्देशांक के तौर पर जानकारी देना ज़रूरी है:
Places Swift SDK
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
Swift
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
regionCode
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया देश/इलाके का कोड. इसे ccTLD ("टॉप-लेवल डोमेन") की दो वर्णों वाली वैल्यू के तौर पर बताया जाता है. ज़्यादातर ccTLD कोड, ISO 3166-1 कोड से मिलते-जुलते होते हैं. हालांकि, कुछ अपवाद भी होते हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि इसका ISO 3166-1 कोड "gb" है. तकनीकी तौर पर, यह कोड "यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन ऐंड नॉर्दर्न आयरलैंड" के लिए है.
अगर आपने कोई अमान्य देश/इलाका कोड डाला है, तो एपीआई INVALID_ARGUMENT गड़बड़ी का मैसेज दिखाएगा. लागू कानून के आधार पर, पैरामीटर से नतीजों पर असर पड़ सकता है.
shouldIncludePureServiceAreaBusinesses
अगर true है, तो रिस्पॉन्स कलेक्शन में सिर्फ़ घर या दुकान पर सेवा देने वाले कारोबारों की जानकारी दिखती है. प्योर सर्विस एरिया कारोबार ऐसा कारोबार होता है जो सीधे ग्राहकों के पास जाता है या उन्हें डिलीवरी देता है, लेकिन अपने कारोबार के पते पर ग्राहकों को सेवा नहीं देता है.
उदाहरण के लिए:
Places Swift SDK
let filter = AutocompleteFilter() filter.shouldIncludePureServiceAreaBusinesses = true
Swift
let filter = AutocompleteFilter() filter.shouldIncludePureServiceAreaBusinesses = true
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.shouldIncludePureServiceAreaBusinesses = YES;
किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा वाला विजेट जोड़ना
किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा को आसानी से उपलब्ध कराने के लिए, अपने ऐप्लिकेशन में Place Autocomplete विजेट जोड़ा जा सकता है. यह विजेट, एक खास फ़ुल-स्क्रीन इंटरफ़ेस उपलब्ध कराता है. यह इंटरफ़ेस, उपयोगकर्ता के इनपुट को मैनेज करता है और उसे जगह के सुझाव दिखाता है. साथ ही, ऐप्लिकेशन को AutocompletePlaceSuggestion ऑब्जेक्ट दिखाता है. इसके बाद, जगह के किसी भी सुझाव के बारे में ज़्यादा जानकारी पाने के लिए, Place Details (नया) का अनुरोध किया जा सकता है.
प्रोग्राम के हिसाब से जगह के सुझाव पाने की तरह ही, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा वाले विजेट की मदद से, सेशन टोकन का इस्तेमाल किया जा सकता है. इससे, बिलिंग के मकसद से, ऑटोकंप्लीट के अनुरोधों को सेशन में ग्रुप किया जा सकता है. AutocompleteSessionToken() को कॉल करके, सेशन टोकन पास किया जा सकता है.
अगर आपने सेशन टोकन नहीं दिया है, तो विजेट आपके लिए ऑटोकंप्लीट सेशन टोकन बनाएगा. इसके बाद, इसे onSelection कॉलबैक से हासिल किया जा सकता है. सेशन टोकन इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, सेशन टोकन के बारे में जानकारी लेख पढ़ें.
जब show बाइंडिंग वैल्यू को true पर सेट किया जाता है, तो उपयोगकर्ता को फ़ुल स्क्रीन व्यू पर ले जाया जाएगा. यहां वह कोई जगह चुन सकता है. उपयोगकर्ता के टाइप करने पर, विजेट कारोबारों, पतों, और लोकप्रिय जगहों के सुझाव दिखाता है. जब उपयोगकर्ता कोई जगह चुनता है, तो विजेट चुनी गई जगह के साथ onSelection हैंडलर को कॉल करता है और फ़ुलस्क्रीन व्यू को बंद कर देता है.
किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा वाले विजेट के पैरामीटर
प्रोग्राम के हिसाब से उपलब्ध पैरामीटर के अलावा, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा वाले विजेट में ये पैरामीटर भी उपलब्ध हैं.
दिखाएं
show से पता चलता है कि विजेट दिखाया गया है या नहीं.
onSelection
कोई जगह चुने जाने पर, रन होने वाला क्लोज़र.
onError
कोई गड़बड़ी होने पर, क्लोज़र को रन किया जाता है. कोई गड़बड़ी होने पर,
PlacesError
पास किया जाएगा.
कॉन्टेंट और थीम को पसंद के मुताबिक बनाना
AutocompleteUICustomization पैरामीटर से पता चलता है कि विजेट पर यूज़र इंटरफ़ेस (यूआई) के कौनसे कस्टमाइज़ेशन लागू करने हैं. पसंद के मुताबिक बनाने के ये विकल्प हैं:
AutocompleteListDensity. इस पैरामीटर की मदद से, सुझावों की सूची की डेंसिटी चुनी जा सकती है. इसके लिए,multiLineयाtwoLineको चुना जा सकता है.AutocompleteUIIcon. इस पैरामीटर की मदद से, यह चुना जा सकता है कि सूची के हर आइटम के लिए डिफ़ॉल्ट आइकॉन दिखाना है या नहीं.theme. इस पैरामीटर से, पसंद के मुताबिक बनाई गई ऐसी थीम के बारे में पता चलता है जो डिफ़ॉल्ट स्टाइल एट्रिब्यूट में से किसी को भी बदल देती है. किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा वाले कॉम्पोनेंट के रंग, टाइपोग्राफ़ी, स्पेसिंग, बॉर्डर, और कोनों को पसंद के मुताबिक बनाया जा सकता है. डिफ़ॉल्ट रूप से, यह कार्रवाईPlacesMaterialThemeपर सेट रहती है. थीम के जिन एट्रिब्यूट को बदला नहीं जाता है वे डिफ़ॉल्ट स्टाइल का इस्तेमाल करते हैं.
ऑटोकंप्लीट (नया) के उदाहरण
locationRestriction और locationBias का इस्तेमाल करना
अपने-आप पूरा होने की सुविधा (नया वर्शन), खोज के दायरे को कंट्रोल करने के लिए, डिफ़ॉल्ट रूप से आईपी बायसिंग का इस्तेमाल करती है. आईपी बायसिंग की सुविधा चालू होने पर, एपीआई डिवाइस के आईपी पते का इस्तेमाल करके, नतीजों को बायस करता है. खोज के लिए कोई इलाका तय करने के लिए, locationRestriction या locationBias का इस्तेमाल किया जा सकता है. हालांकि, दोनों का इस्तेमाल एक साथ नहीं किया जा सकता.
जगह से जुड़ी पाबंदी से, खोज के लिए इलाके की जानकारी मिलती है. तय किए गए इलाके से बाहर के नतीजे नहीं दिखाए जाते. इस उदाहरण में, जगह की जानकारी पर पाबंदी लगाने की सुविधा का इस्तेमाल किया गया है. इससे, सैन फ़्रांसिस्को के आस-पास 5,000 मीटर के दायरे में मौजूद जगहों के लिए ही अनुरोध किया जा सकता है:
Places Swift SDK
let center = (37.775061, -122.419400) let radius = 5000.0 let restriction = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionRestriction: restriction) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
जगह के हिसाब से नतीजे दिखाने की सुविधा में, जगह की जानकारी का इस्तेमाल बायस के तौर पर किया जाता है. इसका मतलब है कि चुनी गई जगह के आस-पास के नतीजे दिखाए जा सकते हैं. इनमें, चुनी गई जगह से बाहर के नतीजे भी शामिल हो सकते हैं. अगले उदाहरण में, जगह के हिसाब से नतीजे दिखाने की सुविधा का इस्तेमाल करने के लिए, पिछले अनुरोध में बदलाव किया गया है:
Places Swift SDK
let center = (37.775061, -122.419400) let radius = 5000.0 let bias = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionBias: bias) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
इस्तेमाल के टाइप
किसी अनुरोध के नतीजों को सीमित करने के लिए, टाइप पैरामीटर का इस्तेमाल करें. इससे नतीजे, टेबल A और टेबल B में दिए गए किसी खास टाइप के हिसाब से दिखेंगे. ज़्यादा से ज़्यादा पांच वैल्यू का कलेक्शन तय किया जा सकता है. अगर इसे शामिल नहीं किया जाता है, तो सभी तरह के विज्ञापन दिखाए जाते हैं.
यहां दिए गए उदाहरण में, "सॉकर" की क्वेरी स्ट्रिंग के बारे में बताया गया है. साथ ही, नतीजों को "sporting_goods_store" टाइप के कारोबारों तक सीमित करने के लिए, टाइप पैरामीटर का इस्तेमाल किया गया है:
Places Swift SDK
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ]) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Soccer", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"] let request = GMSAutocompleteRequest(query:"Soccer") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Soccer"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
ऑरिजिन का इस्तेमाल करना
जब अनुरोध में origin पैरामीटर को शामिल किया जाता है, तो एपीआई जवाब में, शुरुआत की जगह से मंज़िल तक की सीधी दूरी को शामिल करता है. इस पैरामीटर को अक्षांश और देशांतर निर्देशांक के तौर पर बताया जाता है. जवाब में दूरी को distanceMeters के तौर पर दिखाया जाता है.
इस उदाहरण में, सैन फ़्रांसिस्को के सेंटर को ऑरिजिन के तौर पर सेट किया गया है:
Places Swift SDK
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.7749, longitude: -122.4194)) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Amoeba", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Swift
let token = GMSAutocompleteSessionToken() let origin = CLLocation(latitude: 37.7749, longitude: -122.4194) let filter = GMSAutocompleteFilter() filter.origin = origin let request = GMSAutocompleteRequest(query:"Amoeba") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText)) and distance: \(String(describing: result.placeSuggestion?.distanceMeters))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude:-122.077023]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Amoeba"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
कॉन्टेंट और थीम को पसंद के मुताबिक बनाना
Swift
let uiCustomization = AutocompleteUICustomization( listDensity: .multiLine, listItemIcon: .noIcon, theme: PlacesMaterialTheme() )
किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा वाला विजेट जोड़ना (पूरा कोड)
Places Swift SDK
struct PlaceAutocompleteDemoView: View { @State private var fetchedPlace: Place? @State private var placesError: PlacesError? @State private var showWidget = false public var body: some View { VStack { Button("Search for a place") { showWidget.toggle() } .placeAutocomplete( show: $showWidget, onSelection: { (autocompletePlaceSuggestion, autocompleteSessionToken) in Task { let placesClient = await PlacesClient.shared let fetchPlaceRequest = FetchPlaceRequest( placeID: autocompletePlaceSuggestion.placeID, placeProperties: [.displayName, .formattedAddress], sessionToken: autocompleteSessionToken ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): print("Fetched place: \(place)") self.fetchedPlace = place case .failure(let placesError): print("Failed to fetch place: \(placesError)") self.placesError = placesError } } }, onError: { placesError in self.placesError = placesError } ) } } }
ऑटोकंप्लीट (नया) ऑप्टिमाइज़ेशन
इस सेक्शन में, ऑटोकंप्लीट (नया) सेवा का ज़्यादा से ज़्यादा फ़ायदा पाने के सबसे सही तरीके बताए गए हैं.
यहां कुछ सामान्य दिशा-निर्देश दिए गए हैं:
- काम करने वाला यूज़र इंटरफ़ेस बनाने का सबसे तेज़ तरीका है, Maps JavaScript API ऑटोकंप्लीट (नया) विजेट, Places SDK for Android ऑटोकंप्लीट (नया) विजेट, या Places SDK for iOS ऑटोकंप्लीट (नया) विजेट का इस्तेमाल करना.
- शुरुआत से ही, ऑटोकंप्लीट (नई) सुविधा के ज़रूरी डेटा फ़ील्ड को समझें.
- जगह के हिसाब से नतीजे दिखाने और जगह के हिसाब से पाबंदी लगाने वाले फ़ील्ड भरना ज़रूरी नहीं है. हालांकि, इनसे ऑटोकंप्लीट की सुविधा की परफ़ॉर्मेंस पर काफ़ी असर पड़ सकता है.
- गड़बड़ी को मैनेज करने की सुविधा का इस्तेमाल करें, ताकि एपीआई से गड़बड़ी मिलने पर आपका ऐप्लिकेशन सही तरीके से काम करता रहे.
- पक्का करें कि आपका ऐप्लिकेशन, कोई विकल्प न चुने जाने पर उपयोगकर्ताओं को आगे बढ़ने का तरीका बताता हो.
लागत को ऑप्टिमाइज़ करने के सबसे सही तरीके
लागत को ऑप्टिमाइज़ करने की बुनियादी सुविधा
ऑटोकंप्लीट (नया) सेवा का इस्तेमाल करने की लागत को ऑप्टिमाइज़ करने के लिए, Place Details (नया) और ऑटोकंप्लीट (नया) विजेट में फ़ील्ड मास्क का इस्तेमाल करें. इससे आपको सिर्फ़ ऑटोकंप्लीट (नया) डेटा फ़ील्ड दिखेंगे, जिनकी आपको ज़रूरत है.
लागत को ऑप्टिमाइज़ करने की बेहतर सुविधा
ऑटोकंप्लीट (नया) सुविधा को प्रोग्राम के हिसाब से लागू करें, ताकि एसकेयू: ऑटोकंप्लीट सुविधा के अनुरोध की कीमत को ऐक्सेस किया जा सके. साथ ही, चुनी गई जगह के लिए, Place Details (नया) के बजाय Geocoding API के नतीजों का अनुरोध किया जा सके. अगर यहां दी गई दोनों शर्तें पूरी होती हैं, तो Geocoding API के साथ हर अनुरोध के हिसाब से कीमत तय करने का मॉडल, हर सेशन (सेशन के हिसाब से) के हिसाब से कीमत तय करने के मॉडल की तुलना में ज़्यादा किफ़ायती होता है:
- अगर आपको उपयोगकर्ता की चुनी गई जगह का सिर्फ़ अक्षांश और देशांतर या पता चाहिए, तो Geocoding API यह जानकारी, Place Details (New) कॉल से कम कीमत में उपलब्ध कराता है.
- अगर उपयोगकर्ता, ऑटोकंप्लीट (नया) के सुझावों के लिए किए गए औसतन चार या इससे कम अनुरोधों में से, ऑटोकंप्लीट के किसी सुझाव को चुनते हैं, तो हर अनुरोध के हिसाब से कीमत तय करने का विकल्प, हर सेशन के हिसाब से कीमत तय करने के विकल्प की तुलना में ज़्यादा किफ़ायती हो सकता है.
| आपके ऐप्लिकेशन के लिए क्या ज़रूरी है | किसी उपयोगकर्ता के सुझाव चुनने से पहले, ऑटोकंप्लीट (नया) के लिए किए गए अनुरोधों की औसत संख्या | लागू करने के सुझाव |
|---|---|---|
| पते और जगह की जानकारी के अलावा, जगह की अन्य जानकारी. जैसे, जगह का नाम, कारोबार की स्थिति या कारोबार के खुले होने का समय | कोई भी नंबर | जगह की जानकारी (नया) के साथ सेशन-आधारित ऑटोकंप्लीट (नया) |
| चुने गए अनुमान का सिर्फ़ पता और अक्षांश/देशांतर | चार या इससे कम | Geocoding API के साथ, हर अनुरोध के लिए ऑटोकंप्लीट (नया) सुविधा |
| चुने गए अनुमान का सिर्फ़ पता और अक्षांश/देशांतर | चार से ज़्यादा | सिर्फ़ पते की जानकारी देने वाले ऐप्लिकेशन के लिए, सेशन के हिसाब से ऑटोकंप्लीट (नया) |
ऑटोकंप्लीट (नया) के इस्तेमाल की परफ़ॉर्मेंस के आधार पर, आपके ऐप्लिकेशन के लिए Geocoding API, Place Details (नया) की तुलना में ज़्यादा किफ़ायती विकल्प हो सकता है. हर ऐप्लिकेशन के लिए, अपने-आप पूरा होने वाले सुझाव (नया वर्शन) की सुविधा की परफ़ॉर्मेंस अलग-अलग होती है. यह इस बात पर निर्भर करती है कि उपयोगकर्ता क्या जानकारी डाल रहे हैं, ऐप्लिकेशन का इस्तेमाल कहां किया जा रहा है, और परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के सबसे सही तरीके लागू किए गए हैं या नहीं.
टेबल के लिए अनुरोधों की औसत संख्या का पता लगाने के लिए, यह विश्लेषण करें कि आपके ऐप्लिकेशन में, अपने-आप पूरा होने वाले सुझाव (नया) को चुनने से पहले, कोई उपयोगकर्ता औसतन कितने वर्ण टाइप करता है.
Place Details (New) के साथ, सेशन के हिसाब से ऑटोकंप्लीट (नई) की सुविधा
Place Details (नया) के साथ, सेशन के हिसाब से ऑटोकंप्लीट (नया) सुविधा का इस्तेमाल करें.
आपके ऐप्लिकेशन को जगह की जानकारी (नया) की ज़रूरत होती है. जैसे, जगह का नाम, कारोबार की स्थिति या कारोबार के खुले होने का समय. इसलिए, ऑटोकंप्लीट (नया) की सुविधा को लागू करने के लिए, आपको हर सेशन के लिए सेशन टोकन का इस्तेमाल करना चाहिए. इसके अलावा, लागू होने वाले Places एसकेयू का इस्तेमाल भी करना चाहिए. यह टोकन, प्रोग्राम के हिसाब से या JavaScript, Android या iOS विजेट में पहले से मौजूद होता है. यह इस बात पर निर्भर करता है कि आपने जगह की जानकारी के किन डेटा फ़ील्ड का अनुरोध किया है.1
विजेट लागू करना
सेशन मैनेजमेंट की सुविधा,
JavaScript,
Android,
या iOS
विजेट में अपने-आप शामिल हो जाती है. इसमें, चुने गए सुझाव पर ऑटोकंप्लीट (नया) और जगह की जानकारी (नया), दोनों के अनुरोध शामिल होते हैं. fields पैरामीटर की जानकारी ज़रूर दें, ताकि यह पक्का किया जा सके कि आपने सिर्फ़ उन डेटा फ़ील्ड के लिए अनुरोध किया है जिनकी आपको ज़रूरत है.
प्रोग्राम के हिसाब से लागू करना
अपने ऑटोकंप्लीट (नया) अनुरोधों के साथ,
सेशन टोकन
का इस्तेमाल करें. चुने गए सुझाव के बारे में, जगह की जानकारी (नई सुविधा) का अनुरोध करते समय, ये पैरामीटर शामिल करें:
- ऑटोकंप्लीट (नया) के रिस्पॉन्स से मिला जगह का आईडी
- अपने-आप पूरा होने वाले सुझाव (नया) के अनुरोध में इस्तेमाल किया गया सेशन टोकन
fieldsपैरामीटर, जो आपको ज़रूरी ऑटोकंप्लीट (नया) डेटा फ़ील्ड के बारे में बताता है
Geocoding API के साथ, हर अनुरोध के लिए Autocomplete (New) की सुविधा
सेशन टोकन के बिना, प्रोग्राम के हिसाब से ऑटोकंप्लीट (नया) सुविधा लागू करना और सुझाई गई जगह पर Geocoding API को कॉल करना.
Geocoding API, पते और अक्षांश/देशांतर के निर्देशांक उपलब्ध कराता है.
चार ऑटोकंप्लीट अनुरोध और चुनी गई जगह के सुझाव के बारे में Geocoding API कॉल करने की कीमत, ऑटोकंप्लीट (नया) के हर सेशन की कीमत से कम है.1
परफ़ॉर्मेंस के सबसे सही तरीके अपनाएं, ताकि आपके उपयोगकर्ताओं को कम से कम वर्णों में वह अनुमान मिल सके जो वे खोज रहे हैं.
सिर्फ़ पते की जानकारी देने वाले ऐप्लिकेशन के लिए, सेशन के हिसाब से ऑटोकंप्लीट (नया)
Place Details (नया) के साथ, सेशन के हिसाब से ऑटोकंप्लीट (नया) सुविधा का इस्तेमाल करें.
किसी उपयोगकर्ता के ऑटोकंप्लीट (नया) सुविधा से मिले सुझाव को चुनने से पहले, आपके अनुरोधों की औसत संख्या, हर सेशन की कीमत से ज़्यादा होती है. इसलिए, ऑटोकंप्लीट (नया) सुविधा को लागू करने के लिए, ऑटोकंप्लीट (नया) सुविधा के अनुरोधों और उससे जुड़ी जगह की जानकारी (नया) के अनुरोध, दोनों के लिए सेशन टोकन का इस्तेमाल करना चाहिए
हर सेशन.
1
विजेट लागू करना
सेशन मैनेजमेंट की सुविधा,
JavaScript,
Android,
या iOS
विजेट में अपने-आप शामिल हो जाती है. इसमें, ऑटोकंप्लीट (नया) के अनुरोध और चुने गए सुझाव पर जगह की जानकारी (नया) का अनुरोध, दोनों शामिल हैं. fields पैरामीटर की जानकारी ज़रूर दें, ताकि यह पक्का किया जा सके कि आपने सिर्फ़ ज़रूरी फ़ील्ड के लिए अनुरोध किया है.
प्रोग्राम के हिसाब से लागू करना
अपने ऑटोकंप्लीट (नया) अनुरोधों के साथ,
सेशन टोकन
का इस्तेमाल करें.
चुने गए अनुमान के बारे में Place Details (New) का अनुरोध करते समय, ये पैरामीटर शामिल करें:
- ऑटोकंप्लीट (नया) के रिस्पॉन्स से मिला जगह का आईडी
- अपने-आप पूरा होने वाले सुझाव (नया) के अनुरोध में इस्तेमाल किया गया सेशन टोकन
fieldsपैरामीटर, जो पते और ज्यामिति जैसे फ़ील्ड के बारे में बताता है
ऑटोकंप्लीट (नया) के अनुरोधों में देरी करने पर विचार करें
ऑटोकंप्लीट (नया) के अनुरोध में तब तक देरी करने जैसी रणनीतियां अपनाई जा सकती हैं, जब तक कि उपयोगकर्ता पहले तीन या चार वर्ण टाइप न कर ले. इससे आपके ऐप्लिकेशन को कम अनुरोध करने पड़ेंगे. उदाहरण के लिए, उपयोगकर्ता के तीसरा वर्ण टाइप करने के बाद, हर वर्ण के लिए Autocomplete (New) के अनुरोध करने का मतलब है कि अगर उपयोगकर्ता सात वर्ण टाइप करता है, तो वह उस सुझाव को चुनता है जिसके लिए आपने एक Geocoding API अनुरोध किया है. इसकी कुल लागत, हर अनुरोध के लिए चार Autocomplete (New) + Geocoding के लिए होगी.1
अगर अनुरोधों में देरी करने से, प्रोग्राम के हिसाब से किए जाने वाले अनुरोधों की औसत संख्या चार से कम हो सकती है, तो Geocoding API के साथ ऑटोकंप्लीट (नया) को लागू करने के लिए, दिए गए दिशा-निर्देशों का पालन करें. ध्यान दें कि अनुरोधों में देरी होने पर, उपयोगकर्ता को इंतज़ार करना पड़ सकता है. ऐसा हो सकता है कि उपयोगकर्ता को हर नए कीस्ट्रोक के साथ सुझाव देखने की उम्मीद हो.
परफ़ॉर्मेंस के सबसे सही तरीके अपनाएं, ताकि आपके उपयोगकर्ताओं को कम वर्णों में ही वह अनुमान मिल सके जो वे खोज रहे हैं.
-
लागत के बारे में जानने के लिए, Google Maps Platform की कीमत की सूचियां देखें.
परफ़ॉर्मेंस को बेहतर बनाने के सबसे सही तरीके
यहां दिए गए दिशा-निर्देशों में, ऑटोकंप्लीट (नया) की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के तरीके बताए गए हैं:
- अपने ऑटोकंप्लीट (नया) लागू करने के तरीके में, देश से जुड़ी पाबंदियां, जगह के हिसाब से नतीजे दिखाने की सुविधा, और (प्रोग्राम के हिसाब से लागू करने के लिए) भाषा से जुड़ी प्राथमिकता जोड़ें. विजेट के लिए, भाषा की प्राथमिकता सेट करने की ज़रूरत नहीं होती. ऐसा इसलिए, क्योंकि वे उपयोगकर्ता के ब्राउज़र या मोबाइल डिवाइस से भाषा से जुड़ी प्राथमिकताएं चुनते हैं.
- अगर Autocomplete (New) के साथ कोई मैप मौजूद है, तो मैप व्यूपोर्ट के हिसाब से जगह की जानकारी को बायस किया जा सकता है.
- कभी-कभी ऐसा होता है कि उपयोगकर्ता, ऑटोकंप्लीट (नया) के किसी भी सुझाव को नहीं चुनता. आम तौर पर, ऐसा इसलिए होता है, क्योंकि उन सुझावों में से कोई भी सुझाव, उपयोगकर्ता के काम का नहीं होता. ऐसे में, उपयोगकर्ता के ओरिजनल इनपुट का फिर से इस्तेमाल करके, ज़्यादा काम के नतीजे पाने की कोशिश की जा सकती है:
- अगर आपको लगता है कि उपयोगकर्ता सिर्फ़ पते की जानकारी डालेगा, तो Geocoding API को किए गए कॉल में, उपयोगकर्ता के ओरिजनल इनपुट का फिर से इस्तेमाल करें.
- अगर आपको लगता है कि उपयोगकर्ता किसी खास जगह के नाम या पते के लिए क्वेरी डालेगा, तो Place Details (New) अनुरोध का इस्तेमाल करें. अगर आपको सिर्फ़ किसी खास इलाके के नतीजे चाहिए, तो जगह के हिसाब से नतीजे दिखाने की सुविधा का इस्तेमाल करें.
- उपयोगकर्ता, सब-प्रमिस पते डालते हैं. जैसे, किसी इमारत में मौजूद खास यूनिट या अपार्टमेंट के पते. उदाहरण के लिए, चेक गणराज्य का पता "Stroupežnického 3191/17, Praha" डालने पर, ऑटोकंप्लीट (नया) की सुविधा से अधूरा सुझाव मिलता है.
- उपयोगकर्ता, न्यूयॉर्क शहर में "23-30 29th St, Queens" या हवाई के काउआई द्वीप पर "47-380 Kamehameha Hwy, Kaneohe" जैसे सड़क के सेगमेंट के प्रीफ़िक्स वाले पते डालते हैं.
जगह के हिसाब से नतीजे दिखाना
location पैरामीटर और radius पैरामीटर को पास करके, नतीजों को किसी खास इलाके के हिसाब से बायस करें. इससे, ऑटोकंप्लीट (नया) को तय किए गए इलाके में नतीजे दिखाने को प्राथमिकता देने का निर्देश मिलता है. तय किए गए इलाके से बाहर के नतीजे अब भी दिख सकते हैं. includedRegionCodes पैरामीटर का इस्तेमाल करके, नतीजों को फ़िल्टर किया जा सकता है. इससे सिर्फ़ किसी देश में मौजूद जगहों को दिखाया जा सकता है.
जगह की जानकारी से जुड़ी पाबंदी
locationRestriction पैरामीटर पास करके, नतीजों को किसी खास इलाके तक सीमित करना.
आपके पास location और radius पैरामीटर से तय किए गए इलाके के हिसाब से नतीजों को सीमित करने का विकल्प भी है. इसके लिए, आपको locationRestriction पैरामीटर जोड़ना होगा. इससे, ऑटोकंप्लीट (नया) को उस इलाके के सिर्फ़ नतीजे दिखाने का निर्देश मिलता है.