Sto cercando di calcolare la distanza tra due posizioni su una mappa. Ho memorizzato nei miei dati: Longitudine, Latitudine, X POS, Y POS.
Ho già utilizzato lo snippet di seguito.
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
Tuttavia non mi fido dei dati che ne derivano, sembra che stiano dando risultati leggermente imprecisi.
Alcuni dati di esempio nel caso ne avessi bisogno
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
Qualcuno potrebbe aiutarmi con il mio codice, non mi importa se vuoi aggiustare quello che ho già se hai un nuovo modo per ottenerlo sarebbe fantastico.
Indica in quale unità di misura si trovano i tuoi risultati.