Ich versuche, die Entfernung zwischen zwei Positionen auf einer Karte zu berechnen. Ich habe in meinen Daten gespeichert: Längengrad, Breitengrad, X POS, Y POS.
Ich habe zuvor das folgende Snippet verwendet.
DECLARE @orig_lat DECIMAL
DECLARE @orig_lng DECIMAL
SET @orig_lat=53.381538 set @orig_lng=-1.463526
SELECT *,
3956 * 2 * ASIN(
SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2)
+ COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180)
* POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) ))
AS distance
--INTO #includeDistances
FROM #orig dest
Ich vertraue jedoch nicht den Daten, die daraus hervorgehen, es scheint etwas ungenaue Ergebnisse zu liefern.
Einige Beispieldaten für den Fall, dass Sie sie benötigen
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
Könnte mir jemand mit meinem Code helfen, es macht mir nichts aus, wenn Sie das reparieren möchten, was ich bereits habe, wenn Sie einen neuen Weg haben, dies zu erreichen, der großartig wäre.
Bitte geben Sie an, in welcher Maßeinheit sich Ihre Ergebnisse befinden.