def tile_coords_to_bbox(cls, x, y, zoom):
        """
        Calculates the lon/lat estrema of the bounding box corresponding to specific tile coordinates. Output coodinates
        are in degrees and in the Mercator Projection (http://en.wikipedia.org/wiki/Mercator_projection)

        :param x: the x tile coordinates
        :param y: the y tile coordinates
        :param zoom: the zoom level
        :return: tuple with (lon_left, lat_bottom, lon_right, lat_top)
        """
        def tile_to_geocoords(x, y, zoom):
            n = 2. ** zoom
            lon = x / n * 360. - 180.
            lat = math.degrees(math.atan(math.sinh(math.pi * (1 - 2 * y / n))))
            return lat, lon
        north_west_corner =  tile_to_geocoords(x, y, zoom)
        south_east_corner = tile_to_geocoords(x+1, y+1, zoom)
        return north_west_corner[1], south_east_corner[0], south_east_corner[1], north_west_corner[0]
Calculates the lon/lat estrema of the bounding box corresponding to specific tile coordinates. Output coodinates
        are in degrees and in the Mercator Projection (http://en.wikipedia.org/wiki/Mercator_projection)

        :param x: the x tile coordinates
        :param y: the y tile coordinates
        :param zoom: the zoom level
        :return: tuple with (lon_left, lat_bottom, lon_right, lat_top)