2017-03-09 5 views
-1

Ich möchte die vollständige Adresse erhalten, wenn ein Standort ausgewählt ist. Hier ist ein Beispiel für mein Szenario.Wie bekomme ich die vollständige Adresse vom Google PlaceAutoComplete-Fragment?

enter image description here

Wenn ich Uttara wählen, bekomme ich nur, wenn ich Uttara place.getName apply(). Wenn ich place.getAddress() anwende, bekomme ich nur Uttara, Bangladesch. Wie kann ich Uttara, Dhaka, Dhaka Division, Bangladesch bekommen? Bitte helfen Jungs .....

Hier ist mein Code-Schnipsel:

PlaceAutocompleteFragment places= (PlaceAutocompleteFragment) 
       getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment_pick); 
     LinearLayout ll = (LinearLayout) places.getView().findViewById(R.id.place_autocomplete_fragment_pick); 
     ll.setPadding(-7,-7,-7,-7); 
     etPickPlace = (EditText)places.getView().findViewById(R.id.place_autocomplete_search_input); 
     etPickPlace.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); 
     etPickPlace.setTextSize(18.0f); 
     AutocompleteFilter typeFilter = new AutocompleteFilter.Builder() 
       .setCountry("BD") 
       .build(); 

     places.setFilter(typeFilter); 
     places.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
      @Override 
      public void onPlaceSelected(Place place) { 
       //Here I want to get the full pick up address 
       pickAddress = place.getAddress().toString(); 
       // Toast.makeText(getApplicationContext(),place.getName(),Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onError(Status status) { 
       Toast.makeText(getApplicationContext(),status.toString(), Toast.LENGTH_SHORT).show(); 

      } 

     }); 

Antwort

3

Sie können place.getAddess() nur durch diese. Wenn Sie die vollständige Adresse und mehr korrigieren möchten, müssen Sie GeoCode-APIs implementieren.

Die folgende Klasse ist das Schlüsselelement für die umgekehrte Geocodierung, um die Adresse für die übergebenen Längen- und Breitenkoordinaten zu erhalten. Wir greifen auf die Code eingeben hier Geocoder Google API für Reverse Geocoding und bekommen jede Zeile Adresse wie Straße, Stadt, Stift/Postleitzahl und etc.

LocationAddress.java

public class LocationAddress { 

private static final String TAG = "LocationAddress"; 
public static void getAddressFromLocation(final double latitude, final double longitude, 
              final Context context, final Handler handler) { 
    Thread thread = new Thread() { 
     @Override 
     public void run() { 
      Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
      String result = null; 
      try { 
       List<Address> addressList = geocoder.getFromLocation(
         latitude, longitude, 1); 
       if (addressList != null && addressList.size() > 0) { 
        Address address = addressList.get(0); 
        StringBuilder sb = new StringBuilder(); 
        for (int i = 0; i < address.getMaxAddressLineIndex(); i++) { 
         sb.append(address.getAddressLine(i)).append("\n"); 
        } 
        sb.append(address.getLocality()).append("\n"); 
        sb.append(address.getPostalCode()).append("\n"); 
        sb.append(address.getCountryName()); 
        result = sb.toString(); 
       } 
      } catch (IOException e) { 
       Log.e(TAG, "Unable connect to Geocoder", e); 
      } finally { 
       Message message = Message.obtain(); 
       message.setTarget(handler); 
       if (result != null) { 
        message.what = 1; 
        Bundle bundle = new Bundle(); 
        result = "Latitude: " + latitude + " Longitude: " + longitude + 
          "\n\nAddress:\n" + result; 
        bundle.putString("address", result); 
        message.setData(bundle); 
       } else { 
        message.what = 1; 
        Bundle bundle = new Bundle(); 
        result = "Latitude: " + latitude + " Longitude: " + longitude + 
          "\n Unable to get address for this lat-long."; 
        bundle.putString("address", result); 
        message.setData(bundle); 
       } 
       message.sendToTarget(); 
      } 
     } 
    }; 
    thread.start(); 
} 
} 

Hoffnung dies helfen wird, erfüllen Deine Anforderungen.

Für Ihre Referenz: Click Here

Glücklich Coding !!!

+0

Vielen Dank für die Antwort. Aber ich möchte Adresse von Places Autocomplete Fragment. Hier ist es - https://developers.google.com/places/android-api/autocomplete – tahsinRupam

+2

Aktivieren Sie bitte "Get Ort Prognosen programmgesteuert" auf der gleichen Seite für Ihr erwartetes Ergebnis. Hoffe, du wirst eine Lösung finden. –

+0

Ich habe diese Prozeduren schon vorher gesehen, aber jetzt sehe ich das in einer ganz neuen Vision! Danke Mann, ich werde bestimmt verschiedene Kombinationen ausprobieren bis ich das gewünschte Ergebnis bekomme. – tahsinRupam

Verwandte Themen