जगह का अपने-आप पूरा होना (नया)

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript वेब सेवा

ऑटोकंप्लीट (नई) सेवा, iOS एपीआई है. यह किसी अनुरोध के जवाब में, जगह के सुझाव दिखाती है. अनुरोध में, टेक्स्ट खोज स्ट्रिंग और भौगोलिक सीमाएं दें. इससे खोज के लिए इलाके को कंट्रोल किया जा सकता है.

ऑटोकंप्लीट (नई) सेवा, इनपुट के पूरे शब्दों और सबस्ट्रिंग से मैच कर सकती है. इससे जगहों के नाम, पते, और प्लस कोड का पता चलता है. इसलिए, ऐप्लिकेशन उपयोगकर्ता के टाइप करते ही क्वेरी भेज सकते हैं, ताकि जगह के सुझाव तुरंत दिए जा सकें.

जगह के सुझाव, कारोबार, पते, और लोकप्रिय जगहों जैसी जगहें होती हैं. ये सुझाव, डाली गई टेक्स्ट स्ट्रिंग और खोज के लिए चुने गए इलाके के आधार पर दिखाए जाते हैं.

उदाहरण के लिए, आपने एपीआई को कॉल करने के लिए, इनपुट के तौर पर ऐसी स्ट्रिंग का इस्तेमाल किया है जिसमें उपयोगकर्ता का कुछ इनपुट, "Spagh" शामिल है. साथ ही, खोज के लिए न्यूयॉर्क शहर को चुना गया है. इसके बाद, जवाब में जगह के सुझाव की एक सूची दिखती है. यह सूची, खोज स्ट्रिंग और खोज के इलाके से मेल खाने वाली जगहों की होती है. जैसे, "Cafe Spaghetti" नाम का रेस्टोरेंट. साथ ही, जगह की जानकारी भी दिखती है.

जगह के सुझाव, उपयोगकर्ता को दिखाए जाने के लिए डिज़ाइन किए गए हैं, ताकि वह अपनी पसंद की जगह चुन सके. जगह के सुझावों में से किसी के बारे में ज़्यादा जानकारी पाने के लिए, जगह की जानकारी (नया) का अनुरोध किया जा सकता है.

अपने ऐप्लिकेशन में, ऑटोमैटिक भरने की सुविधा (नई) को दो मुख्य तरीकों से इंटिग्रेट किया जा सकता है:

प्रोग्राम के हिसाब से जगह के सुझाव पाना

ऑटोकंप्लीट (नया) अनुरोध

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 के ज़्यादा से ज़्यादा पांच उदाहरणों का कलेक्शन दिखाती है. ऐरे में ये शामिल हैं:

  • placeID
  • types: इस जगह पर लागू होने वाले टाइप.
  • distanceMeters: ऑरिजिन (मूल जगह) से दूरी.
  • attributedFullText: सुझाव का पूरा टेक्स्ट, जिसे इंसान पढ़ सकता है.
  • attributedPrimaryText: सुझाव का मुख्य टेक्स्ट, जिसे इंसान पढ़ सकता है.
  • attributedSecondaryText: सुझाव का ऐसा सेकंडरी टेक्स्ट जिसे कोई भी व्यक्ति पढ़ सकता है.
  • structuredFormat: खास नाम और शहर या इलाके जैसा ऐसा टेक्स्ट जिससे किसी चीज़ के बारे में साफ़ तौर पर पता चलता हो.

ज़रूरी पैरामीटर

क्वेरी

वह टेक्स्ट स्ट्रिंग जिस पर खोजना है. पूरे शब्द और सबस्ट्रिंग, जगह के नाम, पते, और plus codes की जानकारी दें. ऑटोमैटिक भरने की सुविधा (नई) इस स्ट्रिंग के आधार पर, मिलते-जुलते नाम दिखाती है. साथ ही, नतीजों को उनके काम के होने के हिसाब से क्रम में लगाती है.

ज़रूरी नहीं पैरामीटर

sessionToken

सेशन टोकन, उपयोगकर्ता से जनरेट हुई स्ट्रिंग होती हैं. ये "सेशन" के तौर पर, अपने-आप पूरा होने वाले (नए) कॉल को ट्रैक करती हैं. इनमें विजेट और प्रोग्राम के ज़रिए किए गए कॉल, दोनों शामिल होते हैं. ऑटोकंप्लीट (नया) सेशन टोकन का इस्तेमाल करता है, ताकि बिलिंग के मकसद से, उपयोगकर्ता की ऑटोकंप्लीट की गई खोज के क्वेरी और चुनने के चरणों को अलग-अलग सेशन में ग्रुप किया जा सके. ज़्यादा जानकारी के लिए, सेशन टोकन देखें.

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" ];

देश

सिर्फ़ उन देशों/इलाकों के नतीजे शामिल करें जिनकी सूची दी गई है. यह सूची, ccTLD ("टॉप-लेवल डोमेन") के 15 दो वर्णों वाली वैल्यू के ऐरे के तौर पर दी गई है. अगर इस एट्रिब्यूट को शामिल नहीं किया जाता है, तो जवाब पर कोई पाबंदी नहीं लगाई जाती. उदाहरण के लिए, जर्मनी और फ़्रांस तक क्षेत्रों को सीमित करने के लिए:

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 और 50, 000.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 कोड से मेल खाते हैं. हालांकि, कुछ अपवाद भी हैं. उदाहरण के लिए, यूनाइटेड किंगडम का सीसीटीएलडी "uk" (.co.uk) है, जबकि इसका आईएसओ 3166-1 कोड "gb" है. तकनीकी तौर पर, यह कोड "ग्रेट ब्रिटेन और उत्तरी आयरलैंड के यूनाइटेड किंगडम" की इकाई के लिए है.

अगर आपने क्षेत्र का अमान्य कोड डाला है, तो एपीआई INVALID_ARGUMENT के साथ गड़बड़ी का मैसेज दिखाता है. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.

जगह के नाम के लिए ऑटोकंप्लीट की सुविधा वाला विजेट जोड़ना

जगह की जानकारी अपने-आप पूरी होने की सुविधा को आसानी से इस्तेमाल करने के लिए, अपने ऐप्लिकेशन में जगह की जानकारी अपने-आप पूरी होने वाला विजेट जोड़ा जा सकता है. यह विजेट, उपयोगकर्ता के इनपुट को मैनेज करने के लिए, एक खास फ़ुल-स्क्रीन इंटरफ़ेस उपलब्ध कराता है. साथ ही, ऐप्लिकेशन में AutocompletePlaceSuggestion ऑब्जेक्ट दिखाते समय, उपयोगकर्ता को जगह की जानकारी के सुझाव भी दिखाता है. इसके बाद, जगह की जानकारी के किसी भी सुझाव के बारे में ज़्यादा जानकारी पाने के लिए, जगह की जानकारी (नया) का अनुरोध किया जा सकता है.

जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने वाला विजेट

जगह के सुझाव प्रोग्राम के हिसाब से पाने के दौरान, किसी जगह के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने वाले विजेट की मदद से, सेशन टोकन का इस्तेमाल किया जा सकता है. इससे, बिलिंग के मकसद से ऑटोकंप्लीट के अनुरोधों को सेशन में ग्रुप किया जा सकता है. AutocompleteSessionToken() को कॉल करके, सेशन टोकन पास किया जा सकता है.

अगर आपने सेशन टोकन नहीं दिया है, तो विजेट आपके लिए ऑटोमैटिक भरने की सुविधा वाला सेशन टोकन बना देगा. इसे onSelection कॉलबैक से पाया जा सकता है. सेशन टोकन इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, सेशन टोकन के बारे में जानकारी लेख पढ़ें.

जब show बाइंडिंग वैल्यू को true पर सेट किया जाता है, तो उपयोगकर्ता को स्क्रीन पर पूरी जगह दिखेगी. यहां वह कोई जगह चुन सकता है. जब उपयोगकर्ता कुछ टाइप करता है, तो विजेट, कारोबारों, पतों, और लोकप्रिय जगहों जैसे विकल्पों के सुझाव दिखाता है. जब उपयोगकर्ता किसी जगह को चुनता है, तो विजेट, चुनी गई जगह के साथ onSelection हैंडलर को कॉल करता है और फ़ुलस्क्रीन व्यू को बंद कर देता है.

जगह के नाम के लिए ऑटोकंप्लीट की सुविधा वाले विजेट के पैरामीटर

प्रोग्राम के हिसाब से उपलब्ध पैरामीटर के अलावा, जगह की जानकारी अपने-आप भरने की सुविधा देने वाला विजेट ये पैरामीटर भी उपलब्ध कराता है.

दिखाएं

show से यह तय होता है कि विजेट दिखाया जाए या नहीं.

AutocompleteUICustomization

AutocompleteUICustomization पैरामीटर, विजेट पर लागू किए जाने वाले यूज़र इंटरफ़ेस (यूआई) के कस्टमाइज़ेशन के बारे में बताते हैं. पसंद के मुताबिक बनाने के ये विकल्प हैं:

  • AutocompleteListDensity. इस पैरामीटर की मदद से, सुझावों की सूची में मौजूद आइटम की संख्या चुनी जा सकती है. इसके लिए, multiLine या twoLine में से कोई एक विकल्प चुना जा सकता है.
  • AutocompleteUIIcon. इस पैरामीटर की मदद से यह चुना जा सकता है कि सूची के हर आइटम के लिए डिफ़ॉल्ट आइकॉन दिखाना है या नहीं.

onSelection

कोई जगह चुनने पर, बंद होने की जानकारी दिखाने वाला मैसेज.

onError

गड़बड़ी होने पर चलने वाला क्लोज़र. गड़बड़ी होने पर, PlacesError को पास किया जाएगा.

कोड का पूरा उदाहरण देखें.

ऑटोकंप्लीट (नया) के उदाहरण

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" टाइप के कारोबारों के नतीजों पर पाबंदी लगाने के लिए, types पैरामीटर का इस्तेमाल किया गया है:

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.
      }
    }
}];

जगहों के नाम के लिए ऑटोकंप्लीट की सुविधा वाला विजेट जोड़ना

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
        }
      )
    }
  }
}

एट्रिब्यूशन

मैप के बिना भी, अपने-आप पूरा होने वाले सुझावों की सुविधा (नई) का इस्तेमाल किया जा सकता है. अगर आपने मैप दिखाया है, तो वह Google मैप होना चाहिए. मैप के बिना ऑटोकंप्लीट (नई) सेवा से मिलने वाले सुझाव दिखाते समय, आपको खोज फ़ील्ड/नतीजों के साथ इनलाइन में दिखने वाला Google लोगो शामिल करना होगा. ज़्यादा जानकारी के लिए, Google का लोगो और क्रेडिट दिखाना लेख पढ़ें.