def destination(self, point, bearing, distance=None):
        """
        TODO docs.
        """
        point = Point(point)
        lat1 = point.latitude
        lon1 = point.longitude
        azi1 = bearing

        if distance is None:
            distance = self
        if isinstance(distance, Distance):
            distance = distance.kilometers

        if not (isinstance(self.geod, Geodesic) and
                self.geod.a == self.ELLIPSOID[0] and
                self.geod.f == self.ELLIPSOID[2]):
            self.geod = Geodesic(self.ELLIPSOID[0], self.ELLIPSOID[2])

        r = self.geod.Direct(lat1, lon1, azi1, distance,
                             Geodesic.LATITUDE | Geodesic.LONGITUDE)

        return Point(r['lat2'], r['lon2'])
def destination ( self , point , bearing , distance = None ) : point = Point ( point ) lat1 = point . latitude lon1 = point . longitude azi1 = bearing if distance is None : distance = self if isinstance ( distance , Distance ) : distance = distance . kilometers if not ( isinstance ( self . geod , Geodesic ) and self . geod . a == self . ELLIPSOID [ 0 ] and self . geod . f == self . ELLIPSOID [ 2 ] ) : self . geod = Geodesic ( self . ELLIPSOID [ 0 ] , self . ELLIPSOID [ 2 ] ) r = self . geod . Direct ( lat1 , lon1 , azi1 , distance , Geodesic . LATITUDE | Geodesic . LONGITUDE ) return Point ( r [ 'lat2' ] , r [ 'lon2' ] )
TODO docs.