首页 > 数据库 > mysql教程 > SQL Server如何准确计算两个经纬度点之间的距离?

SQL Server如何准确计算两个经纬度点之间的距离?

Mary-Kate Olsen
发布: 2025-01-12 13:08:45
原创
819 人浏览过

How Can SQL Server Accurately Calculate the Distance Between Two Latitude/Longitude Points?

在 SQL Server 中精确计算地理点之间的距离

地图坐标之间准确的距离计算至关重要。 虽然某些公式提供近似值,但 SQL Server 的内置功能提供卓越的精度。

利用 SQL Server 的 geography 数据类型(SQL Server 2008 及更高版本)

geography 数据类型(在 SQL Server 2008 及更高版本中可用)为计算距离提供了强大的解决方案。 方法如下:

<code class="language-sql">DECLARE @source geography = 'POINT(0 51.5)'
DECLARE @target geography = 'POINT(-3 56)'

SELECT @source.STDistance(@target)</code>
登录后复制

此查询返回以米为单位的距离。

geography 类型与现有数据集成

如果您正在使用已建立的数据库模式,则可以无缝集成 geography 类型。 Point 方法有助于实现这一点:

<code class="language-sql">DECLARE @orig_lat DECIMAL(12, 9)
DECLARE @orig_lng DECIMAL(12, 9)
SET @orig_lat=53.381538; SET @orig_lng=-1.463526;

DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326);

SELECT *,
    @orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326)) AS distance
FROM #orig dest;</code>
登录后复制

此示例保留现有数据结构,同时利用 geography 数据类型的准确性进行距离计算。

以上是SQL Server如何准确计算两个经纬度点之间的距离?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板