Solo para cubrir a las personas que llegan aquí buscando la respuesta al usar STDistance con tipos de GEOMETRÍA, el resultado es "expresado en la misma unidad de medida que los valores de coordenadas mismos" (de 'Beginning Spatial with SQL Server 2008') que para datos WGS84/SRID 4326 está en grados
El siguiente SQL debe ejecutarse en SQL Server 2008 R2 y posteriores. (Fuente de datos de ubicación de Edinburgh Waverley y London Charing Cross estaciones bing maps):
DECLARE @edinGeom GEOMETRY = GEOMETRY::STGeomFromText('POINT(-3.1917 55.9517)', 4326)
DECLARE @cxGeom GEOMETRY = GEOMETRY::STGeomFromText('POINT(-0.1252 51.5083)', 4326)
SELECT @edinGeom.STDistance(@cxGeom), sqrt(square(3.1917-0.1252) + square(55.9517-51.5083)) AS 'Distance from Pythagoras';
DECLARE @MetersPerMile FLOAT = 1609.344;
DECLARE @edinGeog GEOGRAPHY = GEOGRAPHY::STGeomFromText('POINT(-3.1917 55.9517)', 4326)
DECLARE @cxGeog GEOGRAPHY = GEOGRAPHY::STGeomFromText('POINT(-0.1252 51.5083)', 4326)
SELECT @edinGeog.STDistance(@cxGeog), @edinGeog.STDistance(@cxGeog)/@MetersPerMile;
Los resultados para la primera 3 líneas utilizando los tipos de geometría son:
STDistance Geom: 5.39881707506376, Distancia desde Pitágoras: 5,39881707506376
Los resultados para los tipos de la geografía son:
STDistance Geog: 534226,761544321, Antiguo a Miles: 331.953119745885
Las '331 millas' más o menos de GEOGRAPHY calcul ación con conversión se relaciona muy bien con la que se muestra en los mapas de Bing como la distancia entre dos puntos (claramente esto no es una prueba de nada, pero sugiere cálculos subyacentes similares).
Esperamos que los números generados por el cálculo de GEOMETRÍA demuestren que el resultado es muy claro en grados, con el valor aparentemente calculado usando pythagoras (los cálculos subyacentes serían más complejos si obtuviéramos la distancia entre puntos y polígonos).