我发现了这段漂亮的代码,它带有一个线串,我可以从中得到要点:
DECLARE @GeographyToConvert geography
SET @GeographyToConvert = geography::STGeomFromText('LINESTRING (26.6434033 -81.7097817, 26.6435367 -81.709785, 26.6435783 -81.7098033, 26.6436067 -81.709825, 26.6435883 -81.709875, 26.64356 -81.7100417, 26.6434417 -81.710125, 26.6433167 -81.7101467, 26.643195 -81.7101033, 26.6431533 -81.7099517, 26.643175 -81.7097867, 26.643165 -81.7097917, 26.6431633 -81.7097367, 26.6431583 -81.7097083)',4326);
select @GeographyToConvert.STPointN(1)
select @GeographyToConvert.STPointN(2)
select @GeographyToConvert.STPointN(3)
退货:
0xE6100000010C273339106D6D54C073A32314B6A43A40
0xE6100000010C3F8C101E6D6D54C0984638D2BEA43A40
0xE6100000010CF205D26A6D6D54C050EA268CC1A43A40
从这里,我可以通过上面提到的代码来做我需要做的事情。
但是,我没有使用预填充的演示 Linestring,而是有一个 GPS 坐标表,其中包含我需要从中填充的数据@GeographyToConvert geography
declare @Geo table(long float, lat float)
insert into @Geo( long, lat ) values
( -121.527200, 45.712113 ),
( -121.517265, 45.714240 ),
( -121.511536, 45.714825)
Select * from @Geo
我可以请求帮助将@Geo
表格值放入@GeographyToConvert geography
您可以使用动态 SQL 构建要输入到
STGeomFromText()
. 我不认为你能够在关系上做到这一点(尽管,公平地说,这不是我的专长)。这将使您继续前进,直到(如果)出现更好的事情。这是我过去如何解决这个问题的变体。
我在@Geo 中添加了 grp 和 seq 列,以演示如何构建多条线并正确获取线中各点的顺序。seq 也可以是日期时间。
SQLFiddle不喜欢地理,但这显示了内置的线串