从T-SQL中的点创建地理折线

g2s*_*ver 5 t-sql sql-server geospatial

我有一个表架构,如下所示:

CREATE TABLE [dbo].[LongAndLats](
[Longitude] [decimal](9, 6) NULL,
[Latitude] [decimal](9, 6) NULL,
[SortOrder] [int] NULL
)
Run Code Online (Sandbox Code Playgroud)

示例数据如下所示:

在此处输入图片说明

如何使用TSQL将这些点转换为地理折线?

g2s*_*ver 5

试试这个:(注意:点的顺序对于正确生成线很重要。)

DECLARE @BuildString NVARCHAR(MAX)
SELECT @BuildString = COALESCE(@BuildString + ',', '') + CAST([Longitude] AS NVARCHAR(50)) + ' ' + CAST([Latitude] AS NVARCHAR(50))
FROM dbo.LongAndLats
ORDER BY SortOrder             

SET @BuildString = 'LINESTRING(' + @BuildString + ')';   
DECLARE @LineFromPoints geography = geography::STLineFromText(@BuildString, 4326);
SELECT @LineFromPoints
Run Code Online (Sandbox Code Playgroud)