Back to project page Common-Library.
The source code is released under:
Apache License
If you think the Android project Common-Library listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.morgan.library.utils; // w w w. j ava 2s .c o m /** * ??????????????? * * @author Morgan.Ji * */ public class LocationUtils { public static double distance(double lat1, double lon1, double lat2, double lon2) { if (lat1 == lat2 && lon1 == lon2) { return 0; } // haversine great circle distance approximation, returns meters double theta = lon1 - lon2; double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta)); if (dist > 1) { return 0; } dist = Math.acos(dist); dist = rad2deg(dist); dist = dist * 60; // 60 nautical miles per degree of separation dist = dist * 1852; // 1852 meters per nautical mile return dist / 1000; } private static double deg2rad(double deg) { return (deg * Math.PI / 180.0); } private static double rad2deg(double rad) { return (rad * 180.0 / Math.PI); } }