Android根据经纬度计算距离

Android根据经纬度计算距离地球半径 privatestati RADIUS 6378 137 第一种方法 返回多少米 计算两点之间距离 return 返回米 publicDouble doublelongit doublelatitu doublelo

 // 地球半径 private static final double EARTH_RADIUS = 6378.137; //第一种方法,返回多少米 / * 计算两点之间距离 * * @return 返回米 */ public Double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) { double lat1 = (Math.PI / 180) * latitude1; double lat2 = (Math.PI / 180) * latitude2; double lon1 = (Math.PI / 180) * longitude1; double lon2 = (Math.PI / 180) * longitude2; //两点间距离 km,如果想要米的话,结果*1000 double d = Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)) * EARTH_RADIUS; if (d < 1) return (Double) (d * 1000); else return Double.valueOf(String.format("%.2f", d * 1000)); } 

在这里插入图片描述

//第二种计算返回千米 private static final double EARTH_RADIUS = 6378.137; / * 根据经纬度计算距离 * * @param longitude1 start * @param latitude1 start * @param longitude2 end * @param latitude2 end * @return */ public double getDistances(double longitude1, double latitude1, double longitude2, double latitude2) { double Lat1 = rad(latitude1); double Lat2 = rad(latitude2); double a = Lat1 - Lat2; double b = rad(longitude1) - rad(longitude2); double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(Lat1) * Math.cos(Lat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; //有小数的情况;注意这里的10000d中的“d” s = Math.round(s * 10000d) / 10000d; s = s * 1000;//单位:米 // s = Math.round(s/10d) /100d ;//单位:千米 保留两位小数 s = Math.round(s / 100d) / 10d;//单位:千米 保留一位小数 return s; } private static double rad(double d) { return d * Math.PI / 180.0; } 

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231066.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac phpstorm 激活码【2021.8最新】

    (mac phpstorm 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSW…

    2022年3月26日
    75
  • pycharm配置python运行环境_pycharm安装django

    pycharm配置python运行环境_pycharm安装django新手下载安装pycharm并且配置pycharm下载安装pycharm电脑是32位就选择32位电脑是64位就选择64位选择next就搞定了配置环境变量第一步、找到pycharm的程序文件的地址右键->属性->复制“起始位置”里面的位置第二步、添加到电脑的环境变量我的电脑->右键->属性->高级系统设置->高级->环境变量->Administrator->找到Path->编辑->新建->粘贴pycharm程序文件地址-&

    2022年8月28日
    2
  • 【Android音视频开发】【034】WEBRTC之ICE服务器搭建

    【Android音视频开发】【034】WEBRTC之ICE服务器搭建前篇由于ICE服务器是作为一个中转服务器来使用的,因此它必须搭建在外网,我是搭建在阿里云服务器上面的搭建ICE服务器需要一定的Linux经验和排错能力,没接触过Linux的量力而为切换到root用户sudosuroot安装opensslapt-getinstallopenssllibssl-devmake安装libevent2wgethttps://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar

    2022年6月8日
    38
  • 将字符串指针赋值给数组[通俗易懂]

    比如char*p=”sdflkjasljfsjlsdfsa”;charp1[200];将p赋给p1(1)strcpy(p1,p);(2)char*src=”helloworld”;chardes[100]={0};memcpy(des,src,strlen(src)+1);//void*memcpy(void*str1,const…

    2022年4月12日
    98
  • 解决Deepin下qq无法显示图片「建议收藏」

    解决Deepin下qq无法显示图片「建议收藏」添加内核参数彻底禁用IPv6:执行:sudodedit/etc/default/grub开始编辑文件:在此行添加参数:GRUB_CMDLINE_LINUX=”ipv6.disable=1″保存退出后执行:sudoupdate-grub执行完命令之后,重新启动系统。亲测:可以接收图片…

    2022年8月10日
    9
  • weka中文论坛

    weka中文论坛

    2021年8月15日
    91

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号