Mysql 此多边形对象会自动关闭。为什么插入仍然失败,错误为3037:无效的GIS数据?

Mysql 此多边形对象会自动关闭。为什么插入仍然失败,错误为3037:无效的GIS数据?,mysql,geometry,gis,spatial,Mysql,Geometry,Gis,Spatial,了解到这一点后,, 我仍然不明白为什么下面的插入与相同的失败 错误代码:3037。为函数st_geometryfromtext提供的GIS数据无效 INSERT INTO myGeom (id, ogc_geom) VALUES ( 1, GEOMFROMTEXT( 'POLYGON(( -85.4783714315732 9.8651106795296, -85.4784492156346 9.8654277853092, -85.47

了解到这一点后,, 我仍然不明白为什么下面的插入与相同的失败
错误代码:3037。为函数st_geometryfromtext提供的GIS数据无效

INSERT INTO myGeom (id, ogc_geom)
VALUES
  (
    1,
    GEOMFROMTEXT(
      'POLYGON((
    -85.4783714315732 9.8651106795296,
    -85.4784492156346 9.8654277853092, 
    -85.4783714315732 9.8651106795296))'
    )
  );
它会自动关闭,这里少了什么(多加一点)

一个稍微修改过的版本,可以工作

-- WORKS !
INSERT INTO mygeom (id, ogc_geom)
VALUES
  (
    552,
    GEOMFROMTEXT(
      'POLYGON((
    -85.4783714315732 9.8651106795296,
    -85.4784492156346 9.8654277853092, 
    -85.85451248764512 10.1234567893214, 
    -85.4783714315732 9.8651106795296))'
    )
  );

第一组值仅包含两个点并形成线段,而不是多边形(平面图)


(有时在形式上,它可能被视为双面多边形、面积为零的退化多边形,但这是数学形式主义,不是一种常见做法)

这个问题源于我试图定义哪个
GeomFromText((…)”)
调用可能导致
错误3037
。一个是多边形不闭合,另一个是仅由3个点组成的情况?(我看不出一个闭合图形如何由3个点定义,其中最后一个点必须是第一个点(因此它闭合),而图形不是一条线。有意义吗?我缺少任何其他边缘情况吗?此练习的结果是清除数据库中的无效对象(必须与以前的版本一起插入,其中尚未包括此类验证).如果我上面写的是对的,如果这是非常清楚的,按照mySQL的多边形定义,你将不会有一个只有3个点的多边形,永远不会-mySQL开发团队没有为这种情况定义一个特定的错误消息是非常奇怪的,错误应该说得更清楚-mySQL不支持小于4个点的多边形s(2表示点,3表示线)。