2016-01-08 18 views
7

Desidero essere in grado di completare automaticamente alcuni luoghi utilizzando l'API di Google Places. Voglio solo includere determinati luoghi da una certa area. I documenti dell'API di Google descrivono questa funzione utilizzando la funzione setBoundsBias, ma non riesco a farlo funzionare correttamente poiché restituisce ancora risultati al di fuori dell'area specificata.I limiti di api di completamento automatico di Google Places non funzionano

try { 
      Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY) 
        .setBoundsBias(new LatLngBounds(
          new LatLng(16.371163, 21.051073), 
          new LatLng(16.725743, 21.424006))) 
        .build(getActivity()); 

      startActivityForResult(intent, requestCode); 
     } catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) { 
      e.printStackTrace(); 
     } 
+1

Come stai usando LatLngBounds? Nella documentazione afferma che dovrebbero essere rispettivamente in alto a sinistra e in basso a destra. 'Un oggetto LatLngBounds che definisce un'area geografica utilizzando due serie di coordinate di latitudine/longitudine che segnano gli angoli in alto a sinistra e in basso. – adjuremods

+2

Ho guardato attraverso il codice sorgente in Android Studio e il primo param sembra essere sud-ovest e il secondo uno a nord-est. Cercherò di cambiarli – qwertz

+0

Il tuo codice mi sembra corretto, ho appena provato con lo stesso identico e funziona per me. Confermo prima il sudest e poi il nordest, altrimenti viene sollevata un'eccezione. Una cosa strana però: posso ancora vedere alcuni risultati al di fuori del mio BoundBias, ad esempio se scrivo un altro nome di città. Tuttavia se ho solo 3 o 4 lettere, tutti i miei risultati appartengono al pregiudizio. Se rimuovo i limiti, ho un sacco di risultati al di fuori. –

risposta

0

Il setBoundsBias deve restituire i risultati da fuori area. È solo un pregiudizio. Se si desidera restituire esclusivamente risultati all'interno dei limiti, è necessario utilizzare AutocompleteFilter. Purtroppo al momento l'unico livello di filtraggio per regione è per paese.