> 文章列表 > java -测距工具(经纬度)

java -测距工具(经纬度)

java -测距工具(经纬度)

代码

/*** 测距工具* @author qb*/
public class DistanceUtils {/*** 赤道半径*/private static final double EARTH_RADIUS = 6378.137;private static double rad(double d) {return d * Math.PI / 180.0;}/*** Description : 通过经纬度获取距离(单位:米)* Group :** @param originLon      出发点经度* @param originLat      出发点纬度* @param destinationLon 目的地经度* @param destinationLat 目的地纬度* @return double*/@SuppressWarnings("all")public static double getDistance(String originLon, String originLat, String destinationLon,String destinationLat) {double radLat1 = rad(Double.parseDouble(originLat));double radLat2 = rad(Double.parseDouble(destinationLat));double a = radLat1 - radLat2;double b = rad(Double.parseDouble(originLon)) - rad(Double.parseDouble(destinationLon));double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)+ Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));s = s * EARTH_RADIUS;// 保留两位小数s = Math.round(s * 100d) / 100d;s = s * 1000;return s;}public static void main(String[] args) {final String longitude = "117.127823";final String dimension = "36.674049";final String longitudeParam = "117.11764544907382";final String dimensionParam = "36.687643568521786";double distance = getDistance(longitude, dimension, longitudeParam, dimensionParam);System.out.println(distance);System.out.println(distance > 200);}}