基于js利用经纬度进行两地的距离计算
转自:http://www.storyday.com/html/y2009/2212_according-to-latitude-and-longitude-distance-calculation-formula.html
在去年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
基于js利用经纬度进行两地的距离计算相关推荐
- 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/ ...
最新文章
- Charles抓包实战详解
- Ubuntu更新时遇到/boot空间不足
- 使用Memcached提高.NET应用程序的性能
- 实战解读ASP.NET Core身份认证
- 一个有趣的问题, 你知道SqlDataAdapter中的Fill是怎么实现的吗
- Kogito,ergo规则—第2部分:规则的全面执行模型
- LoRa和ZigBee谁更适合智能家居?
- OLTP 系统和 OLAP 系统的核心设计思想
- 快速部署ldap服务
- 17APLab4:图标、菜单、加速键、消息框 python
- IntelliJ Idea 常用快捷键 超实用!
- java运行python3_Python3:如何从python运行java类文件
- 详细版【机器学习概述】(邱锡鹏)
- 天翼云盘v6.3.5绿色精简版
- 单片机c语言最容易上手的教程,最好的单片机C语言快速入门教程.doc
- 2006年中国首届杰出数据库工程师评选面试实录
- 睁开双眼玩立体游戏 3D显示技术解析
- jQWidgets Crack 用于响应式 Web 开发
- Poisoning Attack in Adversarial Machine Learning
- 计算机输入法在桌面显示不出来的,电脑开机无法正常显示桌面只能看到输入法如何解决...
热门文章
- APISIX 极简入门(国产微服务网关)
- 施工部署主要不包括_施工管理目标是单位工程施工部署的重要内容,其目标不包括()。A.质量目标B.社会行为目标C.工期目标...
- unity3d android jar,c# – 访问unity3d中的android jar
- BaiduFaceApi.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
- Kafka 多话题消费者
- 基于DDPG、TD3的UR5装配仿真及其对比
- python可以实现什么炫酷图形吗_我是Python小玩家,一行代码能做哪些炫酷的事情?...
- 2014年最新前端开发面试题(转自markyun)
- Android安全 Hook技术,AndroidHook技术分析.pdf-北京理工大学信息系统及安全对抗实验中心.PDF...
- python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系