web-dev-qa-db-fra.com

Comment obtenir les coordonnées d'une adresse dans Android

Comment puis-je obtenir les coordonnées GPS de l'emplacement/l'adresse entrée par l'utilisateur dans Android? 

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

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 Geocoderdocumentation pour plus d'informations.

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();
}

autorisations manifestes: -

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

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();
}
2
Satyam

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);
    }
0
Thiago Silva