利用Java计算经纬度距离工具类


import java.math.BigDecimal;/**
* @Description:  经纬度距离工具类
* @Param:
* @return:
* @Author: yzz
* @Date: 2020/4/18
*/
public class DistanceUtil {private static double EARTH_RADIUS = 6378.137;private static double rad(double d) {return d * Math.PI / 180.0;}/*** 通过经纬度获取距离(单位:千米)* @param lat1* @param lng1* @param lat2* @param lng2* @return*/public static BigDecimal getDistance(double lat1, double lng1, double lat2,double lng2) {double radLat1 = rad(lat1);double radLat2 = rad(lat2);double a = radLat1 - radLat2;double b = rad(lng1) - rad(lng2);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 * 10000d) / 10000d;BigDecimal bd = new BigDecimal(s);bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);  //保留小数点后两位return bd;}
}

这个是利用距离从小到大排序
(其中BasanInfoVO是你的实体类)

Collections.sort(list, new Comparator<BasanInfoVO>() {//根据距离排序public int compare(BasanInfoVO o1, BasanInfoVO o2) {return o1.getDistance().compareTo(o2.getDistance());}});

从以上可以通过经纬度获取距离从而进行排序!

技术交流联系qq:930210782

利用Java计算经纬度距离工具类相关推荐

  1. android 经纬度工具类,计算经纬度距离工具类

    public class LocationUtils { private static double EARTH_RADIUS = 6378.137; private static double ra ...

  2. 根据两点经纬度计算两点距离...工具类

    /** * 根据两点经纬度计算距离 * 直接调用使用即可 * @author tarena  *  */ public class DistanceUtil {     public static f ...

  3. 猿创征文|Java计算【生日工具类】看这篇就够了

  4. java读写excel文件poi_Java利用POI读写Excel文件工具类

    本文实例为大家分享了Java读写Excel文件工具类的具体代码,供大家参考,具体内容如下 package com.test.app.utils; import java.io.File; import ...

  5. Java 线程 - 基础及工具类 (二)

    Java 并发系列文章 Java 线程 - 并发理论基础(一) Java 线程 - 基础及工具类 (二) Java 线程 - 并发设计模式 (三) Java 线程(二) 通用的线程生命周期 Java ...

  6. java中常用的工具类

    1. 常用零散工具类 1.1[DateUtil.java]日期处理的工具类 /*** 时间日期处理工具* String -> Date* Date -> String* 以及生成含有日期的 ...

  7. 《Java并发编程的艺术》——Java中的并发工具类、线程池、Execute框架(笔记)

    文章目录 八.Java中的并发工具类 8.1 等待多线程完成的CountDownLatch 8.2 同步屏障CyclicBarrier 8.2.1 CyclicBarrier简介 8.2.2 Cycl ...

  8. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  9. JAVA I/O流工具类TextFile

    JAVA I/O流工具类TextFile由广州疯狂软件java培训分享: 本文是一个TextFile类,通过这个类我们可以调用其中的方法来简化对文件的读写,这段代码的可用性比较强.这个TextFile ...

  10. java redis remove_最全的Java操作Redis的工具类

    RedisUtil 当前版本:1.1 增加更全的方法,对以前的部分方法进行了规范命名,请放心替换成新版本. 介绍 最全的Java操作Redis的工具类,使用StringRedisTemplate实现, ...

最新文章

  1. c语言程序开平方,关于开平方的c程序
  2. 艾伟:C#对游戏手柄的编程开发-API篇(2)
  3. RemoteIE 开发者可跨平台使用IE测试网页
  4. ViewState机制的解析(转自csdn)
  5. 【渝粤题库】国家开放大学2021春3935理工英语2题目
  6. Python数据预处理数据的方法总结(使用sklearn-preprocessing)
  7. MySql 优化的 30 条建议
  8. 素短语,最左素短语-编译原理
  9. RTT Nano+STM32F407ZGT6+LAN8720A+LWIP+CubeMX+MDK
  10. Java线程池 与Lambda
  11. 蓝桥杯 C语言 试题 算法训练 审美课
  12. mysql left join和or_mysql – 在LEFT JOIN中使用带OR条件的索引
  13. 现代软件工程 课程总结
  14. COM08 -如何基于Davinci工具配置CAN通信协议栈实战课程【配置方法总述】
  15. python读写配置文件
  16. ArcBlock ⑦ 月报 | 产品一天半迭代1个版本 全球开发者社区建设启动
  17. 有关非居民企业就来源于中国境内的所得缴纳企业所得税问题
  18. swagger使用教程——快速使用swagger
  19. 老司机php源码,JeRuen
  20. ios跟android有什么区别,ios 系统和安卓系统在交互层面上有何区别?

热门文章

  1. OpenProj打开不了或者提示Failed to load Java VM Library的错误的解决方案
  2. Concis组件库封装——Avatar头像
  3. Mac 设置终端命令快捷方式
  4. 2021-07-30-DJ-006 Django模型的objects方法、参数详解
  5. Bex5开发平台分辨率问题解决方法
  6. espritcam后处理教学_Master CAM 后置处理文件及其设定方法详细说明
  7. java oracle驱动_oracle11g jdbc驱动(jdbc最新驱动)
  8. 深入解析互联网协议的原理
  9. Ajax前台传数组,Java后台接收方式
  10. vmware workstation 14 密钥