【问题标题】:Converting Spatial Text to Spatial Column将空间文本转换为空间列
【发布时间】:2012-08-06 01:43:03
【问题描述】:

刚开始玩mysql spatial:

ID       BDY

4BCTD   152.936368,-27.22613|152.936525,-27.226409|152.937087,-27.228033|152.937327,-....

我有一个由 ID 和 BDY 组成的 BDY 表。

CREATE TABLE tbl_geom 
(ID VARCHAR(4),
BDY text,
GEOLOC GEOMETRY);

BDY 有纬度、经度文本,我想将边界转换为名为 GEOLOC 的空间列。

试过了,但没用:

UPDATE  tbl_geom b SET  GEOLOC = POLYFROMTEXT('SELECT  bdy  FROM tbl_geom a');

一直返回 null

即使这些查询返回 null

SELECT GeomFromText('SELECT  bdy  FROM tbl_geom a');

SELECT polyFromText('SELECT  bdy  FROM tbl_geom a');

SELECT AsText(bdy) FROM tbl_geom;

非常感谢任何帮助。

【问题讨论】:

    标签: mysql polygon spatial


    【解决方案1】:

    我认为您的查询应该是

    UPDATE `tbl_geom` SET `GEOLOC` = POLYFROMTEXT(CONCAT('POLYGON((', REPLACE(REPLACE(`bdy`, ',', ' '), '|', ','), '))'));
    

    这个:

    • 将 bdy 中的逗号转换为空格
    • 将管道转换为逗号
    • 在 POLYGON 调用中置顶和拖尾
    • 更新 GEOLOC

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多