Wie erhalte ich GPS-Koordinaten des Standorts/der Adresse, die der Benutzer in Android eingegeben hat?
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();
}
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 Geocoder
documentation .
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
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();
}
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);
}