- 系统:SQL Server 2008 R2
- 有两个几何变量,SRID 4326。
STDistance
函数返回的值为度数,但我需要的是英里。同时,请想象一下在表格中对拥有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