2015-04-30 5 views
15

मैं अपने ऐप में एंड्रॉइड के लिए नए प्लेस एपीआई को कार्यान्वित करने की कोशिश कर रहा हूं और मुझे लगता है कि अनुरोध पर फ़िल्टर कैसे सेट किया जाए। मेरा कोड यहाँ है।एंड्रॉइड प्लेस एपीआई का उपयोग कैसे करें AutocompleteFilter

LatLng southWest = new LatLng(85, -180); 
LatLng northEast = new LatLng(-85, 180); 
LatLngBounds bounds = new LatLngBounds(southWest, northEast); 
AutocompleteFilter filter = AutocompleteFilter.create(WHAT SHOULD GO HERE?); 
PendingResult result = Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient, 
      search.getText().toString(), bounds, filter); 

आप देख सकते हैं मैं गूगल here द्वारा प्रदान प्रलेखन का पालन किया है, लेकिन मैं कैसे वे API Reference मैं अभी भी नहीं कर सकते आंकड़ा बाहर पढ़ने कैसे एपीआई को लागू करने के बाद फिल्टर लागू करने के लिए, के बारे में बात नहीं करते।

मुझे एपीआई के लिए AutocompleteFilter.create() के पैरामीटर के रूप में क्या जाना चाहिए, यह जानने में सहायता चाहिए। मैं शहरों से डेटा को फ़िल्टर करने

धन्यवाद

उत्तर

12

यह Google Play सेवा 9.4 पर काम करता है।

AutocompleteFilter filter = new AutocompleteFilter.Builder() 
     .setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES) 
     .build(); 
+2

यह अब सही समाधान है, हर किसी को इसका उपयोग करना चाहिए – TanmayP

15

प्रलेखन से हैं:

तालिका 3: जगह स्वत: पूर्ण में समर्थित प्रकार का अनुरोध करता है

आप की होने के लिए एक जगह स्वत: पूर्ण अनुरोध से परिणाम पर रोक लगा दें एक प्रकार पैरामीटर गुजरकर एक निश्चित प्रकार। पैरामीटर नीचे दिए गए समर्थित प्रकारों में सूचीबद्ध एक प्रकार या प्रकार संग्रह निर्दिष्ट करता है। यदि कुछ भी निर्दिष्ट नहीं है, तो सभी प्रकार लौटाए जाते हैं। आम तौर पर केवल एक ही प्रकार की अनुमति है। अपवाद यह है कि आप जियोकोड और प्रतिष्ठान प्रकारों को सुरक्षित रूप से मिश्रण कर सकते हैं, लेकिन ध्यान दें कि इसका कोई प्रभाव नहीं होगा जैसा कि कोई प्रकार निर्दिष्ट नहीं करता है। समर्थित प्रकार हैं:

जियोकोड प्लेस ऑटोकंपलेट सेवा को व्यवसाय परिणामों के बजाए केवल जियोकोडिंग परिणाम लौटने के लिए निर्देश देता है। आम तौर पर, आप इस अनुरोध का उपयोग उन परिणामों को असंबद्ध करने के लिए करते हैं जहां निर्दिष्ट स्थान अनिश्चित हो सकता है। पता स्थान स्वत: पूर्ण सेवा को केवल सटीक पते के साथ केवल जियोकोडिंग परिणामों को वापस करने के लिए निर्देश देता है। आम तौर पर, आप इस अनुरोध का उपयोग करते हैं जब आप जानते हैं कि उपयोगकर्ता पूरी तरह से निर्दिष्ट पता की तलाश करेगा। स्थापना केवल व्यावसायिक परिणामों को वापस करने के लिए प्लेस स्वत: पूर्ण सेवा प्रदान करती है। (क्षेत्र) टाइप संग्रह स्थान सेवा का निर्देश किसी भी परिणाम निम्न प्रकार के मिलान वापस जाने के लिए: इलाके उप-क्षेत्र postal_code देश administrative_area_level_1 administrative_area_level_2 (शहर) टाइप संग्रह सेवा का निर्देश स्थान परिणाम देने के उस मैच इलाके या administrative_area_level_3।

स्रोत: https://developers.google.com/places/supported_types

कोड:

List<Integer> filterTypes = new ArrayList<Integer>(); 
    filterTypes.add(Place.TYPE_ESTABLISHMENT); 
+0

हाय पॉल, क्या आपको यह नहीं पता कि बाध्यकारी बॉक्स के अलावा देश को कैसे प्रतिबंधित किया जाए? धन्यवाद। – Ivan

+0

मुझे वास्तव में यकीन नहीं है कि यह संभव है, लेकिन यदि यह है तो मुझे इसके बारे में पता नहीं है। –

+0

कूल, उत्तर – Ivan

3

यह वह जगह है आप कैसे अपने स्वत: पूर्ण प्लेस एपीआई में फिल्टर सेट करना होगा।

List<Integer> filters = new ArrayList<Integer>(); 
     filters.add(Place.TYPE_ADMINISTRATIVE_AREA_LEVEL_1); 
    mAutocompleteFilter = AutocompleteFilter.create(filters); 
    mGeoLocationAdapter = new GeoLocationAdapter(this, 
      android.R.layout.simple_list_item_1, 
      latLngBounds, 
      mAutocompleteFilter); 

केवल कुछ प्रकार के एंड्रॉयड, में समर्थित हैं आप मिल जाएगा

AutocompletePredictionBuffer{status=Status{statusCode=NETWORK_ERROR, resolution=null}} 

अगर आप फिल्टर के रूप में असमर्थित प्रकार का उपयोग करें।

.. समर्थित फिल्टर प्रकार के लिए इस लिंक को देख

https://developers.google.com/places/supported_types#table3

3

आप Google Play सेवाएं संस्करण 8.4 का उपयोग करते हैं।0, आप फ़िल्टर बनाने के लिए उपclass AutocompleteFilter.Builder का उपयोग कर सकते हैं।

उपयोग करना आसान है क्योंकि आपको प्लेस प्रकारों की मैन्युअल रूप से सूची बनाने की आवश्यकता नहीं है।

mAutocompleteFilter = AutocompleteFilter.Builder(). 
    setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES).build(); 
mGeoLocationAdapter = new GeoLocationAdapter(this, 
     android.R.layout.simple_list_item_1, 
     latLngBounds, 
     mAutocompleteFilter); 

बारे में पता इस समय समस्या compatibilities जब Google Play सेवाएं संस्करण 8.4.0 स्थापित करने देखते हैं कि हो सकता है। यदि आप इस समस्या में भाग लेते हैं, तो आप इस thread का पालन कर सकते हैं, लेकिन यदि आप संघर्ष करते हैं तो मैं स्थैतिक बहिष्कृत AutocompleteFilter.create() विधि पर वापस लौटने का सुझाव देता हूं।

संबंधित मुद्दे