public function finalBearing()
{
Ellipsoid::checkCoordinatesEllipsoid($this->from, $this->to);
$latA = deg2rad($this->to->getLatitude());
$latB = deg2rad($this->from->getLatitude());
$dLng = deg2rad($this->from->getLongitude() - $this->to->getLongitude());
$y = sin($dLng) * cos($latB);
$x = cos($latA) * sin($latB) - sin($latA) * cos($latB) * cos($dLng);
return (double) ((rad2deg(atan2($y, $x)) + 360) % 360 + 180) % 360;
}