0

mysqlspatialをいじり始めたところです。

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;

どんな助けでも大歓迎です。

4

1 に答える 1

0

私はあなたのクエリがする必要があると思います

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

これ:

  • カンマをbdyのスペースに変換します
  • パイプをコンマに変換します
  • POLYGONコールでトップとテール
  • GEOLOCを更新
于 2012-10-15T13:31:49.140 に答える