`
mikewang
  • 浏览: 10224 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

地球上2点的距离

阅读更多
球形, 大圆距离(The Great Circle Distance)
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;
    }


椭圆形 计算公式
/**
     * 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));
    }
分享到:
评论
1 楼 vawe666 2014-02-10  
看不懂!

相关推荐

    地球上两点球面距离自动计算程序

    标题中的“地球上两点球面距离自动计算程序”指的是一个能够自动计算地球上任意两个点之间球面距离的软件或算法。在地理学、航海学、航空学以及计算机科学中,这样的计算是十分重要的,因为它允许我们精确地估算物体...

    Java地图工具类计算地球上两点之间的距离

    在Java编程中,地图工具类通常用于处理与地理坐标系统相关的任务,比如计算地球上两点之间的距离。本篇文章将深入探讨如何使用Java实现这样的工具类,以及涉及到的关键算法和概念。 首先,我们需要理解地理坐标系统...

    计算地球上两点距离的程序

    在IT领域,计算地球上两点之间的距离是一个常见的问题,特别是在地理信息系统(GIS)和导航系统中。这个程序很可能是用于接收用户输入的地理位置坐标,并通过特定的算法计算出这两个点之间的直线距离或实际地面距离...

    计算地球上两个点之间的距离

    ### 计算地球上两个点之间的距离 在地理信息系统(GIS)和导航技术中,计算地球上任意两点间的距离是一项基础而重要的任务。本文将基于提供的代码片段来详细解析如何利用球面三角学原理来计算地球上两点之间的距离...

    根据经纬度求地球表面两点间距离的实现

    本篇文章将详细讲解如何在ArcGIS平台上,利用经纬度坐标来计算地球上两点间的实际距离。 ArcGIS是由Esri公司开发的一款专业GIS软件,它提供了丰富的空间分析功能,包括距离计算。首先,我们需要理解经纬度坐标系统...

    matlab开发-地球距离

    标题中的“matlab开发-地球距离”意味着我们将探讨如何使用MATLAB编程语言来计算地球上两点之间的距离。MATLAB是一种强大的数值计算和数据可视化工具,它提供了丰富的数学函数库,非常适合进行这种地理空间计算。 ...

    测量地球上任意2个坐标点之间的距离

    标题“测量地球上任意2个坐标点之间的距离”所指的就是这样一个过程,而标签“经纬度测距”进一步明确了我们使用的是基于经纬度的地理位置数据来执行这项操作。 地球并非完美的球体,而是稍微扁平的椭球体,因此...

    matlab开发-两点之间的距离

    在二维平面上,两点之间的直线距离可以通过勾股定理计算,但在地球上,两点之间的最短路径是大圆航线,即两点在地球表面上的最短路径。卡尔森模型可以准确地给出这个大圆距离。 以下是卡尔森模型的基本步骤: 1. 将...

    考虑地球曲率情况下两点距离问题的求解

    综上所述,考虑地球曲率情况下两点距离问题的求解涉及到了正球体和椭球体两种模型。正球体模型适合于地面估算,而椭球体模型则适用于更高精度的需求,尤其是在精确制导武器等应用场景中。通过对这两种方法的理解和...

    WGS84坐标下根据经纬度计算两点之间的距离

    通过这些经纬度值,可以计算出地球上两点间的距离。通常,这种距离计算基于球面三角学原理,利用地球的平均半径来近似计算两点间的大圆弧长度。 #### 三、计算公式详解 在给定的部分内容中,提供了一个计算两点间...

    根据经纬度计算地球上两点之间的距离js实现代码

    利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下。 计算地球表面两点间的距离大概有两种办法。 第一种是默认地球是一个光滑的球面,然后...

    gfc.tar_CPolarCoordinate.cpp_GFC_earth_地球_地球两点距离

    1. **地球坐标系统**:程序可能使用了经纬度坐标系来表示地球上的位置。 2. **地理坐标转换**:可能包括了将经纬度坐标转换为极坐标或其他形式的算法。 3. **椭圆体模型**:为了更准确地模拟地球形状,程序可能采用...

    haversine:计算地球上2点之间的距离

    Haversine 使用纬度和经度计算地球上两个点之间的距离(以各种单位表示)。安装$ pip install haversine用法计算里昂到巴黎的距离 from haversine import haversine , Unitlyon = ( 45.7597 , 4.8422 ) # (lat, lon)...

    计算两点间距离,点与线段距离,三个点的夹角

    该算法采用了球面三角学原理来计算地球上任意两点之间的最短距离(大圆距离)。其核心思想是利用球面余弦定理来计算两点间的角度差,进而得出实际距离。 1. **度与弧度的转换**: - 将角度转换为弧度是为了方便...

    关于卫星俯仰角以及地球站距离卫星的距离的计算

    最常用的近似方法是假设卫星在地球表面上方的圆形轨道上,此时距离(d)可以表示为: - d = √[R² + (R+h)² - 2R(R+h)cosφ1] 这里的R为地球半径,h为卫星高度,φ1为地球站的纬度。然而,如果需要更精确的计算...

    计算地面表面两点之间的距离

    在地理学和导航系统中,计算地球上两点之间的距离是一个常见的任务。这涉及到地球表面的几何形状,即我们通常简化为一个椭球体或球体。本文将探讨两种方法来计算这种距离,这两种方法都可以准确地得出结果。 首先,...

    经纬度测距函数,传入参数为地球上两点的经纬度,输出为两点的距离。

    在IT领域,尤其是在地理信息系统(GIS)和导航应用中,计算地球上两点之间的距离是一个常见的需求。这个需求可以通过使用经纬度测距函数来实现。这里,我们深入探讨一下这个主题。 首先,地球并不是一个完美的球体...

    谷歌地图测量两点间直线距离

    在二维平面上,两点之间的直线距离可以通过勾股定理计算,但在地球上,两点之间的最短路径是通过地球表面的大圆弧。谷歌地图使用了经纬度坐标系统,其中每个位置由经度和纬度值表示,这些值以度为单位。 要测量谷歌...

    百度地图计算2点间距离

    它基于地球的大圆距离公式来计算两点间的大圆劣弧长度。这种方法考虑了地球曲率的影响,因此适用于计算远距离的情况。 #### 2.2 参数说明 - `lon1`: 第一个点的经度。 - `lat1`: 第一个点的纬度。 - `lon2`: 第二个...

    已知两点经纬度组成的直线_求指定距离的第三点经纬度公式

    本问题探讨了如何根据两点经纬度(A、B点)以及一个距离(H)来确定位于这两点直线上的第三个点(C点)的经纬度。 首先,我们有两个已知点A(α1,β1)和B(α2,β2),它们之间的距离D可以通过球面距离公式计算...

Global site tag (gtag.js) - Google Analytics