How can I calculate distance between multiple latitude and longitude?

后端 未结 4 1949
Happy的楠姐
Happy的楠姐 2021-01-29 16:02

I want to calculate total distance between each points both contains lat and long, these points are stored in local database, so the scenario is I want to calculate distance fro

4条回答
  •  终归单人心
    2021-01-29 16:12

    class DistanceCalculator
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            System.out.println(distance(32.9697, -96.80322, 29.46786, -98.53506, "M") + " Miles\n");
            System.out.println(distance(32.9697, -96.80322, 29.46786, -98.53506, "K") + " Kilometers\n");
            System.out.println(distance(32.9697, -96.80322, 29.46786, -98.53506, "N") + " Nautical Miles\n");
        }
    
        private static double distance(double lat1, double lon1, double lat2, double lon2, String unit) {
            if ((lat1 == lat2) && (lon1 == lon2)) {
                return 0;
            }
            else {
                double theta = lon1 - lon2;
                double dist = Math.sin(Math.toRadians(lat1)) * Math.sin(Math.toRadians(lat2)) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.cos(Math.toRadians(theta));
                dist = Math.acos(dist);
                dist = Math.toDegrees(dist);
                dist = dist * 60 * 1.1515;
                if (unit == "K") {
                    dist = dist * 1.609344;
                } else if (unit == "N") {
                    dist = dist * 0.8684;
                }
                return (dist);
            }
        }
    }
    

提交回复
热议问题