ऑटोकंप्लीट (नई सुविधा), किसी अनुरोध के जवाब में जगह के सुझाव दिखाती है. इस अनुरोध में, टेक्स्ट से खोजने के लिए स्ट्रिंग और खोज के लिए तय किए गए इलाके की भौगोलिक सीमाएं शामिल होती हैं. ऑटोकंप्लीट की सुविधा मैच कर सकती है सभी शब्दों और सबस्ट्रिंग का इस्तेमाल करें. साथ ही, जगहों के नाम, पते, और प्लस कोड शामिल करें. आपका ऐप्लिकेशन, जगह और क्वेरी के सुझाव तुरंत देने के लिए, उपयोगकर्ता के टाइप करते ही क्वेरी भेज सकता है.
उदाहरण के लिए, आपने मोबाइल फ़ोन में ऐसी स्ट्रिंग जिसमें खोज क्षेत्र के साथ आंशिक उपयोगकर्ता इनपुट, "सिसिलियन पिज़" शामिल है यह सिर्फ़ सैन फ़्रांसिस्को, कैलिफ़ोर्निया तक सीमित है. इसके बाद, जवाब में जगह के उन सुझावों की सूची दिखती है जो खोज स्ट्रिंग और खोज के इलाके से मेल खाते हैं. जैसे, "Sicilian Pizza Kitchen" नाम का रेस्टोरेंट.
जगह के सुझावों को इस तरह से डिज़ाइन किया गया है कि उपयोगकर्ता को अपनी पसंद की जगह चुनने में मदद मिल सके. आप एक जगह की जानकारी (नया)ज़्यादा पाने के लिए अनुरोध किसी भी लौटाए गए स्थान पूर्वानुमान के बारे में जानकारी.
ऑटोकंप्लीट (नया) अनुरोध
आपके ऐप्लिकेशन को जगहों के अनुमानित नामों की सूची मिल सकती है और/या
कॉल करके ऑटोकंप्लीट एपीआई से ईमेल पते खोजें
PlacesClient.findAutocompletePredictions()
,
पास
FindAutocompletePredictionsRequest
ऑब्जेक्ट है. नीचे दिए गए उदाहरण में बताया गया है कि
PlacesClient.findAutocompletePredictions()
.
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Sicilian piz") .setRegionCode("ES") .setLocationRestriction(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
जवाबों को अपने-आप पूरा करने की सुविधा (नई)
एपीआई यह
FindAutocompletePredictionsResponse
में
Task
.
FindAutocompletePredictionsResponse
में, अनुमानित जगहों को दिखाने वाले ज़्यादा से ज़्यादा पांच AutocompletePrediction
ऑब्जेक्ट की सूची होती है. अगर कोई न हो, तो सूची खाली हो सकती है
क्वेरी और फ़िल्टर मानदंड के हिसाब से जगह की जानकारी.
प्रत्येक अनुमानित स्थान के लिए, आप स्थान पुनर्प्राप्त करने के लिए निम्न तरीकों को कॉल कर सकते हैं विवरण:
getFullText(CharacterStyle)
किसी जगह की जानकारी का पूरा टेक्स्ट दिखाता है. यह प्राइमरी और सेकंडरी टेक्स्ट का कॉम्बिनेशन है. उदाहरण: "आइफ़िल टावर, एवेन्यू अनातोल फ़्रांस, पेरिस, फ़्रांस". इसके अलावा, इस तरीके की मदद से, आपको ऐसा ब्यौरा डालें जो खोज के नतीजों में आपकी पसंद की स्टाइल से मेल खाता हो.CharacterStyle
.CharacterStyle
पैरामीटर का इस्तेमाल करना ज़रूरी नहीं है. अगर आपको इसकी ज़रूरत नहीं है, तो इसे शून्य पर सेट करें किसी भी हाइलाइट को शामिल कर सकते हैं.getPrimaryText(CharacterStyle)
, किसी जगह के बारे में बताने वाला मुख्य टेक्स्ट दिखाता है. आम तौर पर, यह जगह का नाम होता है. उदाहरण: "कुतुब मीनार" और "123 Pitt Street".getSecondaryText(CharacterStyle)
यह फ़ंक्शन किसी जगह के ब्यौरे का मुख्य टेक्स्ट दिखाता है. उदाहरण के लिए, ऑटोकंप्लीट की सुविधा से मिलने वाले सुझावों को दिखाते समय, यह दूसरी लाइन के तौर पर काम आता है. उदाहरण: "Avenue Anatole France, Paris, France" और "Sydney, New South Wales".getPlaceId()
यह अनुमानित जगह का जगह का आईडी दिखाता है. जगह का आईडी, टेक्स्ट वाला एक आइडेंटिफ़ायर होता है. इससे किसी जगह की यूनीक पहचान की जा सकती है. इसका इस्तेमाल, बाद मेंPlace
ऑब्जेक्ट को फिर से पाने के लिए किया जा सकता है. जगह के आईडी के बारे में ज़्यादा जानकारी पाने के लिए, ऑटोकंप्लीट, जगह की जानकारी देखें (नया). सामान्य जगह की जानकारी के बारे में जानकारी पाने के लिए, जगह का आईडी देखें खास जानकारी पर टैप करें.getTypes()
इस जगह से जुड़ी अलग-अलग तरह की जगहों की सूची दिखाता है.getDistanceMeters()
, इस जगह और अनुरोध में बताए गए ऑरिजिन के बीच की सीधी दूरी को मीटर में दिखाता है.
ज़रूरी पैरामीटर
-
क्वेरी
वह टेक्स्ट स्ट्रिंग जिस पर खोजना है. पूरे शब्द और सबस्ट्रिंग, जगहों के नाम, पते, और प्लस कोड डालें. ऑटोकंप्लीट (नई) सेवा, इस स्ट्रिंग के आधार पर मिलते-जुलते नाम दिखाती है. साथ ही, नतीजों को उनके काम के होने के हिसाब से क्रम में लगाती है.
क्वेरी पैरामीटर सेट करने के लिए,
setQuery()
को कॉल करेंFindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समय दिया गया तरीका.
ज़रूरी नहीं पैरामीटर
-
मुख्य टाइप
टाइप से लेकर, ज़्यादा से ज़्यादा पांच टाइप वैल्यू की सूची टेबल A या टेबल B इसका इस्तेमाल, जवाब में दी गई जगहों को फ़िल्टर करने के लिए किया जाता है. जवाब में शामिल करने के लिए, जगह की जानकारी इनमें से किसी एक प्राइमरी टाइप की वैल्यू से मेल खानी चाहिए.
किसी जगह के टाइप में से सिर्फ़ एक मुख्य टाइप हो सकता है टेबल A या टेबल B असोसिएट हो गई है उसके साथ. उदाहरण के लिए, प्राइमरी टाइप
"mexican_restaurant"
या हो सकता है"steak_house"
.अनुरोध को
INVALID_REQUEST
गड़बड़ी के साथ अस्वीकार किया जाता है, अगर:- पांच से ज़्यादा टाइप तय किए गए हैं.
- ऐसे सभी टाइप के बारे में बताया गया है जिनकी पहचान नहीं हो सकी.
प्राथमिक प्रकार का पैरामीटर सेट करने के लिए
setTypesFilter()
को कॉल करेंFindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समय दिया गया तरीका. -
देश
सिर्फ़ उन देशों की सूची में शामिल नतीजे शामिल करें जिनके लिए खोज की गई है. यह सूची, 15 ccTLD ("टॉप-लेवल डोमेन") की दो वर्णों वाली वैल्यू की सूची के तौर पर दी गई है. अगर इस एट्रिब्यूट को शामिल नहीं किया जाता है, तो जवाब पर कोई पाबंदी नहीं लगाई जाती. उदाहरण के लिए, जर्मनी और फ़्रांस तक क्षेत्रों को सीमित करने के लिए:
अगर आपने
locationRestriction
औरincludedRegionCodes
, दोनों की जानकारी दी है, तो नतीजे, दोनों सेटिंग के इंटरसेक्शन वाले एरिया में मौजूद होते हैं.देशों का पैरामीटर सेट करने के लिए,
setCountries()
को कॉल करेंFindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समय दिया गया तरीका. -
इनपुट ऑफ़सेट
शून्य पर आधारित यूनिकोड वर्ण ऑफ़सेट, जो क्वेरी में कर्सर की जगह दिखाता है. कर्सर की जगह से यह तय होता है कि कौनसे सुझाव दिखाए जाएंगे. अगर यह खाली है, तो यह डिफ़ॉल्ट रूप से क्वेरी की लंबाई पर सेट होता है.
इनपुट ऑफ़सेट पैरामीटर सेट करने के लिए,
FindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समयsetInputOffset()
तरीका कॉल करें. जगह के हिसाब से पक्षपात या जगह से जुड़ी पाबंदी
खोज के लिए जगह तय करने के लिए, जगह के हिसाब से रुझान या जगह से जुड़ी पाबंदी तय की जा सकती है. हालांकि, दोनों को एक साथ नहीं तय किया जा सकता. जगह की जानकारी से जुड़ी पाबंदी को वह क्षेत्र जिसमें परिणाम होने चाहिए, और स्थान पक्षपात उस क्षेत्र को तय करता है जिसके पास ही नतीजे होने चाहिए. मुख्य अंतर यह है कि जगह के हिसाब से खोज के नतीजे दिखाने की सुविधा के तहत, तय किए गए इलाके से बाहर के नतीजे भी दिख सकते हैं.
जगह का मापदंड
यह बताता है कि किसी इलाके को किस इलाके में खोजा जाना है. यह जगह, किसी पाबंदी के तौर पर नहीं, बल्कि किसी खास जगह के हिसाब से काम करती है. इसलिए, तय किए गए इलाके से बाहर के नतीजे भी दिखाए जा सकते हैं.
लोकेशन बायस पैरामीटर सेट करने के लिए,
FindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समयsetLocationBias()
तरीके को कॉल करें.जगह की जानकारी से जुड़ी पाबंदी
यह बताता है कि किसी इलाके को किस इलाके में खोजा जाना है. तय किए गए इलाके से बाहर के नतीजे नहीं दिखाए जाते.
जगह की जानकारी की पाबंदी वाला पैरामीटर सेट करने के लिए,
setLocationRestriction()
को कॉल करेंFindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समय दिया गया तरीका.
जगह के हिसाब से रुझान या जगह की पाबंदी वाले इलाके की जानकारी, रेक्टैंगल व्यूपोर्ट या सर्कल के तौर पर दें.
किसी वृत्त को उसके केंद्र बिंदु और त्रिज्या से तय किया जाता है. त्रिज्या को मीटर में दिखाया जाता है. त्रिज्या, 0.0 और 50,000.0 के बीच होनी चाहिए. डिफ़ॉल्ट वैल्यू 0.0 है. जगह की पाबंदी के लिए, आपको त्रिज्या को 0.0 से ज़्यादा की वैल्यू पर सेट करना होगा. ऐसा न करने पर, अनुरोध से कोई नतीजा नहीं मिलता.
रेक्टैंगल, अक्षांश-देशांतर का व्यूपोर्ट होता है. इसे दो फ़ॉर्मैट में दिखाया जाता है
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
, दोनों में जानकारी होनी चाहिए. साथ ही, दिखाया गया बॉक्स खाली नहीं होना चाहिए. खाली व्यूपोर्ट की वजह से गड़बड़ी होती है.- अगर
-
शुरुआत की जगह
ऑरिजिन पॉइंट, जहां से डेस्टिनेशन तक की सीधी दूरी का हिसाब लगाया जाता है. इसे
getDistanceMeters()
का इस्तेमाल करके ऐक्सेस किया जाता है. अगर इस वैल्यू को छोड़ा जाता है, तो सीधी दूरी का हिसाब नहीं लगाया जाएगा. इस रूप में दर्ज होना चाहिए अक्षांश और देशांतर निर्देशांक:ऑरिजिन पैरामीटर सेट करने के लिए,
FindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समयsetOrigin()
तरीके को कॉल करें. -
क्षेत्र कोड
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्रीय कोड. इसमें पते का फ़ॉर्मैट भी शामिल है. ccTLD ("टॉप लेवल डोमेन") दो वर्ण वाला मान. ज़्यादातर ccTLD कोड, ISO 3166-1 कोड से मिलते-जुलते होते हैं. इसमें कुछ अहम अपवाद शामिल हैं. उदाहरण के लिए, यूनाइटेड किंगडम का सीसीटीएलडी "uk" (.co.uk) है, जबकि उसका आईएसओ 3166-1 कोड "gb" है. यह कोड, "ग्रेट ब्रिटेन और उत्तरी आयरलैंड के यूनाइटेड किंगडम" की इकाई के लिए है.
किसी अमान्य क्षेत्र का कोड डालने पर, एपीआई
INVALID_ARGUMENT
दिखाता है गड़बड़ी. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर असर पड़ सकता है.क्षेत्र कोड पैरामीटर सेट करने के लिए,
FindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समयsetRegionCode()
तरीके को कॉल करें. -
सेशन टोकन
सेशन टोकन, उपयोगकर्ता से जनरेट हुई स्ट्रिंग होती हैं. ये ऑटोमैटिक भरने की सुविधा (नया) के कॉल को "सेशन" के तौर पर ट्रैक करती हैं. ऑटोकंप्लीट की सुविधा, बिलिंग के मकसद से उपयोगकर्ता की ऑटोकंप्लीट की गई खोज के क्वेरी और चुनने के चरणों को अलग-अलग सेशन में ग्रुप करने के लिए, सेशन टोकन का इस्तेमाल करती है. सेशन तब शुरू होता है, जब उपयोगकर्ता क्वेरी टाइप करना शुरू करता है और कोई जगह चुनने पर क्वेरी को खत्म करता है. हर सेशन में कई क्वेरी हो सकती हैं. इसके बाद, एक जगह चुनी जा सकती है. एक बार में खत्म हो गया, टोकन अब मान्य नहीं है. आपके ऐप्लिकेशन को नया टोकन जनरेट करना होगा के लिए एक कीवर्ड है. हमारा सुझाव है कि प्रोग्राम के हिसाब से काम करने वाले सभी ऑटोमैटिक भरने वाले सेशन के लिए, सेशन टोकन का इस्तेमाल करें. जब किसी फ़्रैगमेंट को एम्बेड किया जाता है या किसी इंटेंट का इस्तेमाल करके ऑटोमैटिक भरने की सुविधा को लॉन्च किया जाता है, तो एपीआई अपने-आप इसकी देखभाल करता है.
ऑटोमैटिक भरने की सुविधा, हर सेशन की पहचान करने के लिए
AutocompleteSessionToken
का इस्तेमाल करती है. आपके ऐप्लिकेशन को हर नए सेशन की शुरुआत में एक नया सेशन टोकन पास करना चाहिए. इसके बाद, उपयोगकर्ता की चुनी गई जगह की जानकारी पाने के लिए,fetchPlace()
को कॉल करते समय, उसी टोकन को प्लेस आईडी के साथ पास करना चाहिए.सेशन टोकन पैरामीटर सेट करने के लिए,
FindAutocompletePredictionsRequest
ऑब्जेक्ट बनाते समयsetSessionToken()
तरीके को कॉल करें.ज़्यादा जानकारी के लिए, सेशन टोकन देखें.
ऑटोकंप्लीट (नया) के उदाहरण
जगह की जानकारी से जुड़ी पाबंदी और जगह के हिसाब से रुझान का इस्तेमाल करना
ऑटोकंप्लीट (नया) डिफ़ॉल्ट रूप से, आईपी बायसिंग का इस्तेमाल खोज वाली जगह को कंट्रोल कर सकती हैं. आईपी बायसिंग की सुविधा की मदद से, एपीआई नतीजों में बायस करने के लिए डिवाइस के आईपी पते का इस्तेमाल करता है. विकल्प के तौर पर जगह की जानकारी का इस्तेमाल किया जा सकता है प्रतिबंध या स्थान पक्षपात, लेकिन नहीं दोनों का इस्तेमाल करें.
जगह की जानकारी पर पाबंदी लगाने से पता चलता है कि किस इलाके को खोजा जाना है. तय किए गए इलाके से बाहर के नतीजे नहीं दिखाए जाते. नीचे दिए गए उदाहरण में, सीमित करने के लिए जगह की जानकारी पर पाबंदी का इस्तेमाल किया गया है 5,000 मीटर के दायरे को केंद्र में रखते हुए, सर्कुलर जगह की पाबंदी का अनुरोध सैन फ़्रांसिस्को में:
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Amoeba") .setLocationRestriction(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
जगह के हिसाब से, खोज के नतीजों में किसी जगह को प्राथमिकता दी जा सकती है. इसका मतलब है कि खोज के नतीजों में, आपकी बताई गई जगह के आस-पास के नतीजे दिखाए जा सकते हैं. इनमें, आपकी बताई गई जगह से बाहर के नतीजे भी शामिल हो सकते हैं. अगले उदाहरण में, जगह के हिसाब से जानकारी का इस्तेमाल करने के लिए, पिछले अनुरोध में बदलाव किया गया है:
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Amoeba") .setLocationBias(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
प्राइमरी टाइप का इस्तेमाल करना
किसी किसी विशेष प्रकार का होने के लिए अनुरोध करना जैसा कि टेबल में सूचीबद्ध है A और टेबल B. यह तय किया जा सकता है कि पाँच वैल्यू तक का कलेक्शन. अगर इस विकल्प को छोड़ दिया जाता है, तो सभी टाइप के आइटम दिखाए जाते हैं.
नीचे दिया गया उदाहरण "सॉकर" की क्वेरी स्ट्रिंग के बारे में बताता है और मुख्य फ़ंक्शन का इस्तेमाल करता है
टाइप: संस्थान से जुड़े नतीजों पर पाबंदी लगाने के लिए पैरामीटर
"sporting_goods_store"
:
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); final List<Place.Field> primaryTypes = Arrays.asList("sporting_goods_store"); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Soccer") .setIncludedPrimaryTypes(primaryTypes) .setLocationBias(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
अगर आपने प्राइमरी टाइप पैरामीटर को छोड़ दिया है, तो नतीजों में होटल शामिल हो सकते हैं
किसी ऐसे टाइप का हो जिसे शायद आप न चाहें, जैसे कि "athletic_field"
.
ऑरिजिन का इस्तेमाल करें
अनुरोध में origin पैरामीटर को शामिल करने पर, एपीआई रिस्पॉन्स में ऑरिजिन से डेस्टिनेशन तक की सीधी दूरी शामिल करता है. ऑरिजिन और डेस्टिनेशन की जगह की जानकारी, अक्षांश और देशांतर के निर्देशांक के तौर पर दी जाती है. इस जानकारी को getDistanceMeters()
का इस्तेमाल करके ऐक्सेस किया जाता है. इस उदाहरण में, ऑरिजिन को सैन फ़्रांसिस्को के बीच में सेट किया गया है:
Places.initializeWithNewPlacesApiEnabled(context, apiKey); final List<Field> placeFields = getPlaceFields(); LatLng center = new LatLng(37.7749, -122.4194); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000); final FindAutocompletePredictionsRequest autocompletePlacesRequest = FindAutocompletePredictionsRequest.builder() .setQuery("Amoeba") .setOrigin(center) .setLocationRestriction(circle) .build()); placesClient.findAutocompletePredictions(autoCompletePlacesRequest) .addOnSuccessListener( (response) -> { List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions(); } ).addOnFailureListener( exception -> { Log.e(TAG, "some exception happened" + exception.getMessage()); }) );
एट्रिब्यूशन
मैप के बिना भी, अपने-आप पूरा होने की सुविधा (नया) का इस्तेमाल किया जा सकता है. अगर आपने कोई मैप दिखाया है, तो वह Google मैप होना चाहिए. जब आप बिना मैप वाली ऑटोकंप्लीट (नई) सुविधा देती हैं, खोज फ़ील्ड/नतीजों के साथ Google का लोगो दिखाया जाना ज़रूरी है. ज़्यादा जानकारी के लिए, Google का लोगो और एट्रिब्यूशन दिखाना लेख पढ़ें.