我的特殊情况是直接映射WGS84坐标,就好像它们是完美球体上的坐标一样(其平均半径由IUGG定义),无需任何变换。
#1 楼
简而言之,根据问题点的不同,距离可能会误差高达22 km或0.3%。即:可以用几种自然的,有用的方式来表示误差,例如(i)(残余)误差,它等于两个计算出的距离之差(以公里为单位) ,以及(ii)相对误差,等于差异除以“正确”(椭圆形)值。为了产生便于使用的数字,我将这些比率乘以1000来表示相对误差,以千分之几表示。
误差取决于端点。由于椭球和球体的旋转对称性及其双边(南北向和东西向)对称性,我们可以将端点之一沿北半球的本初子午线(经度0)放置(纬度在0到90之间) )和东半球的另一个端点(经度在0到180之间)。
为了探究这些相关性,我绘制了端点(lat,lon)=(mu ,0)和(x,lambda)作为-90至90度之间的纬度x的函数。 (所有点的名义上都是椭圆高度为零。)在图中,行对应于{0、22.5、45、67.5}度的mu值,列对应于{0、45、90、180}的lambda值。度。这使我们对各种可能性有了很好的了解。正如预期的那样,它们的最大大小大约是长轴(大约6700公里)的平坦度(大约1/300)乘以22公里。
误差
等高线图
可视化错误的另一种方法是固定一个端点,让另一个端点变化,以轮廓化出现的错误。例如,此处是等高线图,其中第一个端点位于北纬45度,经度0度。和以前一样,误差值以千米为单位,正误差表示球面计算太大:
包裹在地球上可能更容易阅读:
法国南部的红点显示了第一个端点的位置。
记录在下,这是Mathematica 8用于计算的代码:
WGS84[x_, y_] := GeoDistance @@ (GeoPosition[Append[#, 0], "WGS84"] & /@ {x, y});
sphere[x_, y_] := GeoDistance @@
(GeoPosition[{GeodesyData["WGS84", {"ReducedLatitude", #[[1]]}], #[[2]], 0}, "WGS84"] & /@ {x, y});
和绘图命令之一:
With[{mu = 45}, ContourPlot[(sphere[{mu, 0}, {x, y}] - WGS84[{mu, 0}, {x, y}]) / 1000,
{y, 0, 180}, {x, -90, 90}, ContourLabels -> True]]
评论
糟糕的答案@whuber
–拉吉·亚瑟(Ragi Yaser Burhum)
2012-12-10 19:44
#2 楼
我最近探讨了这个问题。我想人们想知道我应该使用什么球形半径?
导致的误差是什么?
质量的合理度量标准近似值是大圆弧距离中的最大绝对相对误差
err = |s_sphere - s_ellipsoid| / s_ellipsoid
在所有可能的成对点上都具有最大值。
如果展平f很小,则使半径最小化的球半径
非常接近(a + b)/ 2,并且由此产生的误差约为
err = 3*f/2 = 0.5% (for WGS84)
(用10 ^ 6个随机选择的点对评估)。有时建议使用(2 * a + b)/ 3作为球面半径。这将导致
误差稍大,err = 5 * f / 3 = 0.56%(对于WGS84)。靠近极点,例如(89.1,0)至(89.1,180)。测地线
其长度最常被球面近似高估
是赤道附近的子午线,例如(-0.1,0)至(0.1,0)。
br />这是解决此问题的另一种方法。
在椭圆体上选择成对的均匀分布点。测量椭球距离s和单位球面上的距离t。对于任何
点对,s / t给出等效的球半径。将所有点对的此
数量平均,得出平均等效
球半径。有一个问题是究竟应该如何计算平均值
。但是,我尝试过的所有选择
1. <s>/<t>
2. <s/t>
3. sqrt(<s^2>/<t^2>)
4. <s^2>/<s*t>
5. <s^2/t>/<s>
都在IUGG建议的平均半径R1数米之内得出(1 a + b)/ 3.因此,该值使球面距离计算中的RMS误差最小。 (但是,与(a + b)/ 2相比,它导致的最大
相对误差略大;请参见上文。)鉴于R1是
可能用于其他用途(面积计算等),
有充分的理由坚持使用此选择进行距离计算。 />
对于任何类型的系统工作,如果您可以在距离计算中容忍1%的误差,请使用半径为R1的球体。最大相对误差为0.56%。当您用球体近似地球时,请始终使用此值。
您需要更高的精度,解决椭球测地线
问题。
要进行包络线计算,请使用R1或6400 km或20000 / pi
km或a。这些结果导致最大相对误差约为1%。
另一个附录:您可以使用μ= tan-1((1 − f)3 / 2tanφ)(穷人的校正纬度)作为大圆计算中的纬度。这样可以将最大相对误差从0.56%降低到0.11%(使用R1作为球体的半径)。 (与直接计算椭球测地距离相对,尚不清楚采用这种方法是否真的值得。)
评论
您是对球形模型特别感兴趣还是对椭球模型感兴趣?我认为球和椭圆之间的误差量会有很大差异。相关分析出现在此回复中。但是,要获得问题的答案,您需要指定如何将地球近似为一个球体。使用了许多近似值。它们都等于给出函数f'= u(f,l)和l'= v(f,l),其中(f,l)是球体的地理坐标,而(f',l')是球体的地理坐标椭球。请参见Bugayevskiy和Snyder的Map投影,参考手册中的第1.7节(“旋转的椭球到球体表面的变换...”)。泰勒和弗朗西斯[1995]。
这类似于关于Google / Bing EPSG 900913投影的早期辩论(使用WGS84坐标,但投影时好像是在球体上),并且错误可能是由于EPSG最初拒绝了投影,直到承受了开发人员的压力。不想过分分散您的注意力,继续进行一些辩论可能为whuber提供的出色链接增加了信息的额外范围。
@ Jzl5325:是的,我的意思是说是一个严格的范围,而不是椭圆形,编辑了这个问题以提供更多的上下文信息。
我认为您应该阅读以下内容:en.wikipedia.org/wiki/Haversine_formula