根据一个经纬度,计算出当前经纬度的半径,可用于打卡,场合。

import com.alibaba.fastjson.JSON;import java.lang.*;/*** @author wangwei* @version v1.0.0* @description 经纬度工具类* @date*/
public class LatLonUtil
{private static double PI = 3.14159265;private static double EARTH_RADIUS = 6378137;private static double RAD = Math.PI / 180.0;/// <summary>/// 根据提供的经度和纬度、以及半径,取得此半径内的最大最小经纬度/// </summary>/// <param name="lat">纬度</param>/// <param name="lon">经度</param>/// <param name="raidus">半径(米)</param>/// <returns></returns>public static double[] GetAround(double lat, double lon, int raidus){Double latitude = lat;Double longitude = lon;Double degree = (24901 * 1609) / 360.0;double raidusMile = raidus;Double dpmLat = 1 / degree;Double radiusLat = dpmLat * raidusMile;Double minLat = latitude - radiusLat;Double maxLat = latitude + radiusLat;Double mpdLng = degree * Math.cos(latitude * (PI / 180));Double dpmLng = 1 / mpdLng;Double radiusLng = dpmLng * raidusMile;Double minLng = longitude - radiusLng;Double maxLng = longitude + radiusLng;return new double[] { minLat, minLng, maxLat, maxLng };}/// <summary>/// 根据提供的两个经纬度计算距离(米)/// </summary>/// <param name="lng1">经度1</param>/// <param name="lat1">纬度1</param>/// <param name="lng2">经度2</param>/// <param name="lat2">纬度2</param>/// <returns></returns>public static double GetDistance(double lng1, double lat1, double lng2, double lat2){double radLat1 = lat1 * RAD;double radLat2 = lat2 * RAD;double a = radLat1 - radLat2;double b = (lng1 - lng2) * RAD;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) / 10000;return s;}public static void main(String[] args) {double a = 31.0152789817;double b = 111.5771484375;int s = 100;double[] data = GetAround(a,b,s);System.out.println(JSON.toJSONString(data));;}
}

java经纬度工具类相关推荐

  1. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  2. Java并发工具类(闭锁CountDownLatch)

    并发工具类系列: Java并发工具类(闭锁CountDownLatch) Java并发工具类(栅栏CyclicBarrier) Java并发工具类(信号量Semaphore) 闭锁是一种同步工具类,可 ...

  3. java日期工具类DateUtil

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DateUtil类 [java] view plain copy package com.util; ...

  4. Java常用工具类StringUtils的常用方法

    Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...

  5. 组织机构代码和统一社会信用代码校验规则以及java校验工具类

    组织机构代码 编码规则编辑 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法. 校验码按照以下公式计算: C9 ...

  6. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  7. 彻底理解Java并发:Java并发工具类

    本篇内容包括:Java 并发工具类的介绍.使用方式与 Demo,包括了 CountDownLatch(线程计数器).CyclicBarrier(回环栅栏).Semaphore(信号量) 以及 Exch ...

  8. java 系统工具类 查询内存 CPU 系统基本信息 SysInfoUtils

    java 系统工具类 查询内存 CPU 系统基本信息 SysInfoUtils maven依赖 <dependency><groupId>com.github.oshi< ...

  9. Java并发工具类(三)Exchanger

    Java并发工具类(三)Exchanger 在J.U.C并发包中提供了一些工具类,可以供我们在日常的开发中,根据不同的情况去进行一些相关的并发控制,具体的类有: CountDownLatch Sema ...

最新文章

  1. 中国民航局:2019年春运中国民航旅客运输量将创历史新高
  2. (搬运工)macbook安装kali
  3. Sharepoint学习笔记---SPList--创建一个带有Lookup字段的List
  4. OSChina 周三乱弹 —— 爸爸说,这个是从他硬盘里掉出来的
  5. Effeckt.css – CSS3 Transitions Animations 精妙应用
  6. LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)
  7. Node.js初探之hello world
  8. php 保护连接字符串,PHP OOP更新扩展类__construct上的受保护字符串
  9. iOS URL Schemes与漏洞的碰撞组合
  10. Java菜鸟教程 递归算法与Scanner类
  11. matlab计算均值和方差
  12. 疫情下的思考-危机与机遇
  13. doris core安装报错Makefile:158: recipe for target 'processor.o' failed make: *** [processor.o] Error 1
  14. cocos 微信小游戏 加载云端资源
  15. 前端命名规范及常用命名整理
  16. 如何快速增加NFC能力到任何应用程序
  17. 股票-集合竟价与连续竟价
  18. 由ThinkServer RQ940死机到系统无法引导带来的感想
  19. Linux中使用命令分类型统计系统光盘中rpm包数量
  20. 力扣周赛 5197. 最小绝对差(java)

热门文章

  1. nodejs+vue基于决策树算法的大学生就业预测系统
  2. 聊一聊Spring中@Transactional注解及其失效的七种场景
  3. Web安全之:WebShell的获取与查杀
  4. 对访问和使用计算机的人员应釆取,计算机笔试模拟题全(含答案)
  5. android获得手机的时间格式,Android获取手机通讯录并按照时间电话类型分类处理...
  6. SpringBoot入门到精通 idea教学 (余胜军通俗易懂版本)
  7. springboot学生选课系统毕业设计源码291510
  8. Required field ‘serverProtocolVersion‘ is unset! User: root is not allowed to impersonate root
  9. oj2448: 分离正整数中的各位数
  10. java卸载干净_win10系统java如何卸载_win10怎么把java卸载干净