'Convert from Point object in the defined projection to a Coordinate object'

def projCoordinate(self, point, zoom=None):

    if (zoom == None):
        zoom = self.base_zoom
    if (zoom >= len(self.tile_dimensions)):
        raise TileStache.Core.KnownUnknown(('Requested    zoom    level    %d    outside    defined    resolutions.' % zoom))
    td = self.tile_dimensions[zoom]
    p = self.project(point, (1.0 / td))
    row = round(p.y)
    col = round(p.x)
    if ((abs((p.y - row)) > _grid_threshold) or (abs((p.x - col)) > _grid_threshold)):
        raise TileStache.Core.KnownUnknown(((('Point(%f,    %f)    does    not    align    with    grid    ' + 'for    zoom    level    %d    ') + '(resolution=%f,    difference:    %f,    %f).') % (point.x, point.y, zoom, self.resolutions[zoom], (p.y - row), (p.x - col))))
    c = Coordinate(int(row), int(col), zoom)
    return c
