2016-05-18 12 views
9

Używam PlacePicker w mojej aplikacji. Nagle zachowuje się źle. Po uruchomieniu wskazuje na (0,0, 0,0) lat. Nie jestem pewien, czy usługa Google coś zmieniła. wcześniej wszystko działało dobrze, ponieważ od 3 dni nie działa.Usługa Google Android Miejsce wyboru setLatLngBounds() nie działa

robię nic złego tutaj

To jak mam rozpoczęcia działalności.

private void launchPlacePicker(double latitude, double longitude) { 
    try { 
     showProgress(true); 
     PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder(); 

     Log.d(TAG, " launchPlacePicker " + latitude + " " + longitude); 

     builder.setLatLngBounds(MapUtils.getLatLngBounds(new LatLng((double) latitude, (double) longitude))); 

     startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST); 
    } catch (GooglePlayServicesRepairableException e) { 
     showProgress(false); 
     Log.e(TAG, "GooglePlayServicesRepairableException", e); 
    } catch (GooglePlayServicesNotAvailableException e) { 
     showProgress(false); 
     Log.e(TAG, "GooglePlayServicesNotAvailableException", e); 
    } 
} 

ten sposób tworzę LatLngBounds

public static LatLngBounds getLatLngBounds(LatLng center) { 
    double radius = 100; 
    LatLng southwest = SphericalUtil.computeOffset(center, radius * Math.sqrt(2.0), 225); 
    LatLng northeast = SphericalUtil.computeOffset(center, radius * Math.sqrt(2.0), 45); 
    return new LatLngBounds(southwest, northeast); 
} 

i starałem się stworzyć LatLngBounds jak poniżej, wciąż ten sam rezultat.

public static LatLngBounds getLatLngBounds(LatLng center) { 
    LatLngBounds.Builder builder = LatLngBounds.builder(); 
    builder.include(center); 
    return builder.build(); 
} 

mógłby ktoś mi pomóc

Odpowiedz

13

Niestety będziesz musiał czekać na Google, aby rozwiązać ten problem w przyszłych wersjach Google Play.

Nie ma nic złego w tym kodzie, najnowsza aktualizacja Usług Google Play powoduje poważne problemy z widżetem Ułożenie interfejsu użytkownika. Po raz pierwszy zauważyłem, że metoda setLatLngBounds() nie działa już w Usługach Google Play 9.0.82. W 9.0.83 ikona wyszukiwania zniknęła.

Patrz mój post odnośnie tego problemu: Android PlacePicker no longer has Search icon after updating to Google Play Services 9.0.83

zobaczyć te raporty o błędach z Google Maps API błędów i funkcji strony internetowej: Bug: Search Icon not visible in the latest play service update (Version:9.0.83) ----- Bug: Place Picker not showing search icon. ----- PlacePicker search icon is gone after updating to Google Play Services 9.0.83

Możesz nieco obejść problem przez , a nie wywołanie metody setLatLngBounds(). PlacePicker domyślnie ustawi twoją bieżącą lokalizację. Straciłem trochę funkcjonalności w mojej aplikacji, ale było to lepsze, niż gdy końcowy użytkownik próbowałby uszczypnąć się i odepchnąć drogę powrotną z Oceanu Atlantyckiego. Dla mnie brakująca ikona wyszukiwania jest nadal moim głównym problemem.

+1

Problem SetLatLngBounds() w selektorze miejsc powinien być poprawiony w bieżącym wydaniu Usług Google Play (Jun-26). – AndrewR

+0

Wiem, że to pytanie jest stare, ale mam podobny problem, ponieważ PlacePicker nie jest domyślny w mojej aktualnej lokalizacji po uruchomieniu , zaczyna się od wcześniej wybranej lokalizacji i muszę dotknąć ikony "Moja lokalizacja", aby marker został przeniesiony do mojej lokalizacji. Wszelkie pomysły, jak zmusić PlacePicker do mojej aktualnej lokalizacji domyślnie po uruchomieniu? – user1209216

+0

rozwiązano dla mnie (10.2.6) –