我使用类似的东西在MySQL中存储lat / long对:
GeomFromText('POINT(32 -122)')
鉴于这一点,我如何检索单个X / Y坐标?
答案 0 :(得分:36)
假设您在名为GeomFromText('POINT(32 -122)')
的表格中将MY_POINT
列为名为MY_TABLE
的列。
获取X
坐标(在此示例中将返回32
):
SELECT ST_X(MY_POINT) as latitude FROM MY_TABLE;
获取Y
坐标(在此示例中将返回-122
):
SELECT ST_Y(MY_POINT) as longitude FROM MY_TABLE;
重要:在5.6版之前,使用X()和Y()代替ST_X()和ST_Y()。
答案 1 :(得分:1)
假设您将 GeomFromText('POINT(32 -122)')
作为名为 MY_POINT
的列存储在名为 MY_TABLE
的表中。
获取点数据的方法有多种。
首先检查 MySQL 版本
SELECT VERSION()
对于 MySQL 5.6 或更早版本使用
SELECT X(MY_POINT) AS Latitude, Y(MY_POINT) AS Longitude FROM MY_TABLE
对于 MySQL 5.7 版本使用,虽然之前的命令也被识别。
SELECT ST_X(MY_POINT) AS Latitude, ST_Y(MY_POINT) AS Longitude FROM MY_TABLE
对于 MySQL 8.0 版本使用,虽然之前的命令也可以识别。主要区别在于此命令适用于具有地理空间参考系统 (SRS) 的 Point 对象。
SELECT ST_Latitude(MY_POINT) AS Latitude, ST_Longitude(MY_POINT) AS Longitude FROM MY_TABLE
希望这会有所帮助。