Расчет расстояния между двумя точками (широта, долгота)

Я пытаюсь рассчитать расстояние между двумя позициями на карте. Я сохранил в своих данных: долгота, широта, X POS, Y POS.

Ранее я использовал фрагмент ниже.

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

Я неОднако, не доверяя полученным данным, кажется, что они дают немного неточные результаты.

Некоторые образцы данных на случай, если вам это нужно

Latitude        Longitude     Distance 
53.429108       -2.500953     85.2981833133896

Кто-нибудь может мне помочь с моим кодом, я нене возражаете, если вы хотите исправить то, что у меня уже есть, если у вас есть новый способ достижения этого, это было бы здорово.

Пожалуйста, укажите, в какой единице измерения находятся ваши результаты.

Ответы на вопрос(6)

Ваш ответ на вопрос