You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL ST_GeomFromText设置澳大利亚点时经纬度混淆问题

问题原因与解决方案

错误根源

MySQL 8.0中,针对EPSG:4326(WGS84地理坐标系),ST_GeomFromText解析WKT格式的POINT时,坐标顺序要求是纬度在前,经度在后(即Y轴在前,X轴在后)。你的语句中把经度(Lng=151.3346)放在了第一个位置,被MySQL识别为纬度,而纬度的合法范围是[-90.000000, 90.000000],151明显超出范围,因此触发报错。

之前多数记录未报错,是因为那些记录的经度值恰好落在[-90,90]区间内,MySQL没有检测到异常,但实际上生成的POINT坐标是错误的(经纬度顺序颠倒)。

两种修复方案

方案1:调整WKT中的经纬度顺序

将POINT(Lng Lat)改为POINT(Lat Lng),确保纬度作为第一个参数传入:

UPDATE points
SET point_4326 = ST_GeomFromText(CONCAT('POINT(', Lat, ' ', Lng, ')'), 4326)
WHERE point_id = 4601

方案2:使用ST_Point函数(更推荐)

ST_Point函数支持直接传入经度(X)、纬度(Y)和SRID,无需手动拼接WKT,从根源避免顺序混淆:

UPDATE points
SET point_4326 = ST_Point(Lng, Lat, 4326)
WHERE point_id = 4601

验证

执行修复后的语句后,可通过以下语句查看生成的POINT文本,确认坐标顺序正确:

SELECT ST_AsText(point_4326) FROM points WHERE point_id = 4601;

预期输出应为POINT(-33.484806894966 151.33459992068)(或保留对应精度的数值)。

内容的提问来源于stack exchange,提问作者StripyTiger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:37:13