2016-04-06 11 views
0

Ich habe einen PlaceAutoComplete, über die ich das erste Ergebnis in dem Screenshot unten wählen:PlaceAutoComplete transalating nicht genau in eine Adresse

enter image description here

Dann habe ich es in eine Adresse über den folgenden Code übersetzen:

Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 

    try { 
     List<Address> addressList = geocoder.getFromLocation(endLocation.getLatLng().latitude, endLocation.getLatLng().longitude, 1); 

     if (addressList != null && addressList.size() > 0) { 

      // TODO -=- Destination city check 

      Address address = addressList.get(0); 
      StringBuilder sb = new StringBuilder(); 
      for (int i = 0; i < address.getMaxAddressLineIndex(); i++) { 
       sb.append(address.getAddressLine(i)).append("\n"); 
      } 

      // Update screen with Location 
       endLocationOnScreen.setText(sb.toString()); 


     } 


    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

Siehe die Ergebnisse auf dem Bildschirm:

enter image description here

Die Adresse ist schlecht übersetzt - gut genug, dass Sie vielleicht denken. Aber in einigen Fällen gibt es einen großen Unterschied.

Zum Beispiel die Suche nach "L & T South City Apartments" (in Bangalore) zeigt die Adresse als 8B Cross Road, Arekere in AutoPlaceComplete, aber resultierende Transaktion ist "270, 8B Cross Road, Santrupthi Nagar, JP Nagar" - ein paar Straßen weiter.

Das Problem ist nicht viel in Bezug auf die Genauigkeit, aber in Bezug auf die Benutzererfahrung. Sie sehen etwas anderes von dem, was sie auf dem Bildschirm ausgewählt haben.

Wie überwinde ich das? Gibt es eine Möglichkeit, das, was bei AutoVervollständigen angezeigt wird, auf dem Bildschirm anzuzeigen, um es dem Benutzer anzuzeigen?

Antwort

0

PlaceAutoComplete api gibt eine Ortsangabe für jeden Ort zurück. Sie können dieses Placement verwenden, um genaue Ortsdetails mit google api unter

https://maps.googleapis.com/maps/api/place/details 
zu erhalten