2012-04-20 41 views
1

我有一張表,其中包含Polygon類型的字段zoneShape與MySQL數據庫中的地理數據/多邊形拼搏

當在這個字段中插入一些幾何時,在phpmyadmin中它說:影響了1行。該行已添加,但幾何字段表示其大小爲0B。

這是插入代碼:

SET @g = 'POLYGON(50.866753 5.686455, 50.859819 5.708942, 50.851475 5.722675, 50.841611 5.720615, 50.834023 5.708427, 50.840744 5.689373, 50.858735 5.673923, 50.866753 5.686455)'; 
INSERT INTO zone SET zoneShape = PolygonFromText(@g) 

正如你所看到的;第一個和最後一個點是相同的,所以多邊形是封閉的。

任何人都可以幫助我將這個多邊形添加到數據庫? Thanx

回答

3

事實證明,您需要在點周圍添加一些額外的括號;因爲標準使用外線和內線又名洞或島。

所以:

SET @g = 'POLYGON((50.866753 5.686455, 50.859819 5.708942, 50.851475 5.722675, 50.841611 5.720615, 50.834023 5.708427, 50.840744 5.689373, 50.858735 5.673923, 50.866753 5.686455))'; 
       ^                       outside              ^
0

INSERT INTO zone SET zoneShape = PolygonFromText(@g)對我來說看起來不像是有效的INSERT語句。你的意思是INSERT INTO zone (zoneShape) VALUES (PolygonFromText(@g));

+0

這是一個有效的INSERT語句:http://dev.mysql.com/doc/refman/5.5/en/insert.html第二個例子 – stUrb 2012-04-20 12:10:30

+0

哇,確實如此。我不知道... – Simon 2012-04-20 12:29:40