多边形数据无法导入MySQL,但MultiPolygon数据可以

时间:2017-08-09 14:52:20

标签: mysql spatial-query

我无法弄清楚为什么这不起作用(抛出“无法从发送到GEOMETRY字段的数据中获取几何对象”):

UPDATE Table
SET Shape = ST_GeomFromGeoJSON('{
    "type": "Polygon",
    "coordinates": [[[-39.440918,-11.113727],[-23.972168,4.981505],[-21.862793,-29.477861],[-39.440918,-11.113727]]]
}')
WHERE Id = 6

这样做:

UPDATE Table
SET Shape = ST_GeomFromGeoJSON('{
    "type": “MultiPolygon",
    "coordinates": [[[[-39.440918,-11.113727],[-23.972168,4.981505],[-21.862793,-29.477861],[-39.440918,-11.113727]]]]
}')
WHERE Id = 6

如果我使用GeoJSON或WKB无关紧要,结果是一样的。

Polygon和MultiPolygon结构之间有什么区别,为什么不接受第一个结构,第二个结构是什么?

运行MySQL 5.7.19。

1 个答案:

答案 0 :(得分:0)

我的错,列类型设置为MULTYPOLYGON。但令我困惑的是,其他行设置为Polygon。我想这是由服务器从5.1升级到5.7引起的。也许5.1允许您将Polygon存储在MultiPolygon列中。