利用JS实现的根据经纬度计算地球上两点之间的距离.doc

利用JS实现的根据经纬度计算地球上两点之间的距离.doc

ID:51794597

大小:39.00 KB

页数:2页

时间:2020-03-15

利用JS实现的根据经纬度计算地球上两点之间的距离.doc_第1页
利用JS实现的根据经纬度计算地球上两点之间的距离.doc_第2页
资源描述:

《利用JS实现的根据经纬度计算地球上两点之间的距离.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、利用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 {Ob

2、ject} 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.si

3、n(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上查到。当然,我们都知道,地球其实并不是一个真正的圆球体,而是椭球,所以有了下面的公式

4、:    /**     * 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 =

5、 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 = 

6、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)

7、 - h2*(1-sf)*sg));    }

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。