Search code examples
androidgpsstreet-address

How to get street name from coordinates?


I have the longitude and latitude into two separate EditText I want that when I press a button the street name appears in another EditText.

I tried with the Public Address getAddressForLocation method, but I have not gotten it to work..

Code

public Address getAddressForLocation(Context context, Location location) throws IOException {

        if (location == null) {
            return null;
        }
        double latitude = location.getLatitude();
        double longitude = location.getLongitude();
        int maxResults = 1;

        Geocoder gc = new Geocoder(context, Locale.getDefault());
        List<Address> addresses = gc.getFromLocation(latitude, longitude, maxResults);

        for (int i = 0; i < addresses.getMaxAddressLineIndex(); i++) {
            Log.d("=Adress=",addresses.getAddressLine(i));
        }
    }

How to get Street name from coordinates?

UPDATE (SOLUTION)

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

            try {
                List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);

                if (addresses != null) {
                    Address returnedAddress = addresses.get(0);
                    StringBuilder strReturnedAddress = new StringBuilder();
                    for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                        strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("");
                    }
                    et_lugar.setText(strReturnedAddress.toString());
                }
                else {
                    et_lugar.setText("No Address returned!");
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                et_lugar.setText("Canont get Address!");
            }

Thanks


Solution

  • SOLUTION

    Geocoder geocoder = new Geocoder(this, Locale.getDefault());
    
                    try {
                        List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
    
                        if (addresses != null) {
                            Address returnedAddress = addresses.get(0);
                            StringBuilder strReturnedAddress = new StringBuilder();
                            for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                                strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("");
                            }
                            et_lugar.setText(strReturnedAddress.toString());
                        }
                        else {
                            et_lugar.setText("No Address returned!");
                        }
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        et_lugar.setText("Canont get Address!");
                    }