Я счетных расстояние в метрах между двумя значениями Lat Long - 40,1844441 -77.2252771 и
40,319166 -76,7880552SQL функции сервера ГЕОГРАФИЯ STDistance возвращается большая разница по сравнению с другими результатами испытаний
Я проверил расстояние между этими двумя пункты ниже двух веб-сайтов - http://www.nhc.noaa.gov/gccalc.shtml и http://www.movable-type.co.uk/scripts/latlong.html
Оба этих веб-сайта возвращают приблизительно 40014 метров.
Итак, я использую тип данных GEOGRAPHY для SQL-сервера, чтобы вычислить расстояние между этими двумя точками снова и он возвращает 48927 метров. Для меня это огромная разница.
Ниже приведен мой код, и любое предложение приветствуется.
declare @latlong1 GEOGRAPHY
declare @latlong2 GEOGRAPHY
DECLARE @distance float
set @latlong1 = GEOGRAPHY::STGeomFromText('POINT(40.1844441 -77.2252771)', 4326)
set @latlong2 = GEOGRAPHY::STGeomFromText('POINT(40.319166 -76.7880552)', 4326)
SET @distance = @latlong1.STDistance(@latlong2)
SELECT @distance -- this returns 48927 meters
John C: Я могу подтвердить свой UDFGE Результат соответствует 12 значащим цифрам, исходя из того, что земля представляет собой сферу радиуса 6371008,8 метра. –
@JohnMachin Спасибо за дополнительные усилия и подтверждение –
@JohnCappelletti - спасибо. Я также подтвердил использование «Сферического закона косинусов», которое именно вы рассчитали, и оно возвращает 40014.8833526855 метров. Да. Я использовал радиус земного шара как 6371008.8. – Shwe