博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript根据GPS两点经纬度信息计算距离
阅读量:6239 次
发布时间:2019-06-22

本文共 1322 字,大约阅读时间需要 4 分钟。

//地球半径const EARTH_RADIUS = 6378137.0; //单位M//PI值const PI = Math.PI;function getRad(d) {    return d * PI / 180.0;}/** * 根据GPS两点经纬度信息计算距离 * @param  {Number} latitude1 点1 GPS 经度 * @param  {Number} longitude1 点1 GPS 纬度 * @param  {Number} latitude2 点2 GPS 经度 * @param  {Number} longitude2 点2 GPS 纬度 * @return {Number}           两点距离 */function getFlatternDistance(latitude1, longitude1, latitude2, longitude2) {    if ((latitude1 === latitude2) && (longitude1 === longitude2)) {        return 0;    }var lat1 = latitude1;    var lng1 = longitude1;    var lat2 = latitude2;    var lng2 = longitude2;    if (lat1 == null || lng1 == null ||        lat2 == null || lng2 == null) {return Number.NaN;    }    var f = getRad((lat1 + lat2) / 2);    var g = getRad((lat1 - lat2) / 2);    var l = getRad((lng1 - lng2) / 2);    var sg = Math.sin(g);    var sl = Math.sin(l);    var sf = Math.sin(f);    var s, c, w, r, d, h1, h2;    var a = EARTH_RADIUS;    var fl = 1 / 298.257;    sg = sg * sg;    sl = sl * sl;    sf = sf * sf;    s = sg * (1 - sl) + (1 - sf) * sl;    c = (1 - sg) * (1 - sl) + sf * sl;    w = Math.atan(Math.sqrt(s / c));    r = Math.sqrt(s * c) / w;    d = 2 * w * a;    h1 = (3 * r - 1) / 2 / c;    h2 = (3 * r + 1) / 2 / s;    var tValue = d * (1 + fl * (h1 * sf * (1 - sg) - h2 * (1 - sf) * sg));return tValue;};

 

转载地址:http://mydia.baihongyu.com/

你可能感兴趣的文章
在Linux下配置git并设置远程仓库
查看>>
[解题报告]499 - What's The Frequency, Kenneth?
查看>>
Vue入门---常用指令详解
查看>>
iOS 越狱后 SSH 不能连接
查看>>
soj 3291 Distribute The Apples II DP
查看>>
苹果App Store审核指南中文翻译(更新至140227)
查看>>
转 -- OK6410 tftp下载内核、文件系统以及nand flash地址相关整理、总结
查看>>
原来对MFC一无所知
查看>>
Java程序员看C++代码
查看>>
python处理Excel - xlrd xlwr openpyxl
查看>>
JS实现的购物车
查看>>
bzoj 3998 [TJOI2015]弦论——后缀自动机
查看>>
STL 的 vector 根据元素的值来删除元素的方法
查看>>
NOI2002银河英雄传说——带权并查集
查看>>
复合数据类型,英文词频统计
查看>>
“main cannot be resolved or is not a field”解决方案
查看>>
oc中使用switch实现图片浏览功能,补充其它的实现方式
查看>>
6、DRN-----深度强化学习在新闻推荐上的应用
查看>>
用父类指针指向子类对象
查看>>
Flexigrid默认是可以选择多行
查看>>