2坐标之间的距离

问题描述 投票:1回答:1

使用下面的SQL查询,我试图获取源坐标和目标坐标之间的距离:

DECLARE @source geography = 'POINT(42.3629 -121.3897)'
DECLARE @target geography = 'POINT(47.2921 -111.469)'
SELECT @source.STDistance(@target)

但是,出现以下错误:

> Msg 6522, Level 16, State 1, Line 55 A .NET Framework error occurred
> during execution of user-defined routine or aggregate "geography": 
> System.FormatException: 24201: 
> Latitude values must be between -90 and 90 degrees.

错误是我的纬度值超出范围,但42和47值都在此范围内。只要将经度减小到指定纬度范围内的某个值,此代码就起作用。

哪里发生了错误的转换?

sql tsql ssms coordinates distance
1个回答
2
投票

WKT格式,用于表示地理位置值,使用(X Y)坐标顺序,通常将其映射到(longitude latitude)。 MS SQL也使用此顺序,请在此处查看此格式用法的示例:https://docs.microsoft.com/en-us/sql/t-sql/spatial-geography/spatial-types-geography?view=sql-server-ver15

© www.soinside.com 2019 - 2024. All rights reserved.