MySQL中ST_Transform函数返回结果异常的问题求助
MySQL中ST_Transform函数返回结果异常的问题求助
大家好,我最近在使用MySQL的空间函数时遇到了一个棘手的问题,想请各位前辈帮忙排查一下问题所在。
我在尝试用ST_Transform转换坐标系的时候,发现MySQL返回的结果和PostGIS以及其他验证工具的正确结果偏差非常大。
我用了完全相同的查询语句在两个数据库中测试:
SELECT ST_AsText(ST_Transform(ST_GeomFromText('POINT(5 45)', 4326), 2154));
- 我用的PostGIS版本是3.5.2(proj版本9.4.0),执行后得到的结果是:
POINT(857581.8993196681 6435414.747835401)
- 而用MySQL 8.0.41执行同一条语句,得到的结果却是:
POINT(6297547.01826163 3142340.2635587133)
我特意用其他工具验证过,PostGIS返回的结果是完全正确的。而且不止这一组坐标,我试了多组经纬度值,结果都存在差异——哪怕是测试POINT(0 0)这种特殊点,虽然差异相对小一些,但依然和正确结果对不上。
我一开始怀疑这是MySQL的bug,但转念一想,如果真的是bug,应该早就被用户反馈过了吧?所以我更倾向于是自己在使用这个函数的时候哪里操作错了,但翻了半天文档也没找到问题出在哪。有没有大佬能帮我分析一下原因呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

