it-swarm.com.de

Wie bekomme ich die Koordinaten einer Adresse in Android?

Wie erhalte ich GPS-Koordinaten des Standorts/der Adresse, die der Benutzer in Android eingegeben hat? 

29
Rahul Baradia
Geocoder geocoder = new Geocoder(<your context>);  
List<Address> addresses;
addresses = geocoder.getFromLocationName(<String address>, 1);
if(addresses.size() > 0) {
    double latitude= addresses.get(0).getLatitude();
    double longitude= addresses.get(0).getLongitude();
}
70
Natali

Sie können die Geocoder von Android verwenden, um die Geokodierung umzukehren:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocationName(myLocation, 1);
Address address = addresses.get(0);
double longitude = address.getLongitude();
double latitude = address.getLatitude();

Fügen Sie Folgendes in AndroidManifest.xml hinzu:

<uses-permission Android:name="Android.permission.INTERNET"/>

Beachten Sie auch, dass Sie eine API verwenden müssen, die eine Geocoder-Implementierung enthält. APIs, die dies enthalten, sind beispielsweise die Android-Google-APIs von Android. Mit Geocoder.isPresent() können Sie überprüfen, ob eine Implementierung für Ihre Ziel-API vorhanden ist.

Weitere Informationen finden Sie in der Geocoderdocumentation .

11
Tyler Treat
List<Address> addresses;
addresses = geocoder.getFromLocationName(<String address>, 1);
if(addresses.size() > 0){
double latitude= addresses.get(0).getLatitude();
double longitude= addresses.get(0).getLongitude();
}

manifest Berechtigungen: -

Android.permission.INTERNET
Android.permission.ACCESS_COARSE_LOCATION
Android.permission.ACCESS_FINE_LOCATION
Android.permission.ACCESS_MOCK_LOCATION
3
Prachi

manifest-Berechtigungen verwenden wie

Android.permission.INTERNET 
Android.permission.ACCESS_COARSE_LOCATION     
Android.permission.ACCESS_FINE_LOCATION 
Android.permission.ACCESS_MOCK_LOCATION

und geh mit diesem

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocationName(myLocation, 1);
Address address = addresses.get(0);
if(addresses.size() > 0) {
    double latitude = addresses.get(0).getLatitude();
    double longitude = addresses.get(0).getLongitude();
}
2
Satyam

Hier ist ein komplettes Beispiel

Definieren Sie zunächst einen Zoom

    final CameraUpdate zoom = CameraUpdateFactory.zoomTo(5);

Löschen Sie alle Kartenmarkierungen

    mMap.clear();
    //Declare a new marker
    final MarkerOptions mp = new MarkerOptions();
    //declare a EditText to get the user informed address
    EditText etEndereco = findViewById(R.id.map_prof_etEnd);

    Geocoder geocoder = new Geocoder(map_prof.this);
    List<Address> addresses = null;
    try {
        addresses = geocoder.getFromLocationName(etEndereco.getText().toString(), 1);
    } catch (IOException e) {
        e.printStackTrace();
    }
    if (addresses.size() > 0) {
        double latitude = addresses.get(0).getLatitude();
        double longitude = addresses.get(0).getLongitude();

        mp.position(new LatLng(latitude, longitude));

        Log.e("teste map2", "inserted latitude " + Latitude + ", inserted Longitude " + Longitude);

        mp.title("Selected location");
        CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(latitude, longitude));
        mMap.clear();
        mMap.addMarker(mp);
        mMap.moveCamera(center);
        mMap.animateCamera(zoom);
    }
0
Thiago Silva