How to get coordinates of an address in android

后端 未结 5 1999
[愿得一人]
[愿得一人] 2021-01-30 04:29

How do i get gps co-ordinates of the location/address entered by user in android ?

相关标签:
5条回答
  • 2021-01-30 04:54
    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();
    }
    
    0 讨论(0)
  • 2021-01-30 04:58

    use manifest permissions like

    android.permission.INTERNET 
    android.permission.ACCESS_COARSE_LOCATION     
    android.permission.ACCESS_FINE_LOCATION 
    android.permission.ACCESS_MOCK_LOCATION
    

    and go with this

    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();
    }
    
    0 讨论(0)
  • 2021-01-30 05:01

    Here is a complete sample

    First define a zoom

        final CameraUpdate zoom = CameraUpdateFactory.zoomTo(5);
    

    Clear any map markers

        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 讨论(0)
  • 2021-01-30 05:10
    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 permissions:-

    android.permission.INTERNET
    android.permission.ACCESS_COARSE_LOCATION
    android.permission.ACCESS_FINE_LOCATION
    android.permission.ACCESS_MOCK_LOCATION
    
    0 讨论(0)
  • 2021-01-30 05:11

    You can use Android's Geocoder to do reverse geocoding:

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

    Also include the following in AndroidManifest.xml:

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

    Also note that you need to be using an API which includes a Geocoder implementation. APIs which include this are the Android Google APIs for example. You can use Geocoder.isPresent() to check if an implementation exists for your targeted API.

    Check out the Geocoder documentation for more information.

    0 讨论(0)
提交回复
热议问题