【问题标题】:MySQL 8 st_distance_sphere gives different values for different SRIDMySQL 8 st_distance_sphere 为不同的 SRID 提供不同的值
【发布时间】:2020-09-29 15:46:18
【问题描述】:

什么时候,我跑 (SRID = 4326)

Select st_distance_sphere( ST_GeomFromText( 'point(-51 -23)',4326), ST_GeomFromText('Point(-51.4264 -23.4158)',4326))/1000 as distance;

我明白了

'55.55951760685804'。

SRID 4326

但是,什么时候,我运行 (SRID = 0)

Select st_distance_sphere( ST_GeomFromText( 'point(-51 -23)'), ST_GeomFromText( 'Point(-51.4264 -23.4158)'))/1000 as distance;

srid 0

我得到63.5340251950123,这看起来是正确的距离值。 但是,我认为该函数不会通过更改点的 SRID 来更改其结果。更糟糕的是,当我设置 SRID 时它返回错误的结果。有人可以帮我理解这里发生了什么吗? =) 顺便说一句,我使用的是 Mysql 8。

【问题讨论】:

    标签: mysql spatial-query srid


    【解决方案1】:

    终于,我找到了答案here。问题是当从 SRID 0 更改为 4326 时,创建点的 lat long 顺序必须更改。我不知道。我认为这真的很混乱,而且没有很好的记录。无论如何,在 4326 的情况下更改 lat long 顺序后,我得到了正确的距离值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 2014-09-02
      • 2021-05-14
      相关资源
      最近更新 更多