LINESTRING을 사용하여 POINTS의 결과 집합으로 변환하는 쿼리가 있습니다.결과 집합에서 2 행의 점 사이의 거리를 어떻게 계산합니까?
내가 알 수없는 것은이 결과 집합에서 2 개의 특정 행 포인트 사이의 거리를 찾는 방법입니다.
이것은 내가 지금까지 무엇을한다 : 예를 들어
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);
WITH GeographyPoints(N, Point) AS
(
SELECT 1, @GeographyToConvert.STPointN(1)
UNION ALL
SELECT N + 1, @GeographyToConvert.STPointN(N + 1)
FROM GeographyPoints GP
WHERE N < @GeographyToConvert.STNumPoints()
)
SELECT N,Point.STBuffer(0.25) as point, Point.STAsText() FROM GeographyPoints
은 어떻게 = 10 & N = 11 N 사이의 거리를 비교할 수 있는가?
이 내가 노력했다,하지만이 작동하지 않습니다
Declare @Point1 geography;
Declare @Point2 geography;
DECLARE @GeographyToConvert geography
--SET @GeometryToConvert = (select top 1 geotrack from dbo.SYNCTESTING2 where geotrack is not null);
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);
WITH GeographyPoints(N, Point) AS
(
SELECT 1, @GeographyToConvert.STPointN(1)
UNION ALL
SELECT N + 1, @GeographyToConvert.STPointN(N + 1)
FROM GeographyPoints GP
WHERE N < @GeographyToConvert.STNumPoints()
)
SELECT N,Point.STBuffer(0.25) as point, Point.STAsText() FROM GeographyPoints
select @Point1 = Point FROM GeometryPoints where N = 10;
select @Point2 = Point FROM GeometryPoints where N = 11
select @Point1.STDistance(@Point2) as [Distance in Meters]
분석 기능 (C)의 값을 변경 대체 ould는 당신을 도와줍니다. http://technet.microsoft.com/ko-kr/library/hh213234.aspx 다음 또는 이전 값을 가져올 수 있습니다. –