adjustCoord(coord, altitude, bearing) {
        if (!altitude) {
            return LngLat.convert(coord);
        }

        const {map, trafficLayer} = this;

        if (!isNaN(bearing)) {
            const mCoord = MercatorCoordinate.fromLngLat(coord, altitude),
                offset = mCoord.z * Math.tan(map.getPitch() * DEGREE_TO_RADIAN),
                x = mCoord.x + offset * Math.sin(bearing * DEGREE_TO_RADIAN),
                y = mCoord.y - offset * Math.cos(bearing * DEGREE_TO_RADIAN);

            return new MercatorCoordinate(x, y, 0).toLngLat();
        }
        return map.unproject(trafficLayer.project(coord, altitude));
    }
Returns a LngLat representing geographical coordinates on the ground
that shares the same projected pixel coordinates with the specified
geographical location and altitude.
@param {LngLatLike} coord - The geographical location to adjust
@param {number} altitude - The altitude in meters of the position
@param {number} bearing - The desired bearing of the camera in degrees.
    If not specified, the coordinates will be calculated using the
    current camera projection matrix
@returns {LngLat} The adjusted LngLat.