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 }
  • 相关阅读:
    关于类的继承与初始化顺序
    大数据协作框架
    关于委托和线程
    Hive高级
    聚集索引和非聚集索引
    Hadoop生态优秀文章集锦
    hive深入使用
    hive常规配置及常用命令使用
    HBase核心技术点
    zipkin环境搭建
  • 原文地址:https://www.cnblogs.com/helingfeng/p/4568400.html
Copyright © 2011-2022 走看看