球形, 大圆距离(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));
}
分享到:
相关推荐
输入地球上任意两点的经度和纬度,可得到这2点间的距离
Haversine 使用纬度和经度计算地球上两个点之间的距离(以各种单位表示)。安装$ pip install haversine用法计算里昂到巴黎的距离 from haversine import haversine , Unitlyon = ( 45.7597 , 4.8422 ) # (lat, lon)...
设两个已知点(A、B点 )经纬度为(α1,β1),(α2,β2),其距离为D,地球半径为R, 行距为H,第三点的经纬度为(α3,β3),向左时θ=3π/ 2,向右时θ=π/ 2 第三点:距离前述已知两点(A、B点)组成的直线...
laravel-worlddistance 计算地球上两点之间的距离,灵感来自@ritey
* 计算地球上任意两点(经纬度)距离 * * @param lon1 * 第一点经度 * @param lat1 * 第一点纬度 * @param lon2 * 第二点经度 * @param lat2 * 第二点纬度 * @return 返回距离 单位:千米
此函数将使用 Vincenty 公式计算均匀半径球体上两点之间的大圆距离。 至少需要四个输入:lat1,long1,lat2,long2。 可选地,可以指定第五个参数 (r)。 如果未指定此参数,则假定为以公里为单位的地球平均半径。 ...
获取 2d、3d 或类地球平面上两点之间的距离。 安装 npm install point-distance 用法 const pointDistance = require ( "point-distance" ) console . log ( pointDistance ( [ 0 , 0 ] , [ 3 , 4 ] ) ) //=> 5 ...
此软件可以计算出航图上任意两点之间的距离和任意三点所成夹角的角度。 使用说明: 如何计算两点距离? 请您先在第一点(起始点)和第二点(结束点)两功能栏中输入相应的经纬度,再点击功能键【计算两点距离】,...
如果以0度经线为基准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。设第一点A的经纬度为(LonA, LatA),第二点B的经纬度为...
地球上两个点之间,可近可远。 当比较近的时候,可以忽略球面因素,当做是一个平面,这样就有了两种计算方法。 //两点间距离比较近 function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6367000...
WGS84坐标系 GCJ02坐标系 BD09坐标系的各种...计算地球上某个点是否在矩形区域内 计算点s2是否在圆中心为s1半径为capHeight的圆形区域内 判断点是否在任意形状内 计算两个区域是否有交集 求不同等级S2块包含的S2子块
地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”。在赤道的南北两边,画出许多和...
它可以使用任何用户定义的地面距离来表示任何用户定义的要素上的分布。 有关更多解释和参考,请参阅 。 安装 构建模块需要以下内容: Python2 C 头文件 ( python-dev ) C 编译器和链接器,以及 Make ( build-...
“2个月,15位专业摄影师,从海岸线到青藏高原,从繁华城市到荒僻无人区,3800平方公里的探索,记录32种野生动物”,荣耀30系列发起了一次疯狂挑战,邀请平日里近距离接触野生动物的摄影师,用长焦守望地球上的朋友...
Clojure库旨在计算地球上两个坐标之间的距离。 使用的算法基于。 用法 ( :require [distancifier.core :as core]) ( core/distance [ 38.736946 -9.142685 ] [ 40.730610 -73.935242 ]) ; => {:miles 3364....
已知地图上两点的坐标经纬度,求出第二个坐标相对于第一个坐标的方向和角度
6.1已知经纬度,计算地球上两点直线距离 21 6.2已知经纬度,计算地球上两点球面距离 21 7. 三维几何的若干模板 22 7.0预备函数 22 7.1判定三点是否共线 23 7.2判定四点是否共面 23 7.1判定点是否在线段上 23 7.2判断...
这个距离是通过计算地球上两个点之间的球面距离得出的,考虑了地球的曲率。 其次,根据行程时间和估算的出行距离,计算了共享单车的骑行速度(单位:km/h)。行程时间通过将时间字符串转换为时间类
推土机距离的近似值 Wuchen Li,Ernest K.Ryu,Stanley Osher,Wotao Yin的论文的Python实现:也是基于预印版的并行方法,也是基于预印本的版本:基于...链接到论文1: : 链接到论文2: : 链接到作者的Matlab实现: :
期间煤层底部涌出高TDS的SO4·Cl—Na型水,该水样点位于三线图右端偏上。气孔处理过程中,水样中γ(Ca)/γ(Na)系数均远大于其他水样,且HCO3–未检出,为煤层顶板直罗组水化学特征,表明阻隔了2-1煤层与白垩系含水层...