Я намагаюся розрахувати відстань між двома положеннями на карті. Я зберігав у своїх даних: довготу, широту, 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
Хтось міг допомогти мені з моїм кодом, я не проти, якщо ви хочете виправити те, що я вже маю, якщо у вас є новий спосіб досягнення цього, що було б чудово.
Будь ласка, вкажіть, в якій одиниці виміру знаходяться ваші результати.