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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |