2016-05-18 15 views
9

Sto usando PlacePicker nella mia app. Tutto ad un tratto si sta comportando male. Quando ha lanciato il suo puntamento a (0.0, 0.0) lat lng. Non sono sicuro che il servizio di Google abbia cambiato qualcosa. prima stava funzionando tutto bene poiché da 3 giorni non funziona.Selettore di Google Servizio di Google Place setLatLngBounds() non funziona

Sto facendo qualcosa di sbagliato qui

Questo è come mi sto lanciando attività.

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); 
    } 
} 

Questo è come mi sto creando 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); 
} 

e ho cercato di creare LatLngBounds come qui di seguito, ancora lo stesso risultato.

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

Potrebbe qualcuno mi aiuti

risposta

13

Purtroppo si sta andando a dover aspettare per Google di risolvere il problema in una futura versione di Google Play Services.

Non c'è niente che non va nel tuo codice, l'ultimo aggiornamento di Google Play Services causa alcuni seri problemi con il widget UI di selettore dei luoghi. Ho notato per la prima volta che il metodo setLatLngBounds() non funziona più su Google Play Services 9.0.82. In 9.0.83, l'icona di ricerca è scomparsa.

Vedere il mio post per quanto riguarda questo problema: Android PlacePicker no longer has Search icon after updating to Google Play Services 9.0.83

vedere questi bug report dal sito web di Google Maps API di bug e funzionalità: 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

È possibile risolvere il problema in qualche modo tramite non invocando il metodo setLatLngBounds(). PlacePicker imposterà automaticamente la tua posizione attuale. Ho perso alcune funzionalità nella mia app, ma era meglio che l'utente provasse a pizzicare e fare una panoramica dall'Oceano Atlantico. Per me, l'icona di ricerca mancante è ancora il mio problema principale.

+1

Il problema setLatLngBounds() in Place Picker deve essere corretto nella versione corrente di Google Play Services (Jun-26) – AndrewR

+0

So che questa domanda è obsoleta, ma ho un problema simile, PlacePicker non è il default alla mia posizione attuale quando viene lanciato , inizia con la posizione selezionata in precedenza e devo toccare l'icona "la mia posizione" per far spostare il marcatore nella mia posizione. Qualche idea su come forzare PlacePicker nella mia posizione corrente di default quando viene lanciato? – user1209216

+0

risolto per me (10.2.6) –