Je calcule la distance en mètres entre les deux valeurs à long lat - 40,1844441 -77.2252771 et
40,319166 -76,7880552serveur SQL GÉOGRAPHIE fonction STDistance retourne grande différence que les autres résultats des tests
Je l'ai testé la distance entre ces deux points en dessous de deux sites Web - http://www.nhc.noaa.gov/gccalc.shtml et http://www.movable-type.co.uk/scripts/latlong.html
Ces deux sites Web retournent environ 40014 mètres. Donc, j'utilise le type de données GEOGRAPHY du serveur SQL pour calculer la distance entre ces deux points et il renvoie 48927 mètres. C'est une énorme différence pour moi.
Ci-dessous est mon code et toute suggestion est appréciée.
declare @latlong1 GEOGRAPHY
declare @latlong2 GEOGRAPHY
DECLARE @distance float
set @latlong1 = GEOGRAPHY::STGeomFromText('POINT(40.1844441 -77.2252771)', 4326)
set @latlong2 = GEOGRAPHY::STGeomFromText('POINT(40.319166 -76.7880552)', 4326)
SET @distance = @latlong1.STDistance(@latlong2)
SELECT @distance -- this returns 48927 meters
John C: Je peux confirmer UDFGE Le résultat O est correct à 12 chiffres significatifs, basés sur la terre étant une sphère de rayon 6371008.8 mètres. –
@JohnMachin Merci pour l'effort supplémentaire et la confirmation –
@JohnCappelletti - merci. J'ai également confirmé en utilisant "loi sphérique des cosinus" qui est exactement le que vous avez calculé et il renvoie 40014.8833526855 mètres. Oui. J'ai utilisé le rayon du globe comme 6371008.8. – Shwe