我需要从包含lineString
类型列的多行的表中获取MBR。
使用envelope我可以从单行获取MBR,因为envelope
不是聚合函数。
如何获得包含多行的一行MBR of lineString?
答案 0 :(得分:0)
复杂的查询。最后一行会有结果。
SELECT
@id := id,
@geometry := Envelope(if(isNull(@geometry), `line`, GeometryCollection( `line` , geomFromText(AsText(@geometry))))),
AsText(@geometry)
FROM `table_line`
JOIN (SELECT @id :=0, @geometry := NULL) `tmp`
WHERE id > @id
ORDER BY id ASC
geomFromText(AsText(@geometry))
- 这是必要的,因为GeometryCollection不适用于直接变量。
P.S。但它非常复杂,不要在生产中使用它。