-3
列に複数のポイントを持つ地理的なライン文字列の順序を通常(緯度、経度)に戻すにはどうすればよいですか?SQL Serverの経度/緯度の逆転方法は?
列に複数のポイントを持つ地理的なライン文字列の順序を通常(緯度、経度)に戻すにはどうすればよいですか?SQL Serverの経度/緯度の逆転方法は?
あなたは数字のテーブルを持っていると仮定すると、あなたはこれを行うことができます。私が今までに書いた中で最もエレガントなものではありませんが、それは仕事を終わらせます。
DECLARE @g GEOGRAPHY, @g_new GEOGRAPHY, @t VARCHAR(200);
SET @g = geography::STLineFromText('LINESTRING (2 1,4 3)', 4236);
SELECT @g.ToString();
WITH cte AS (
SELECT [n] ,
@g.[STPointN]([n]) AS [point]
FROM [Util].[dbo].[Numbers] AS [n]
WHERE [n] <= @g.[STNumPoints]()
)
SELECT @t = CONCAT('LINESTRING(',
STUFF((
SELECT CONCAT(',', [cte].[point].Lat, ' ', [cte].[point].Long)
FROM [cte]
ORDER BY n
FOR XML PATH('')
),1, 1, ''),
')'
);
SET @g_new = GEOGRAPHY::STGeomFromText(@t, @g.[STSrid]);
SELECT @g_new.ToString();
SQLを表示するには、画像へのリンクを使用しないでください。あなたの質問にテキストとして含めるだけです。 – sstan