本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-03(237)

2021-04(146)

2021-05(70)

2021-06(50)

2021-07(7)

根据经纬度计算两点间距离

发布于2022-01-06 08:15     阅读(815)     评论(0)     点赞(13)     收藏(0)


同一坐标系下 地图任意两点间 基于经纬度计算距离 java代码实现

public class MapUtil {
    public static final double EARTH_RADIUS = 6378.137;


    private static double rad(double d) {
        return d * Math.PI / 180.0;
    }

    /**
     * 两点间的距离
     * @param loc1
     * @param loc2
     * @return 返回距离值 精确到米
     */
    public static double distance(LngLat loc1, LngLat loc2) {
        double radLat1 = rad(loc1.getLatitude().doubleValue());
        double radLat2 = rad(loc2.getLatitude().doubleValue());
        double a = radLat1 - radLat2;
        double b = rad(loc1.getLongitude().doubleValue()) - rad(loc2.getLongitude().doubleValue());
        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)));
        return Math.round(s * EARTH_RADIUS * 10000d) / 10d;
    }


}
public class LngLat {

    private BigDecimal longitude;
    private BigDecimal latitude;


    public static LngLat from(Number lng, Number lat) {
        return lng instanceof BigDecimal && lat instanceof BigDecimal ? new LngLat((BigDecimal) lng, (BigDecimal) lat) : new LngLat(BigDecimal.valueOf(lng.doubleValue()), BigDecimal.valueOf(lat.doubleValue()));
    }


    public String toString() {
        return this.toString(6, 4);
    }

    public String toString(int scale, int mode) {
        return this.longitude.setScale(scale, mode).toString() + "," + this.latitude.setScale(scale, mode).toString();
    }


    public BigDecimal getLongitude() {
        return this.longitude;
    }

    public BigDecimal getLatitude() {
        return this.latitude;
    }


    public LngLat(BigDecimal longitude, BigDecimal latitude) {
        this.longitude = longitude;
        this.latitude = latitude;
    }
}



所属网站分类: 技术文章 > 博客

作者:天使的翅膀

链接:http://www.javaheidong.com/blog/article/372892/afba5d7067f0f23eaaa8/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)