two
latitude
& longitude
pointsFor one of the latitude & longitude points i have it in database & another one i want to use current position of the mobile
Which one should i need to use them among below::
note:: Any demo code sample will be useful
For this divide the values of longitude and latitude of both the points by 180/pi. The value of pi is 22/7. The value of 180/pi is approximately 57.29577951. If we want to calculate the distance between two places in miles, use the value 3, 963, which is the radius of Earth.
You can use the built in algorithm:
Location locationA = new Location("point A"); locationA.setLatitude(latA); locationA.setLongitude(lngA); Location locationB = new Location("point B"); locationB.setLatitude(latB); LocationB.setLongitude(lngB); distance = locationA.distanceTo(locationB) ;
update: (I don't have any error with this)
LatLng latLngA = new LatLng(12.3456789,98.7654321); LatLng latLngB = new LatLng(98.7654321,12.3456789); Location locationA = new Location("point A"); locationA.setLatitude(latLngA.latitude); locationA.setLongitude(latLngA.longitude); Location locationB = new Location("point B"); locationB.setLatitude(latLngB.latitude); locationB.setLongitude(latLngB.longitude); double distance = locationA.distanceTo(locationB);
You can use the Haversine algorithm. Another user has already coded a solution for this:
public double CalculationByDistance(double initialLat, double initialLong, double finalLat, double finalLong){ int R = 6371; // km double dLat = toRadians(finalLat-initialLat); double dLon = toRadians(finalLong-initialLong); lat1 = toRadians(lat1); lat2 = toRadians(lat2); double a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); return R * c; } public double toRadians(deg) { return deg * (Math.PI/180) }
Source: https://stackoverflow.com/a/17787472/3449528
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With