专栏首页OECOM根据两点经纬坐标计算两点间的距离

根据两点经纬坐标计算两点间的距离

2015-12-30 08:47:44

在进行地图一类的开发中经常会遇到需要计算两点之间的距离,下来看以下如何通过经纬坐标来确定两点间的距离

首先,设两点分别为P1、P2,如果其值是用度分秒形式表示,则需将其转换成十进制度的形式,如P1点纬度为23度30分,则其纬度值转换成十进制度的形式为23.5度。

然后,分别将两点的经度、纬度值转换成弧度制形式,如P1纬度为23.5度,转换成弧度制则为:23.5*PI / 180。分别用 P1latInRad、P1LongInRad、P2latInRad、P2LongInRad表示。

然后再分别求取两点间的纬度差(dlat)与经度差(dlon);

接下来求取两点间的正弦与余弦值,公式如下:A=sin2(dlat/2) + cos(P1LatInRad)*cos(P2LatInRad)*Sin2(dlon/2)

接着求取两点的正切值,公式如下:C=2*Math.Atan2(Math.Sqrt(A), Math.Sqrt(1-A))

最后返回两点间的距离:公式如下:D=EarthRadiusKm * C

下面来看一下代码

public class distCnvter {
    private final static double PI = 3.14159265358979323; // 圆周率
    private final static double R = 6371229; // 地球的半径

    public static double getDistance(double longt1, double lat1, double longt2,double lat2) {
        double x, y, distance;
        x = (longt2 - longt1) * PI * R
                * Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180;
        y = (lat2 - lat1) * PI * R / 180;
        distance = Math.hypot(x, y);
        return distance;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ArtTemplate模板的使用(二)

    上一篇文章说了artTemplate的最基本的用法,它还有一个方法就是使用模板的方式,template的compile();

    无邪Z
  • css3实现元素圆周运动

    在网页的编写中,好多特效都是通过js来实现,但是还有很多通过css3实现的特效,并且这种方法实现的特效不需要引入外部文件,只需要短短几行代码即可实现,下面这段代...

    无邪Z
  • diskpart clean清空分区表之后恢复磁盘数据

    今天将电脑的硬盘拆下换上了固态硬盘,由于现有的硬盘存储的数据量较大,固态硬盘容量较小,于是将该硬盘做成了移动硬盘。想通过删除原有系统保留的分区,于是在网上找到了...

    无邪Z
  • 标星 7.2w+!GitHub 上这个教人从零开始造轮子的项目又强势登上热榜!

    我在之前介绍过一个项目 - Learn X in Y Minutes ,它包括了很多的简短教程,可以在短时间内让我们了解一门未知的技术或者编程语言,但仅仅有这个...

    Rocky0429
  • .Net在Windows上使用Jenkins做CI/CD的那些事

      最近入职了一家新公司,公司各个方面都让我非常的满意,我也怀着紧张与兴奋的心情入职后,在第一天接到了领导给我的第一个任务——把整个项目的依赖引用重新整理并实施...

    陈珙
  • Dubbo整体架构总结

    ​ 在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。

    用户5325874
  • 组织架构适配下的敏捷开发

    微服务是一次重大的范式转换。通常,大型组织倾向于使用相当传统的方式来构建软件系统。每个重大发布需要经历数月的研发周期,之后需要一个完备的质量保证阶段以及数小时的...

    博文视点Broadview
  • 【个人总结】流媒体CSS样式怎么写

    什么是流媒体、用普通话来说就是针对不同的手机、IPad、平板电脑、宽屏幕设备,使用@media来展示不用的样式。如果是响应式网站,@media的重要性就更为突出...

    申霖
  • 懒惰的力量

    (今天我在旧金山参加了Erlang factory 2015大会,增长了很多见识。参会的总结我过两天再写,很多思想需要时间沉淀。) 前段时间写了篇「永恒不变的魅...

    tyrchen
  • Java8 Stream 语法详解 & 用法实例《Kotlin极简教程》正式上架:

    本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的)。 1. Stream初体验 我们先来看看...

    一个会写诗的程序员

扫码关注云+社区

领取腾讯云代金券