1

什么时候,我跑(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。

4

1 回答 1

0

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

于 2020-09-29T16:56:22.147 回答