Juste pour couvrir les personnes arrivant ici cherchant la réponse en utilisant les types STDistance avec GEOMETRY, le résultat est "exprimé dans la même unité de mesure que les valeurs de coordonnées elles-mêmes" (à partir de «début spatial avec SQL Server 2008») qui est en degrés pour les données WGS84/SRID 4326.
Le code SQL suivant doit être exécuté sur SQL Server 2008 R2 et ultérieur (source des données de localisation pour Edinburgh Waverley et London Charing Cross stations 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;
Les résultats pour le premier 3 lignes en utilisant les types de GEOMETRIE sont:
STDistance Geom: 5,39881707506376, Distance de Pythagore: 5,39881707506376
Les résultats pour les types GÉOGRAPHIE sont:
STDistance Geog: 534226,761544321, Converti en milles: 331.953119745885
Les '331 miles' du calcul GEOGRAPHY La conversion avec conversion correspond bien à celle montrée sur les cartes de Bing comme étant la distance entre deux points (ce n'est clairement pas une preuve de quoi que ce soit, mais cela suggère des calculs sous-jacents similaires). Les résultats obtenus par le calcul GEOMETRY montrent que le résultat est très clairement en degrés, la valeur étant apparemment calculée en utilisant pythagoras (les calculs sous-jacents seraient plus complexes si nous obtenions la distance entre les points et les polygones).