小编use*_*471的帖子

SQL Server几何距离以英里计算?

  • 系统:SQL Server 2008 R2
  • 两个几何变量,SRID 4326。

返回值以STDistance度为单位,但我需要英里。另外,想象一下不是对 2 个变量进行这种计算,而是对具有 1000 行的表中的几何列进行这种计算。最快的解决方案是什么?SQL Server 2012、2014、2016...有内置的东西吗?

--Geometry
DECLARE @Point2m geometry = geometry::STGeomFromText('POINT(-80.23 26.2)', 4326),
@Point3m geometry = geometry::STGeomFromText('POINT(-80.229999999515712 26.193699999712408)', 4326)

SELECT @Point2m.STDistance(@Point3m) /* degrees */
GO

--Geography, for comparison
DECLARE @Point2g geography = geography::STGeomFromText('POINT(-80.23 26.2)', 4326),
@Point3g geography = geography::STGeomFromText('POINT(-80.229999999515712 26.193699999712408)', 4326)

SELECT @Point2g.STDistance(@Point3g) / 1609.344 /*meters to miles*/
GO
Run Code Online (Sandbox Code Playgroud)

sql geometry distance spatial sql-server-2008-r2

5
推荐指数
1
解决办法
7614
查看次数

标签 统计

distance ×1

geometry ×1

spatial ×1

sql ×1

sql-server-2008-r2 ×1