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

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

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

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

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

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

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

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

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

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

ऑटोकंप्लीट (नया) सुविधा के लिए किए गए अनुरोध

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: खास नाम और अलग-अलग टेक्स्ट, जैसे कि शहर या क्षेत्र.

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

क्वेरी

वह टेक्स्ट स्ट्रिंग जिसमें खोजना है. पूरे शब्द और सबस्ट्रिंग, जगहों के नाम, पते, और प्लस कोड डालें. Autocomplete (New) सेवा, इस स्ट्रिंग के आधार पर मिलते-जुलते शब्दों के सुझाव देती है. साथ ही, खोज के नतीजों को इस आधार पर क्रम में लगाती है कि वे कितने काम के हैं.

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

sessionToken

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

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 Autocomplete विजेट की मदद से सेशन टोकन का इस्तेमाल किया जा सकता है. इससे, बिलिंग के लिए ऑटोकंप्लीट के अनुरोधों को सेशन में ग्रुप किया जा सकता है. AutocompleteSessionToken() को कॉल करके, सेशन टोकन पास किया जा सकता है.

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

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

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

प्रोग्राम के हिसाब से उपलब्ध पैरामीटर के अलावा, Place Autocomplete विजेट में ये पैरामीटर भी उपलब्ध होते हैं.

दिखाएं

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

AutocompleteUICustomization

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

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

onSelection

किसी जगह को चुनने पर, इस क्लोज़र को चलाया जाता है.

onError

गड़बड़ी होने पर, इस क्लोज़र को चलाया जाता है. कोई गड़बड़ी होने पर, A 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 में इसकी जानकारी दी गई है. ज़्यादा से ज़्यादा पांच वैल्यू का कलेक्शन तय किया जा सकता है. अगर इसे शामिल नहीं किया जाता है, तो सभी तरह के नतीजे दिखाए जाते हैं.

इस उदाहरण में, "फ़ुटबॉल" की क्वेरी स्ट्रिंग दी गई है. साथ ही, इसमें types पैरामीटर का इस्तेमाल करके, नतीजों को "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.
      }
    }
}];

Places Autocomplete विजेट जोड़ना

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