public static function greatCircleDestination(\S2\S2LatLng $a, $bearing, $distance) { $cos_dist_earth = cos($distance / self::EARTH_RADIUS); $sin_dist_earth = sin($distance / self::EARTH_RADIUS); $sin_lat = sin($a->latRadians()); $cos_lat = cos($a->latRadians()); $lat = asin($sin_lat * $cos_dist_earth + $cos_lat * $sin_dist_earth * cos($bearing)); $lng = $a->lngRadians() + atan2(sin($bearing) * $sin_dist_earth * $cos_lat, $cos_dist_earth - $sin_lat * sin($lat)); return new \S2\S2LatLng($lat, $lng); }