Функция расчета дистанции между GPS координатами

Простая php функция для расчета расстояния между двумя заданными gps координатами. На входе задаем координаты — ширину и долготу первой точки и ширину и долготу второй точки, на выходе получаем дистанцию в метрах.

/**
     * функция расчета дистанции между GPS координатами
     * @param $latitudeFrom
     * @param $longitudeFrom
     * @param $latitudeTo
     * @param $longitudeTo
     * @param int $earthRadius
     * @return float
     */
    public static function getDistance( $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000 )
    {
        // convert from degrees to radians
        $latFrom = deg2rad($latitudeFrom);
        $lonFrom = deg2rad($longitudeFrom);
        $latTo = deg2rad($latitudeTo);
        $lonTo = deg2rad($longitudeTo);

        $lonDelta = $lonTo - $lonFrom;
        $a = pow(cos($latTo) * sin($lonDelta), 2) +
            pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
        $b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);

        $angle = atan2(sqrt($a), $b);
        return round( $angle * $earthRadius );
    }

Пример использования — getDistance( ‘55.0148244’, ‘82.9486818’, ‘55.0143146’, ‘82.9480416’ ); // 70 метров

This entry was posted in Php, Памятка and tagged , , . Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*