MySQL 8 st_distance_sphere 给不同的SRID取不同的值
MySQL 8 st_distance_sphere gives different values for different SRID
当,我运行(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 时它的 return 错误结果。有人可以帮助我了解这里发生的事情吗? =)
顺便说一下,我正在使用 Mysql 8.
终于找到了答案。问题在于,当从 SRID 0 更改为 4326 时,创建点的经纬度顺序必须更改。我不知道。我认为这真的很混乱,而且没有很好的记录。无论如何,在4326情况下更改经纬度顺序后,我得到了正确的距离值。
当,我运行(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 时它的 return 错误结果。有人可以帮助我了解这里发生的事情吗? =)
顺便说一下,我正在使用 Mysql 8.
终于找到了答案