【问题标题】:Retrieving the coordinates of the MySQL point type检索 MySQL 点类型的坐标
【发布时间】:2011-09-08 12:17:06
【问题描述】:

我在 MySQL 中存储 lat/long 对作为一个点,使用类似的东西:

GeomFromText('POINT(32 -122)')

鉴于这一点,我如何检索单个 X/Y 坐标?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    假设您将GeomFromText('POINT(32 -122)') 作为名为@9​​87654322@ 的列存储在名为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) 的点对象。

      SELECT ST_Latitude(MY_POINT) AS Latitude, ST_Longitude(MY_POINT) AS Longitude FROM MY_TABLE

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      假设您将GeomFromText('POINT(32 -122)') 作为名为@9​​87654322@ 的列存储在名为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()。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-01
        • 2013-10-29
        • 2013-03-30
        • 1970-01-01
        相关资源
        最近更新 更多