获取经纬度之间距离的Java工具类
2019独角兽企业重金招聘Python工程师标准>>>
public class GeoUtil { /*** 根据经纬度和距离返回一个矩形范围* * @param lng* 经度* @param lat* 纬度* @param distance* 距离(单位为米)* @return [lng1,lat1, lng2,lat2] 矩形的左下角(lng1,lat1)和右上角(lng2,lat2)*/ public static double[] getRectangle(double lng, double lat, long distance) { float delta = 111000; if (lng != 0 && lat != 0) { double lng1 = lng - distance / Math.abs(Math.cos(Math.toRadians(lat)) * delta); double lng2 = lng + distance / Math.abs(Math.cos(Math.toRadians(lat)) * delta); double lat1 = lat - (distance / delta); double lat2 = lat + (distance / delta); return new double[] { lng1, lat1, lng2, lat2 }; } else { // TODO ZHCH 等于0时的计算公式 double lng1 = lng - distance / delta; double lng2 = lng + distance / delta; double lat1 = lat - (distance / delta); double lat2 = lat + (distance / delta); return new double[] { lng1, lat1, lng2, lat2 }; } } /*** 得到两点间的距离 米* * @param lat1 第一点纬度* @param lng1 第一点经度* @param lat2 第二点纬度* @param lng2 第二点经度* @return*/ public static double getDistanceOfMeter(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 * 10000) / 10; return s; } private static double rad(double d) { return d * Math.PI / 180.0; } /*** 地球半径:6378.137KM*/ private static double EARTH_RADIUS = 6378.137; }
转载于:https://my.oschina.net/ydsakyclguozi/blog/410505
获取经纬度之间距离的Java工具类相关推荐
- 获取MP3音频时长 | Java工具类
获取mp3格式音频时长. Maven依赖 <dependency><groupId>org</groupId><artifactId>jaudiotag ...
- java 获取两条经纬度线段的交点坐标工具类
java 获取两条经纬度线段的交点坐标工具类 网上有线段是否相交的判断方法,但是很少有获取线段交点的坐标的方法 我在这里整合了网上的一些相交的方法,通过相交的xy轴点返推出了经纬度. 拾取坐标系统 可 ...
- java工具类获取文件扩展名与content-type、http与content-type映射关系
java工具类获取文件扩展名与content-type.http与content-type映射关系 大家好,我是酷酷的韩~ 一.对应关系参考地址: http://doc.chacuo.net/cont ...
- java 工具类-去除字符串中特殊字符、全角转为半脚、获取字符串中姓名/电话、姓名重复后追加a.b.c...aa,ab..
java 工具类-去除字符串中特殊字符.全角转为半脚.获取字符串中姓名/电话.姓名重复后追加a.b.c-aa,ab- public class NameUtil {/*** 姓名重复后追加a.b.c. ...
- 干货:排名前 16 的 Java 工具类!
2019独角兽企业重金招聘Python工程师标准>>> 干货:排名前 16 的 Java 工具类! 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最 ...
- 排名前 16 的 Java 工具类
转载来自微信公众号:Java 技术栈.如有侵权,请联系作者删除!! 在 Java 中,工具类定义了一组公共方法,这篇文章将介绍 Java 中使用最频繁及最通用的 Java 工具类.以下工具类.方法按使 ...
- beanutils工具类_16 个超级实用的 Java 工具类!
在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...
- java轻量级并行工具类_16 个超级实用的 Java 工具类
原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...
- java 文本工具类_干货:排名前16的Java工具类
原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...
最新文章
- HTTP第一篇——搭建
- 从领导身上学习到的几个观点
- 清华大学贾宁_《财务思维》_体系结构
- partial equation lecture first order pde lecture 1
- c++语句switch语句_错误:案例标签不在C中的switch语句内
- 《大数据》第1期“专题”——大数据机器学习系统研究进展(下)
- 富文本编辑vue-quill-editor文件上传
- 实验3 OpenGL几何变换
- 腾讯自然语言处理实习面经
- WebFrom 【文件上传】
- QQ广告营销推广全能王 QQ空间自动发表日志说说广告实用工具!
- 实现一个在线抽奖系统,就算是个小白看了也能做出来(附源码)
- 中国区块链专利申请数破万:阿里巴巴居首位 网心科技晋身前十
- mysql float数据类型和decimal数据类型
- Madoko - Markdown 在线编辑器
- 最新小象学院python量化交易项目实战(完整)
- 一个简单的前端手风琴图片滑动展示
- SQL16号统计1~15号数据,1号统计上月15~月底数据
- 苹果手机注册时显示链接服务器出现问题,苹果确认iphone密码,显示连接服务器出现问题,为什么...
- mathematica入门(一)