J'essaye de calculer la distance entre deux positions sur une carte. J'ai stocké dans mes données: Longitude, Latitude, X POS, Y POS.
J'ai déjà utilisé l'extrait ci-dessous.
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
Cependant, je ne fais pas confiance aux données qui en découlent, cela semble donner des résultats légèrement inexacts.
Quelques exemples de données au cas où vous en auriez besoin
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
Quelqu'un pourrait-il m'aider avec mon code, cela ne me dérange pas si vous voulez réparer ce que j'ai déjà si vous avez une nouvelle façon d'y parvenir, ce serait génial.
Veuillez indiquer dans quelle unité de mesure se trouvent vos résultats.