基于js利用经纬度进行两地的距离计算(转)
在去年cosbeta曾经发布了一个网页计算工具,这个作用就是根据地球上两点之间的经纬度计算两点之间的直线距离。经纬度到距离的计算在通信工程中应用比较广泛,所以cosbeta通过搜索找到了一个js的计算脚本(其实是google map的计算脚本,应该算是比较准确了),做成了这个经纬度算距离的工具。
今天有人给cosbeta发邮件,询问计算的公式是什么样的。其实,若是把地球当作一个正常的球体(其实它是椭球)来说,球面两点之间的距离计算并不复杂,运用球坐标很容易就能计算出两点之间的弧长。当然这都是高中的知识,我和你一样,也没有那个耐心来将其推导,所以我就利用google map的经纬度到距离计算的js脚本,将球面弧长的公式给还原出来(估计这个公式是经过部分修正的),还原出来的公式如下:
对上面的公式解释如下:
公式中经纬度均用弧度表示,角度到弧度的转化应该是很简单的了吧,若不会,依然请参考这个这个经纬度算距离的工具;
Lat1 Lung1 表示A点纬度和经度,Lat2 Lung2 表示B点纬度和经度;
a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung2 为两点经度之差;
6378.137为地球半径,单位为公里;
计算出来的结果单位为公里;
相应的js脚本代码为:
//进行经纬度转换为距离的计算
function Rad(d){
return d * Math.PI / 180.0;//经纬度转换成三角函数中度分表形式。
}
//计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
function GetDistance(lat1,lng1,lat2,lng2){
var radLat1 = Rad(lat1);
var radLat2 = Rad(lat2);
var a = radLat1 - radLat2;
var b = Rad(lng1) - Rad(lng2);
var 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 *6378.137 ;// EARTH_RADIUS;
s = Math.round(s * 10000) / 10000; //输出为公里
//s=s.toFixed(4);
return s;
}
下面这个网址写的也比较好:
http://www.360doc.com/content/10/1228/10/284485_81937345.shtml
https://segmentfault.com/a/1190000010371592?utm_source=debugrun&utm_medium=referral
https://www.jb51.net/article/161153.html
基于js利用经纬度进行两地的距离计算(转)相关推荐
- 基于js利用经纬度进行两地的距离计算
转自:http://www.storyday.com/html/y2009/2212_according-to-latitude-and-longitude-distance-calculation- ...
- Python 经纬度,偏航角,距离计算
参考https://blog.csdn.net/ETNJTOTG/article/details/84130971 import numpy as npdef lonlat2Azimuth(lonA, ...
- Java 通过已知点的经纬度,相对角度,距离计算另一点的经纬度
问题背景:自己在使用高德地图时没有发现通过已知点经纬度,角度,距离计算另一点经纬度的方法,所以只好自己实现了.查询之后发现国内的博客基本都是计算两点距离,计算点到线距离的距离等,有几篇也都是C语言形式 ...
- 基于ArcGIS JS API实现的两种距离和面积测量方式
文章目录 前言 开发思路 主要代码 效果测试 效果图 测试页面 开发总结 参考链接 前言 在一些地图地图应用中,距离.面积测量属于基础功能.ArcGIS API for JavaScript有单独提供 ...
- ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员
ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员 目录 实验数据 设计思路 实现代码(部分代码) 实验数据 设计思路 实现代码(部分代码) /**js代码实 ...
- js根据经纬度计算两点距离
js根据经纬度计算两点距离 1.html <button type="button" οnclick="distanceByLnglat(116.95400,39. ...
- 基于GPS与经纬度距离计算
基于GPS与经纬度距离计算 # -*- coding:utf-8 -*- # /usr/bin/pythonimport warnings warnings.filterwarnings(" ...
- 根据两个位置的经纬度,来计算两地的距离(单位为KM)
上代码 /*** 根据两个位置的经纬度,来计算两地的距离(单位为KM)* 参数为double类型* long1 位置1经度* lat1 位置1纬度* long2 位置2经度* lat2 位置2纬度*/ ...
- matlab利用经纬度计算距离_【Matlab】根据经纬度计算两点间的球面距离
做建模或者研究空间数据,可能会遇到"根据经纬度计算两点间的球面距离"的问题,网上的资料很多,都是各种公式推导,但是一旦按公式编程计算,很可能得不到正确的距离.根本原因是在" ...
- 经纬度计算距离html,js版谷歌地图计算两经纬度坐标点的距离
球面上两点间大圆劣弧的距离html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
最新文章
- 卡耐基梅隆大学提出新型「自适应」技术,可提高「个性化神经机器翻译」质量...
- [HAOI2011]Problem b
- centos7 docker升级到最新稳定版本
- MFC 使用控制台打印程序信息
- Android1 按钮
- 地理信息系统导论第八版_地理信息系统导论.pdf
- 十九个国内外主流的三维GIS
- c语言求解线性方程组ax=b,用C语言求解N阶线性矩阵方程Ax=b的简单解法
- P4218 [CTSC2010]珠宝商
- laya龙骨换装_FairyGUI - 骨骼动画
- A `Concatenate` layer requires inputs with matching shapes except for the concat axis.
- 一名武大同学的春招48小时
- kermit的安装、配置、使用等
- windows 的cmd设置代理方法
- 7-4 有理数加法 (15 分)
- 2020.06.27 肉包去了喵星球
- “running install error: can‘t create or remove files in install directory The following error occu”
- C语言——结构体与共用体N0.10
- 系统波折之uxtheme
- PIX飞控LOITER模式刹车设置
热门文章
- gitlab自定义头像设置
- Leetcode NO.63 Unique Paths II
- 室内设计数据手册pdf_室内设计制图讲座 PDF扫描版[25MB]
- VC 2012 编译出错,避免运行老代码
- Redis 菜鸟教程学习笔记- Redis 命令- Key
- 乾颐堂军哥华为HCNP真题讲解(2017至2018版)真题更新版到来
- 探索:区块链视频流媒体平台
- Idea配置SVN教程
- 云南智慧医院一卡通建设解决方案,昆明数字化医疗办公、就诊、用餐、停车一卡通用
- 西安电子科技大学833真题_【考研名校】2021西安电子科技大学考研资料及历年真题解析汇总...