2012-04-20 80 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