博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取经纬度之间的距离
阅读量:4102 次
发布时间:2019-05-25

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

 

//经度: longitude//纬度: latitude//计算经纬度知之间的距离(基于假设地球是椭圆)function getFlatternDistance(lat1,lng1,lat2,lng2){    var EARTH_RADIUS = 6378137.0;    //单位M    var PI = Math.PI;        function getRad(d){        return d*PI/180.0;    }    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));}function getRad(d){    return d*PI/180.0;}

Tip:  如果计算没有结果,可以考虑传入的经纬度是否是 float 

 

 

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

你可能感兴趣的文章
Nginx(2)---安装与启动
查看>>
springBoot(5)---整合servlet、Filter、Listener
查看>>
C++ 模板类型参数
查看>>
C++ 非类型模版参数
查看>>
图形学 图形渲染管线
查看>>
DirectX11 计时和动画
查看>>
DirectX11 光照与材质的相互作用
查看>>
DirectX11 镜面光
查看>>
DirectX11 三种光照组成对比
查看>>
DirectX11 指定材质
查看>>
DirectX11 点光
查看>>
DirectX11 聚光灯
查看>>
DirectX11 HLSL打包(packing)格式和“pad”变量的必要性
查看>>
DirectX11 光照演示示例Demo
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Node.js-模块和包
查看>>
2017年,这一次我们不聊技术
查看>>
实现接口创建线程
查看>>
HTML5的表单验证实例
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>