Yev*_*Yev 6 mysql polygon spatial geospatial
我正在尝试将多边形的地理坐标插入到我的MySQL数据库中.我有一个名为POLYGON类型的多边形的字段,我已经尝试运行所有这些查询,但继续得到SQL语法错误:
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));
Run Code Online (Sandbox Code Playgroud)
INSERT INTO 'zones' ('polygon') VALUES (PolyFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))'));
Run Code Online (Sandbox Code Playgroud)
INSERT INTO 'zones' ('polygon') VALUES (PolyFromText('POLYGON((-74.13591384887695 40.93750722242824,-74.13522720336914 40.929726129575016,-74.15102005004883 40.9329683629703,-74.14329528808594 40.94256444133327))', 0));
Run Code Online (Sandbox Code Playgroud)
最后一个查询是使用phpmyadmins自己的地理空间工具生成的,并返回"Column'algon'不能为null".任何帮助表示赞赏!
phi*_*pex 29
原因是因为退出最后一点的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)))'));
Run Code Online (Sandbox Code Playgroud)
mysql的doc
http://dev.mysql.com/doc/refman/5.0/en/gis-class-polygon.html
sqlserver的doc
http://msdn.microsoft.com/en-us/library/bb964739(v=sql.105).aspx