根据两点的经纬度计算两点之间的距离

话不多说,上代码,因为我的代码也是拷贝别人的,只是在别人的基础上改了点东西。

    var EARTH_RADIUS = 6378137.0;    //单位M 
    var PI = Math.PI; 
    function getRad(d){
        return d*PI/180.0;
    } 
    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;
        var _d= d*(1 + fl*(h1*sf*(1-sg) - h2*(1-sf)*sg));
        if(isNaN(_d)){ return 0 + 'm'; }
        _d = _d < 1000 ? parseInt(_d) + 'm'  : (_d*1000).toFixed(1) + 'km';
        return _d;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,192评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,048评论 2 59
  • 人一旦长时间的长眠不食,做梦的时候就会睡的很沉,也许是背负的东西太多以至于长时间的感到绝望,也有可能是心底里不该承...
    陌子潇阅读 298评论 0 1
  • 杂乱的房间,许久没有碰过的吉他,外面阵阵的嘈杂声。自己漫无目的写着,手脚冰凉的坐着。不喜欢这样毫无目的自己,不喜欢...
    叹谁逍遥阅读 132评论 0 0
  • 结果 源码 #include int WINAPI WinMain(HINSTANCE hInstance, HI...
    f675b1a02698阅读 584评论 0 0

友情链接更多精彩内容