Android how to use location.distanceTo()

2019-04-25 17:14发布

问题:

I am using a fragement, I need to get my currently Location (lat and lng) and I need to calculate my currently location with the destination location.

Can you pls give me a hand. what is the best way to calculate the location:

How can I get the distance from my currently location and the destination location using lat and lng ;

    LocationManager locationManager;
    Location locatio;



locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);

location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);





String product_latitude     = "3.121191";
            String product_longtitude   = "101.673298";

            Double latitude     = Double.valueOf(product_latitude);
            Double longtitude   = Double.valueOf(product_longtitude);

            // Calculate the Distance
            String product_distance = location.distanceTo(latitude, longtitude);

回答1:

Try this

double latitude=lat;
double longitude=lng;    
float distance=0;
Location crntLocation=new Location("crntlocation");
crntLocation.setLatitude(currentLatitude);
crntLocation.setLongitude(currentLongitude);

Location newLocation=new Location("newlocation");
newLocation.setLatitude(latitude);
newLocation.setLongitude(longitude);


//float distance = crntLocation.distanceTo(newLocation);  in meters
distance =crntLocation.distanceTo(newLocation) / 1000; // in km


回答2:

You can use static method of Location: distanceBetween to get distance between 2 locations.

float [] results = new float[5]; 
Location.distanceBetween(startLatitude, startLongitude, endLatitude,
endLongitude, results)

doc: here



回答3:

Use Direction API to find to the distance from your current location to the destination. It returns a JSON object as distance which gives you the distance in mile, you can parse that JSON and display that on your app screen.

For Google's official documentation read here.

And for a tutorial read here.

Hope this would help!!!