GEOMETRYタイプでSTDistanceを使用するときに答えを探してここに到着する人々をカバーするために、結果は「座標値自体と同じ測定単位で表されます」(「SQLServer 2008で空間を開始する」から)WGS84/SRIDの場合4326データは度単位です。
次のSQLは、SQL Server2008R2以降で実行する必要があります。(エジンバラウェイバリー駅とロンドンチャリングクロス駅のビングマップの位置データのソース):
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;
GEOMETRYタイプを使用した最初の3行の結果は次のとおりです。
STDistance Geom: 5.39881707506376、ピタゴラスからの距離: 5.39881707506376
GEOGRAPHYタイプの結果は次のとおりです。
STDistance Geog: 534226.761544321、マイルに換算: 331.953119745885
変換を使用したGEOGRAPHY計算からの「331マイル」程度は、2点間の距離としてBingマップに表示されているものとうまく結びついています(これは明らかに何の証拠でもありませんが、同様の基礎となる計算を示唆しています)。
GEOMETRY計算によって出力された数値は、結果が度単位で非常に明確であることを示しており、値は明らかにピタゴラスを使用して計算されています(ポイントとポリゴンの間の距離を取得すると、基礎となる計算はより複雑になります)。