加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何计算SQL Server中多个点之间的距离?

发布时间:2020-12-12 08:26:30 所属栏目:MsSql教程 来源:网络整理
导读:我有来自GPS的数据表,例如:纬度,经度,时间,UserId 如何在指定的时间范围内聚合总距离,按所有点(按时间排序)和用户分组数据对所有距离进行求和? 谢谢 解决方法 如果您使用SQL Server,您可能有兴趣使用地理数据类型,以便您可以使用专用方法和地理索引请求数据
我有来自GPS的数据表,例如:纬度,经度,时间,UserId

如何在指定的时间范围内聚合总距离,按所有点(按时间排序)和用户分组数据对所有距离进行求和?

谢谢

解决方法

如果您使用SQL Server,您可能有兴趣使用地理数据类型,以便您可以使用专用方法和地理索引请求数据库.

地理数据类型自SQL Server 2008可用,您可以在这里获得更多信息:

http://msdn.microsoft.com/en-us/library/cc280766.aspx

将数据存入地理位置列后,您将能够使用STDistance()方法计算两点之间的距离,请参阅MSDN:

http://msdn.microsoft.com/en-us/library/bb933808.aspx

以下示例使用STDistance()来计算以米为单位返回的两点之间的距离(与地理变形))(国际标准单位):

DECLARE @pointA geography;
DECLARE @pointB geography;
SET @pointA = geography::STGeomFromText('POINT(-122.34900 50)',4326);
SET @pointB = geography::STGeomFromText('POINT(-122.34900 47.65100)',4326);
SELECT @pointA.STDistance(@pointB);

如果您使用SQL Server 2005(或者如果您想避免使用地理数据类型),可以查看CodePlex上的MsSQLSpatial项目,可以在这里找到:http://mssqlspatial.codeplex.com/wikipage?title=Features&referringTitle=Home

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读