2013-03-16 70 views
5

我试图在我的MySQL数据库中插入一个多边形的地理坐标。我有一个名为类型的多边形多边形领域,我已经试过所有运行这些查询,但继续获得SQL语法错误:将坐标插入到MySQL中 - PolyFromText SQL语法错误/返回null

SET @g = 'POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))'; 
INSERT INTO 'zones' ('polygon') VALUES (PolyFromText(@g)); 

INSERT INTO 'zones' ('polygon') VALUES (PolyFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))')); 

INSERT INTO 'zones' ('polygon') VALUES (PolyFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))', 0)); 

上次查询是使用phpmyadmins自己的地理空间工具生成的,并返回“Column”多边形“不能为null”。任何帮助表示赞赏!

+0

我试过PolygonFromText,PolyFromText和GeomFromText的 - 既不是他们的工作。 – Yev 2013-03-16 19:05:04

回答

25

原因是因为null退出最后一点不等于第一个点,是符合OSGeo标准WKT的条件,在某些实现中这是允许的,但是mysql对它是严格的,在SQL Server中文档更好地解释条件。

看到这个

SELECT Dimension(GeomFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327,-74.13591384887695 40.93750722242824)))')); 

的mysql的文档

http://dev.mysql.com/doc/refman/5.0/en/gis-class-polygon.html

DOC SQLSERVER

http://msdn.microsoft.com/en-us/library/bb964739(v=sql.105).aspx

+0

谢谢!我在最后重复了这一点,它工作了! – Yev 2013-03-16 19:24:28

+1

你真棒,m8! – nurgasemetey 2015-03-12 15:09:51