zoukankan      html  css  js  c++  java
  • 求解两点(经纬度坐标)的距离

     1 package edu.cloud.editmap.utils;
     2 
     3 import org.junit.Test;
     4 /**
     5  * 经纬度求距离
     6  * @author lingfeng
     7  */
     8 public class LatLon2Distance {
     9 
    10     //地球半径
    11     private static double EARTH_RADIUS = 6378.137;
    12     /**
    13      * 经纬度转换
    14      * @param d
    15      * @return
    16      */
    17     private static double rad(double d)
    18     {
    19        return d * Math.PI / 180.0;
    20     }
    21     /**
    22      * 距离计算
    23      * @param lat1
    24      * @param lng1
    25      * @param lat2
    26      * @param lng2
    27      * @return
    28      */
    29     public static double getDistance(double lat1, double lng1, double lat2, double lng2)
    30     {
    31        double radLat1 = rad(lat1);
    32        double radLat2 = rad(lat2);
    33        double a = radLat1 - radLat2;
    34        double b = rad(lng1) - rad(lng2);
    35 
    36        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
    37         Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
    38        s = s * EARTH_RADIUS;
    39        s = Math.round(s * 10000) / 10000;
    40        return s;
    41     }
    42     
    43     @Test
    44     public void test(){
    45         //System.out.println(getDistance(25.2803229,110.3083241,25.289289679357516,110.30976545104478));
    46     }
    47 }
  • 相关阅读:
    mysql基本用法
    linux基本指令
    servlet的生命周期
    day 15 笔记
    day 14 作业
    考试二
    day 14
    day 12 zuoye
    day 13
    day 12
  • 原文地址:https://www.cnblogs.com/helingfeng/p/4568400.html
Copyright © 2011-2022 走看看