I Abstand zwischen zwei lat lange Werte in Metern am Berechnung - 40,1844441 -77,2252771 und
40,319166 -76,7880552SQL Server GEOGRAPHY STDistance Funktion zurückkehrt großen Unterschied als andere Testergebnisse
testete ich den Abstand zwischen diesen beiden Punkte in unter zwei Websites - http://www.nhc.noaa.gov/gccalc.shtml und http://www.movable-type.co.uk/scripts/latlong.html
Beide Websites liefern etwa 40014 Meter.
Also verwende ich den GEOGRAPHY-Datentyp von SQL Server, um den Abstand zwischen diesen beiden Punkten erneut zu berechnen, und es gibt 48927 Meter zurück. Es ist ein großer Unterschied für mich.
Unten ist mein Code und jeder Vorschlag wird geschätzt.
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: ich habe Sie UDFGE bestätigen O Ergebnis ist korrekt zu 12 signifikanten Zahlen, basierend auf der Erde als eine Kugel mit Radius 6371008,8 Meter. –
@JohnMachin Danke für den zusätzlichen Aufwand und Bestätigung –
@JohnCappelletti - danke. Ich bestätigte auch mit "Sphärisches Gesetz der Kosinus", die genau das ist, was Sie berechnet haben und es gibt 40014.8833526855 Meter zurück. Ja. Ich benutzte den Radius der Welt als 6371008.8. – Shwe