`

靠谱的根据经纬度计算两点之间距离的方法

阅读更多

网上找的中文的例子都不靠谱,还得是英文网站好用。

网址: https://www.movable-type.co.uk/scripts/latlong.html

 

Haversine formula

Using Chrome on a middling Core i5 PC, a distance calcula­tion takes around 2 – 5 micro­seconds (hence around 200,000 – 500,000 per second). Little to no benefit is obtained by factoring out common terms; probably the JIT compiler optimises them out.

 

formula:

a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
c = 2 ⋅ atan2( √a, √(1−a) )

d = R ⋅ c

 

 

where φ is latitude, λ is longitude, R is earth’s radius (mean radius = 6,371km);
note that angles need to be in radians to pass to trig functions!

 

 

Javascript:

var R =6371e3;// metresvarφ1= lat1.toRadians();

varφ2= lat2.toRadians();varΔφ=(lat2-lat1).toRadians();

varΔλ=(lon2-lon1).toRadians();

var a =Math.sin(Δφ/2)*Math.sin(Δφ/2)+Math.cos(φ1)*Math.cos(φ2)*Math.sin(Δλ/2)*Math.sin(Δλ/2);

var c =2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));var d = R * c;
 

 

 

 

Spherical Law of Cosines

the simple spherical law of cosinesformula (cos c = cos a cos b + sin a sin b cos C) gives well-condi­tioned results down to distances as small as a few metres on the earth’s surface

 

formula: 

d = acos( sin φ1 ⋅ sin φ2 + cos φ1 ⋅ cos φ2 ⋅ cos Δλ ) ⋅ R

 

Javascript:

 

varφ1= lat1.toRadians(),φ2= lat2.toRadians(),Δλ=(lon2-lon1).toRadians(), R =6371e3;// gives d in metres
var d =Math.acos(Math.sin(φ1)*Math.sin(φ2)+Math.cos(φ1)*Math.cos(φ2)*Math.cos(Δλ))* R;
 

 

 

Equirectangular approximation

If performance is an issue and accuracy less important, for small distances Pythagoras’ theorem can be used on an equi­rectangular projec­tion:*

 

 

Formula

x = Δλ ⋅ cos φm
  y = Δφ
  d = R ⋅ √x² + y²
JavaScript:

var x =(λ2-λ1)*Math.cos((φ1+φ2)/2);
var y =(φ2-φ1);
var d =Math.sqrt(x*x + y*y)* R;
 
 

 λ2就是lon2

 λ1就是lon1

 

角度和弧度换算的原理:

网址: https://tianyelina.iteye.com/blog/756031

Javascript实现(根据原理自己实现也很容易): 

网址: https://www.w3resource.com/javascript-exercises/javascript-math-exercise-33.php

分享到:
评论

相关推荐

    公里网转经纬度简易坐标转换工具

    最近发现2018年12月4日上传的转换工具中所用的阿里云地图接口失效了(请管理员将其删除),这次换用百度地图接口(始终保留坐标位置名称显示的原因主要是为了直观验证转换是否靠谱),取消批量转换(主要是为了减小...

    靠谱助手微信版

    【靠谱助手微信版】是一款备受推崇的安卓模拟器软件,专为用户提供在电脑上运行安卓应用程序,特别是微信的便捷方式。这款模拟器在全球范围内享有盛誉,因其稳定性和兼容性而受到广大用户的一致好评。 作为全球最大...

    靠谱助手1.4

    【靠谱助手1.4】是一款深受用户喜爱的电脑模拟器软件,它专为喜欢在电脑上体验手机游戏的用户设计。这款工具的核心功能是将移动游戏无缝移植到个人计算机上,让用户无需消耗手机流量,就能在大屏幕上畅享游戏乐趣。...

    靠谱助手使用方法.docx

    本文档将详细介绍靠谱助手的使用方法。 首先,我们来看看如何使用靠谱助手进行应用下载与安装。在靠谱助手中,你可以找到各种热门的应用和游戏资源。例如,我们以热门游戏《刀塔传奇》为例来进行操作: 1. **应用...

    面试总结js 靠谱靠谱靠谱.md

    面试总结js 靠谱靠谱靠谱.md

    下载靠谱助手吧

    安卓模拟器社区(靠谱社区)是中国最大的安卓模拟器交流论坛,下载靠谱助手安卓模拟器可在PC电脑上极速运行安卓手游和应用。最全手机游戏电脑版攻略心得!

    计算工作时间函数(自动剔除非工作时间).txt

    全网最靠谱的计算工作时间函数(自动剔除非工作时间),自己网上找的各种出错后来逼得没办法自己写了一个。 可以计算工作时间的函数,自动去除非工作时间。还可以微调函数修改作息时间。自动去除节假日中午休息时间...

    手机ime串号简介以及靠谱查询网站方法.pdf

    手机ime串号简介以及靠谱查询网站方法.pdf

    读《马克思靠谱》心得.pdf

    读《马克思靠谱》心得.pdf

    靠谱助手安卓PC模拟器

    靠谱助手安卓PC模拟器

    怎样构建靠谱团队

    【构建靠谱团队】是IT行业中一个至关重要的主题,无论是在软件开发、项目管理还是技术支持等领域,拥有一支高效且可靠的团队都是成功的关键。本篇主要探讨如何构建并维护这样的团队,尤其是在技术领域。 首先,我们...

    靠谱助手V3.5.2247_setup

    靠谱手机安卓应用助手,海量应用随便下载,实用、好用。

    读《马克思靠谱》心得参考.doc

    读《马克思靠谱》心得参考.doc

    免费下载卫星影像的简单又靠谱的方法

    免费下载卫星影像的简单又靠谱的方法 SAS.Planet_免费下载卫星影像1

    靠谱的文件切割工具

    本文将详细介绍“靠谱的文件切割工具”及其相关知识点。 文件切割工具是一种实用的软件,其主要功能是将大型文件分割成较小的部分,以便于传输、存储或管理。在提供的资源中,包含了两个这样的工具,一个是作者的...

    靠谱助手怎么打字.docx

    以下是如何使用靠谱助手进行打字的详细步骤和相关知识点: 1. **下载安装靠谱助手**:首先,你需要从官方网站或其他可信来源下载靠谱助手的最新版本。靠谱助手通常会自动检测你的电脑配置并安装合适的安卓模拟器,...

    靠谱助手 v6.3.2933 最新版.zip

    靠谱助手是一款专业的第三方智安卓模拟器管理软件,软件由靠谱社区推出,目前支持bluestacks安卓模拟器,是国内最完美的PC端管理软件以及最大用户群体的安卓模拟器管理软件。软件支持安卓的APP资源搜索、下载、APP...

    计算机二级c题库真是可靠

    - 数组分组:根据元素值与平均值的关系将数组分为两部分,这需要计算数组平均值和遍历数组。 - 数组元素处理:将数组中大于平均数的元素移到新的数组中,需要用到条件判断和数组索引。 3. **指针与结构体**: - ...

    我在CSDN总结的一些比较靠谱的比较靠的NFTS.zip

    我在CSDN总结的一些比较靠谱的比较靠的4个项目希望能帮到大家。

Global site tag (gtag.js) - Google Analytics