1

I want to access my current location which is in onLocationChanged method in getMyLocationAddress to set text of a text box. I want to know in which variable is my location exactly stored so that I can use it in geocoder.getLocationFrom().

i am using LatLng object latLng in geocoder.getFromLocation(latLng.getLatitude(),latLng.getLongitude(),1); which is where I guess is the current location stored.But getFromLocation needs Location object. Which Location object should I use as LatLng object is obviuosly giving an error ?

@Override
    public void onLocationChanged(Location location) {

        mLastLocation = location;
        if (mCurrLocationMarker != null) {
            mCurrLocationMarker.remove();
        }

        //Place current location marker
        LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.position(latLng);
        markerOptions.title("Current Position");
        markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
        mCurrLocationMarker = mMap.addMarker(markerOptions);

        //move map camera
        mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
        mMap.animateCamera(CameraUpdateFactory.zoomTo(50));

        //stop location updates
        if (mGoogleApiClient != null) {
            LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
        }

    }


 public void getMyLocationAddress() {

    Geocoder geocoder= new Geocoder(this, Locale.ENGLISH);

    try {

        //Place your latitude and longitude
       //List<Address> addresses = geocoder.getFromLocation(37.423247,-122.085469, 1);
        List<Address> addresses = geocoder.getFromLocation(latLng.getLatitude(),latLng.getLongitude(),1);

        if(addresses != null) {

            Address fetchedAddress = addresses.get(0);
            StringBuilder strAddress = new StringBuilder();

            for(int i=0; i<fetchedAddress.getMaxAddressLineIndex(); i++) {
                strAddress.append(fetchedAddress.getAddressLine(i)).append("\n");
            }

            etOrigin.setText(strAddress.toString());

        }

        else
            etOrigin.setText("No location found..!");

    }
    catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Toast.makeText(getApplicationContext(),"Could not get address..!", Toast.LENGTH_LONG).show();
    }
}
MMG
  • 3,226
  • 5
  • 16
  • 43

1 Answers1

1

You need to use Location type of variable.

you can read more here: https://developer.android.com/reference/android/location/Location.html

Firoz Jaroli
  • 505
  • 5
  • 11