利用JS实现的根据经纬度计算地球上两点之间的距离
最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下。
计算地球表面两点间的距离大概有两种办法。
第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance)。
公式如下:
使用JS来实现为:
复制代码 代码如下:
var EARTH_RADIUS = 6378137.0; //单位M
var PI = Math.PI;
function getRad(d){
return d*PI/180.0;
}
/**
* caculate the great circle distance
* @param {Object} lat1
* @param {Object} lng1
* @param {Object} lat2
* @param {Object} lng2
*/
function getGreatCircleDistance(lat1,lng1,lat2,lng2){
var radLat1 = getRad(lat1);
var radLat2 = getRad(lat2);
var a = radLat1 - radLat2;
var b = getRad(lng1) - getRad(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*EARTH_RADIUS;
s = Math.round(s*10000)/10000.0;
return s;
}
这个公式在大多数情况下比较正确,只有在处理球面上的相对点的时候,会出现问题,
有一个修正的公式,因为没有需要,就没有找出来,可以在wiki上查到。
当然,我们都知道,地球其实并不是一个真正的圆球体,而是椭球,所以有了下面的公式:
复制代码 代码如下:
/**
* approx distance between two points on earth ellipsoid
* @param {Object} lat1
* @param {Object} lng1
* @param {Object} lat2
* @param {Object} lng2
*/
function getFlatternDistance(lat1,lng1,lat2,lng2){
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;
return d*(1 + fl*(h1*sf*(1-sg) - h2*(1-sf)*sg));
}
这个公式计算出的结果要比第一个好一些,当然,最后结果的经度实际上还取决于传入的坐标的精度。
相关推荐:
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
SEO实际:如何在竞争激烈的市场中脱颖而出,dz论坛seo如何设置
SOE优化:让你的网站轻松登顶,流量激增的秘密武器,广西网站建设存在问题
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
怎么看文章是不是AI生成的?揭秘背后的玄机与技巧
SEO能给企业带来什么价值,seo的影响 ,ai蓝衣美女
文章缩写AI:高效编辑的未来之光
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里
ChatGPT付款被拒?如何应对与解决常见支付问题,掉包ai
chatai写作免费一键生成,轻松解决写作难题!,陈逗逗ai换脸在线看
文字生成AI开启创作的新纪元
为什么“蜘蛛弛查询”能成为提升网站排名的秘密武器?,惠州网站推广v1戈seo24
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
用AI生成的文章算原创吗?深度解析AI写作背后的秘密
OpenArtAI如何进入:数字艺术的未来之门,分析海报ai
“新关键词”开启智慧营销新篇章,助力品牌突围,自己如何做网站seo
文章写作AI:让创作更高效、精准的智能助手
怎么用AI写文章:高效创作的秘诀
ChatGPT4网页空白:重新定义智能交互的未来,怎么登ai
ChatGPT网站突然不能用了?如何快速解决这个问题,让你重新畅享AI对话!,ai新建多个画板
SEO观察:2025年搜索引擎优化的新趋势与机遇,seo2是什么状态
seo站内优化包括什么营销,seo站内优化操作流程 ,ai 玻璃图标
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
GPT优化:让你的工作与生活更高效、更智能,Ai__79
seo该从什么开始,seo是什么时候开始的 ,ai写作免费英文怎么说
seo软文有什么作用,seo文案是什么 ,斐乐Ai测评问题
SEO优化大全:让你的网站排名轻松破局,精准引流更高效!,274357524ai
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
seo相关知识是什么,seo相关技术 ,ai写作讯飞星火认知大模型
AI写作技巧,让创作事半功倍!
ChatGPTWindows版本:让AI助手成为你的工作与生活得力助手,Ai相减变形
AI一键生成原创文章,让创作更高效更轻松!
seo网络推广是什么,seo网络推广是什么意思 ,ai哪里注音
怎么用AI生成一篇文章?高效创作指南全揭秘!
个性化广告:新时代营销的秘密武器,建设经营性网站怎么记账
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
为什么选择老域名工具?提升网站SEO与品牌影响力的秘密武器,软文与seo文章区别
AI人工智能:开发与应用的必备软件推荐
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
ChatGPT怎么打不开了?揭秘背后的原因与解决方法,ai中打开ai文件丢失
什么是seo如何进行seo,何谓seo ,红米的AI摄影什么意思
未来智能:AI智能人工软件引领数字化变革
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
SEO优化引导新官网,助力企业迈向成功之路,宋轶ai换
seo点击工具,seo排名点击软件推荐 ,ai狂躁
SEO表述:如何通过精准优化让你的内容脱颖而出,江阴网站建设怎么样啊
摘要AI生成:高效工作的新时代利器
ChatGPT无法加载?检查您的网络设置并尝试重启Chat,ai写作怎么写作文的
360AI写作怎样?助力创作的新风尚,ai到访
SEO才能:提升网站排名,突破网络营销的核心竞争力,南宁本地seo营销公司