Как вычислить формулу Хаверсина в ColdFusion

Я не могу найти никаких примеров в CF формулы Хаверсина (формула для вычисления расстояний между двумя точками на сфере по их долготе и широте).

В Википеде есть примеры на других языках (http://en.wikipedia.org/wiki/Haversine_formula), но их нет в CF.

Интерпретация в CF приведена ниже другим разработчиком, внутренним и не полностью протестированным. Мне интересно посмотреть, как другие рассчитали это в CF. Мне также было бы интересно узнать мнение о том, как можно упростить приведенный ниже пример.

var variables.intEarthRadius = 6371;    // in km

var local.decRadius = arguments.radius / 1000;  // convert radius given in metres to kilometres

var local.latMax = arguments.latitude + degree(local.decRadius / variables.intEarthRadius);
var local.latMin = arguments.latitude - degree(local.decRadius / variables.intEarthRadius);

var local.lngMax = arguments.longitude + degree(local.decRadius / variables.intEarthRadius / cos(radian(arguments.latitude)));
var local.lngMin = arguments.longitude - degree(local.decRadius / variables.intEarthRadius / cos(radian(arguments.latitude)));





private numeric function degree(required numeric radian) hint="I convert radians to degrees." {
        return arguments.radian * 180 / pi();
    }

    private numeric function radian(required numeric degrees) hint="I convert degrees to radians."  {
        return arguments.degrees * pi() / 180;
    }
5
задан Prometheus 11 July 2011 в 09:17
поделиться