Estoy tratando de calcular la distancia entre dos posiciones en un mapa. Tengo almacenados en mis datos: Longitud, Latitud, X POS, Y POS.
Anteriormente he estado usando el siguiente fragmento.
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
Sin embargo, no confío en los datos que surgen de esto, parece dar resultados ligeramente inexactos.
Algunos datos de muestra en caso de que los necesite
Latitude Longitude Distance
53.429108 -2.500953 85.2981833133896
¿Alguien podría ayudarme con mi código? No me importa si quieres arreglar lo que ya tengo si tienes una nueva forma de lograrlo que sería genial.
Indique en qué unidad de medida se encuentran sus resultados.