转换空间文本刚开始玩的MySQL的空间空间列

问题描述:

转换空间文本刚开始玩的MySQL的空间空间列

ID  BDY 

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

我有一个BDY表,包括ID和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; 

任何帮助深表感谢。

我觉得您的查询应该是

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

此:

  • 转换在BDY中的逗号空间
  • 管道转换为逗号
  • 顶部和尾巴是在一个多边形致电
  • 更新GEOLOC