多线串到线串
Multilinestring to Linestrings
我正在寻找一种使用 MS SQL 的空间函数将 MULTILINESTRING 拆分为多个 LINESTRINGS 的方法。在我的 table 中,我有列几何结构,可以使用 .ToString () 函数轻松获取字符串值。但我正在寻找 MULTILINESTRING 分为 LINESTRINGS function。
请问您有什么想法吗?
编辑:
我还有一个问题,当我有一个很长的 LINESTRING 并且我想将它们分成几个较短的 LINE 时,就像下图可以吗?
declare @geom geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1), (-5 3, -8 -2))';
select @geom.STGeometryN(n.rownum).ToString() as Linestring
from
(
select top (@geom.STNumGeometries()) row_number() over(order by @@spid) as rownum
from sys.all_objects
) as n;
编辑:
declare @g geometry = 'LINESTRING(1 1, 2 3, 4 8, -6 3, 5 2, -4 15)';
select
geometry::STLineFromText(concat('LINESTRING(', @g.STPointN(n.rownum).STX, ' ', @g.STPointN(n.rownum).STY, ',', @g.STPointN(n.rownum+1).STX, ' ', @g.STPointN(n.rownum+1).STY, ')'), 0)
from
(
select top (@g.STNumPoints()-1) row_number() over(order by @@spid) as rownum
from sys.all_objects
) as n;
我正在寻找一种使用 MS SQL 的空间函数将 MULTILINESTRING 拆分为多个 LINESTRINGS 的方法。在我的 table 中,我有列几何结构,可以使用 .ToString () 函数轻松获取字符串值。但我正在寻找 MULTILINESTRING 分为 LINESTRINGS function。 请问您有什么想法吗?
编辑:
我还有一个问题,当我有一个很长的 LINESTRING 并且我想将它们分成几个较短的 LINE 时,就像下图可以吗?
declare @geom geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1), (-5 3, -8 -2))';
select @geom.STGeometryN(n.rownum).ToString() as Linestring
from
(
select top (@geom.STNumGeometries()) row_number() over(order by @@spid) as rownum
from sys.all_objects
) as n;
编辑:
declare @g geometry = 'LINESTRING(1 1, 2 3, 4 8, -6 3, 5 2, -4 15)';
select
geometry::STLineFromText(concat('LINESTRING(', @g.STPointN(n.rownum).STX, ' ', @g.STPointN(n.rownum).STY, ',', @g.STPointN(n.rownum+1).STX, ' ', @g.STPointN(n.rownum+1).STY, ')'), 0)
from
(
select top (@g.STNumPoints()-1) row_number() over(order by @@spid) as rownum
from sys.all_objects
) as n;