Я использую расширение Netlogo gis и пытаюсь рассчитать расстояние между агентами в км. С помощью gis:envelope-of
я могу получить позиции агента в градусах (!) широты и долготы, поэтому я хочу использовать формулу Хаверсина для расчета расстояний. Проекция моего базового шейп-файла ГИС — WGS 84.
То, что я написал для двух примерных пунктов, следующее:
to haversine
let lata 31.8930795682288
let longa 36.0898369172224
let latb 31.9964498913126
let longb 36.0318329821497
let rad (pi / 180)
let result acos (cos (rad * lata) * cos(rad * (latb )) + sin ( rad * (lata) )* sin(rad * (latb)) * cos(rad * (longa - longb))) * 6371
print result
end
Это дает расстояние 11,5 км, в то время как та же формула, примененная в Excel (с использованием формулы RADIANS вместо «rad»), дает мне 12,73 км, число, которое этот веб-сайт http://www.movable-type.co.uk/scripts/latlong.html подтверждает.
Любая идея, что я делаю неправильно здесь? Заранее спасибо.