public function exactDistanceSLCFrom(LatLng $coord, $unit = UnitsType::KILOMETERS)
    {
        $lat1 = $this->getLat();
        $lat2 = $coord->getLat();
        $lon1 = $this->getLng();
        $lon2 = $coord->getLng();

        $theta = $lon1 - $lon2;
        $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(
                deg2rad($theta)
            );
        $dist = acos($dist);
        $dist = rad2deg($dist);
        $miles = $dist * 60 * 1.1515;

        switch ($unit) {
            case UnitsType::KILOMETERS:
                $distance = $miles * 1.609344;
                break;
            case UnitsType::NAUTIC_MILES:
                $distance = $miles * 0.8684;
                break;
            case UnitsType::MILES:
            default:
                $distance = $miles;
        }
        return $distance;
    }
public function exactDistanceSLCFrom(LatLng $coord, $unit = UnitsType::KILOMETERS)
    {
        $lat1 = $this->getLat();
        $lat2 = $coord->getLat();
        $lon1 = $this->getLng();
        $lon2 = $coord->getLng();

        $theta = $lon1 - $lon2;
        $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(
                deg2rad($theta)
            );
        $dist = acos($dist);
        $dist = rad2deg($dist);
        $miles = $dist * 60 * 1.1515;

        switch ($unit) {
            case UnitsType::KILOMETERS:
                $distance = $miles * 1.609344;
                break;
            case UnitsType::NAUTIC_MILES:
                $distance = $miles * 0.8684;
                break;
            case UnitsType::MILES:
            default:
                $distance = $miles;
        }
        return $distance;
    }
public function exactDistanceSLCFrom ( LatLng $ coord , $ unit = UnitsType :: KILOMETERS ) { $ lat1 = $ this -> getLat ( ) ; $ lat2 = $ coord -> getLat ( ) ; $ lon1 = $ this -> getLng ( ) ; $ lon2 = $ coord -> getLng ( ) ; $ theta = $ lon1 - $ lon2 ; $ dist = sin ( deg2rad ( $ lat1 ) ) * sin ( deg2rad ( $ lat2 ) ) + cos ( deg2rad ( $ lat1 ) ) * cos ( deg2rad ( $ lat2 ) ) * cos ( deg2rad ( $ theta ) ) ; $ dist = acos ( $ dist ) ; $ dist = rad2deg ( $ dist ) ; $ miles = $ dist * 60 * 1.1515 ; switch ( $ unit ) { case UnitsType :: KILOMETERS : $ distance = $ miles * 1.609344 ; break ; case UnitsType :: NAUTIC_MILES : $ distance = $ miles * 0.8684 ; break ; case UnitsType :: MILES : default : $ distance = $ miles ; } return $ distance ; }
Exact distance with spherical law of cosines

@param LatLng $coord
@param string $unit the unit to return

@return float
@see http://www.geodatasource.com/developers/php
Exact distance with spherical law of cosines