从 MariaDB 上的文档,对于ST_LineStringFromText
LINESTRING
使用其 WKT 表示和 SRID构造一个值。
ST_LineFromText()
,ST_LineStringFromText()
,ST_LineFromText()
和ST_LineStringFromText()
都是同义词。
不过,这在技术上似乎是不正确的,例如,我们在这里构造一个点和一个多边形,使用ST_LineStringFromText()
,
WITH t(geom) AS ( VALUES
(ST_LineStringFromText('POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))')),
(ST_LineStringFromText('POINT( 0 0 )')),
(ST_LineStringFromText('LINESTRING( 0 0, 1 1 )'))
)
SELECT ST_AsText(geom)
FROM t;
退货..
POLYGON((35 10,45 45,15 40,10 20,35 10),(20 30,35 35,30 20,20 30))
POINT(0 0)
LINESTRING(0 0,1 1)
Polygon 函数的文档令人困惑,
POLYGON
使用其 WKT 表示和 SRID构造一个值。
ST_PolyFromText()
,ST_PolygonFromText()
,PolyFromText()
和ST_PolygonFromText()
都是同义词。
但是您可以替换ST_LineStringFromText
为ST_PolyFromText
,它们的工作方式相同。
MySQL 行为
对于 MySQL 8,您似乎在上述构造中遇到错误,
WKT 值是 . 中意外类型的
POINT
几何图形st_linestringfromtext
。
无论多么可爱和无证,所有这些功能都在内部映射到
Create_func_geometry_from_text
initem_create.cc
, . 出于这个原因,我建议使用ST_GeomFromText()
哪个最能反映这一点。