Here you can find the source of calculateDistance(Double prevLat, Double prevLon, Double currentLat, Double currentLon)
Parameter | Description |
---|---|
prevLat | a parameter |
prevLon | a parameter |
currentLat | a parameter |
currentLon | a parameter |
public static Double calculateDistance(Double prevLat, Double prevLon, Double currentLat, Double currentLon)
//package com.java2s; /*/* w w w . j a v a 2 s. c o m*/ ?Developed with the contribution of the European Commission - Directorate General for Maritime Affairs and Fisheries ? European Union, 2015-2016. This file is part of the Integrated Fisheries Data Management (IFDM) Suite. The IFDM Suite is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. The IFDM Suite is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the IFDM Suite. If not, see <http://www.gnu.org/licenses/>. */ public class Main { private static int EARTH_RADIUS_METER = 6371000; /** * * Calculated the distance between 2 points and returns the distance in * meters * * @param prevLat * @param prevLon * @param currentLat * @param currentLon * @return distance */ public static Double calculateDistance(Double prevLat, Double prevLon, Double currentLat, Double currentLon) { return distanceMeter(prevLat, prevLon, currentLat, currentLon); } /** * Calculate the distance between two points (Latitude, Longitude) */ private static double distanceMeter(double prevLat, double prevLon, double currentLat, double currentLon) { double lat1Rad = Math.toRadians(prevLat); double lat2Rad = Math.toRadians(currentLat); double deltaLonRad = Math.toRadians(currentLon - prevLon); return Math.acos(Math.sin(lat1Rad) * Math.sin(lat2Rad) + Math.cos(lat1Rad) * Math.cos(lat2Rad) * Math.cos(deltaLonRad)) * EARTH_RADIUS_METER; } }