gpt4 book ai didi

postgresql - 在 PostGIS 中,哪一种是计算两点之间距离的最准确方法?

转载 作者:行者123 更新时间:2023-11-29 12:43:09 24 4
gpt4 key购买 nike

我在 postgis 中遇到 st_distance 函数的问题。我有三种计算距离的方法,但我不知道哪种方法最准确。

SELECT ST_Distance('POINT(115.25 39.26)'::geography, 'POINT(117.30 41.04)'::geography) as distance;
--result is 263753.911823565
SELECT ST_Distance_Sphere(ST_GeomFromText('POINT(115.25 39.26)',4326), ST_GeomFromText('POINT(117.30 41.04)',4326)) as distance;
--result is 263674.468686404
SELECT ST_Distance( ST_Transform(ST_GeomFromText('POINT(115.25 39.26)',4326),32650),ST_Transform(ST_GeomFromText('POINT(117.30 41.04)', 4326),32650)) as distance;
--result is 263669.651755417

最佳答案

3种测量计算的区别如下:

  1. 该距离是在椭球体上计算的,椭球体是地球表面的数学近似值,考虑了两极的扁平化。这也称为“大弧距”。在这种情况下,默认椭球体是 WGS84,GPS 系统和卫星图像也使用它。
  2. 距离是在球体上计算的,不考虑扁平化(形状实际上像一个球)。通常球体的体积与某些椭球体的体积相同,因此它在赤道处略小,在两极处略微凸出。它在数学上比椭球体简单得多,因此计算起来很多更快。
  3. 距离是在笛卡尔坐标引用系(一个平面)上计算的,该引用系是通过地理坐标(在本例中是 WGS84 球体的 UTM50N)转换而建立的。

第一种方法通常会给出(这 3 种方法中)最好的结果,但是对于靠得很近或靠近赤道的坐标,与更快的第二种方法相比,差异可以忽略不计。

第三种方法对于 UTM50N(WGS84) 坐标引用系统不是特别准确,但笛卡尔坐标系统还有其他重要的好处,例如计算三元组点或多边形区域之间的角度。另请注意,与 WGS84 相比,与局部 CRS 一起使用的某些基准面对地球不规则表面的局部表示要好得多,在这种情况下,局部 CRS 比大弧计算更准确。您必须查看您所在地区的所有大地测量细节才能对此进行评估。

关于postgresql - 在 PostGIS 中,哪一种是计算两点之间距离的最准确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39030232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com