Reverse Geocoding zeigen nicht-Adresse

stimmen
1

Ich verwendete Reverse Geocoding von Google Maps eine Adresse zu bekommen, und das erste Mal, es hat funktioniert, legen Sie die Adresse vollständig, aber jetzt ist es zeigt mir nur geografische Breite und Länge, keinen Namen, in jede gewünschte Adresse.

Kann mir jemand helfen?

Mein Code:

private class GetAddressTask extends AsyncTask<Location, Void, String> {

    @Override
    protected String doInBackground(Location... params) {
        Geocoder geocoder = new Geocoder(MainActivity.this);
        Location loc = params[0];
        List<Address> addresses = null;

        try {
            addresses = geocoder.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
        } catch (IOException e) {
            return null;
        }

        if( addresses != null && addresses.size() > 0 ) {
            Address addr = addresses.get(0);
            String addressText = addr.getAddressLine(0);
            updateLastStreet(addressText, MainActivity.this);
            return addressText;
        }

        return null;
    }
}
Veröffentlicht am 27/01/2018 um 18:48
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Sind Sie eine Erlaubnis in Android.Manifest Datei fehlt, dann fügen Sie diese

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Und versuchen Sie diese Methode:

public List<Address> getAddress(LatLng point) {
    try {
        Geocoder geocoder;
        List<Address> addresses;
        geocoder = new Geocoder(this);
        if (point.latitude != 0 || point.longitude != 0) {
            addresses = geocoder.getFromLocation(point.latitude ,
                    point.longitude, 1);
            String address = addresses.get(0).getAddressLine(0);
            String city = addresses.get(0).getAddressLine(1);
            String country = addresses.get(0).getAddressLine(2);
            return addresses;

        } else {
            Toast.makeText(this, "Coordinates are null",
                    Toast.LENGTH_SHORT).show();
            return null;
        }
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}
Beantwortet am 27/01/2018 um 19:08
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more