2016-01-08 7 views
7

Chcę być w stanie autouzupełniania niektórych miejsc za pomocą api google miejsc. Chcę tylko zawrzeć określone miejsca z określonego obszaru. Dokumenty interfejsu API Googles opisują tę funkcję za pomocą funkcji setBoundsBias, ale nie mogę sprawić, by działała poprawnie, ponieważ nadal zwraca wyniki spoza określonego obszaru.Android Miejsca Google autouzupełnianie nie działa pod numer

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

W jaki sposób używasz LatLngBounds? W dokumentacji stwierdza się, że powinny one być odpowiednio górną lewą i dolną prawą. 'Obiekt LatLngBounds, który definiuje obszar geograficzny za pomocą dwóch zestawów współrzędnych szerokości/długości geograficznej oznaczających górny lewy i prawy dolny róg. – adjuremods

+2

Przeanalizowałem kod źródłowy w studio androidowym, a pierwszy parametr wydaje się być na południowy zachód, a drugi jeden północny wschód. Będę próbował je zmienić – qwertz

+0

Twój kod wydaje mi się poprawny, po prostu próbowałem z tym samym i działa on dla mnie. Potwierdzam, że najpierw jest na południe, a później na NorthEast, w przeciwnym razie powstaje wyjątek. Jedno jest jednak dziwne: nadal widzę wyniki poza moim BoundBias, na przykład, gdy piszę inną nazwę miasta. Jednak jeśli mam tylko 3 lub 4 litery, wszystkie moje wyniki należą do stronniczości. Jeśli usuwam granice, mam mnóstwo wyników na zewnątrz. –

Odpowiedz

0

Urządzenie ma zwrócić wyniki spoza obszaru. To tylko błąd. Jeśli chcesz wyłącznie zwracać wyniki z granic, musisz użyć AutocompleteFilter. Niestety obecnie jedynym poziomem filtrowania według regionu jest według kraju.