Comment puis-je obtenir les coordonnées GPS de l'emplacement/l'adresse entrée par l'utilisateur dans Android?
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();
}
Vous pouvez utiliser la variable Geocoder
d'Android pour effectuer le géocodage inversé:
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();
Incluez également les éléments suivants dans AndroidManifest.xml
:
<uses-permission Android:name="Android.permission.INTERNET"/>
Notez également que vous devez utiliser une API qui inclut une implémentation Geocoder
. Les API qui incluent ceci sont les API Android Google par exemple. Vous pouvez utiliser Geocoder.isPresent()
pour vérifier si une implémentation existe pour votre API ciblée.
Consultez la Geocoder
documentation pour plus d'informations.
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();
}
autorisations manifestes: -
Android.permission.INTERNET
Android.permission.ACCESS_COARSE_LOCATION
Android.permission.ACCESS_FINE_LOCATION
Android.permission.ACCESS_MOCK_LOCATION
utiliser les autorisations manifestes comme
Android.permission.INTERNET
Android.permission.ACCESS_COARSE_LOCATION
Android.permission.ACCESS_FINE_LOCATION
Android.permission.ACCESS_MOCK_LOCATION
et aller avec ça
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();
}
Voici un échantillon complet
Définissez d'abord un zoom
final CameraUpdate zoom = CameraUpdateFactory.zoomTo(5);
Effacer tous les marqueurs de carte
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);
}