def intersects_byid(geoms1, geoms2):
    """
    Return a table with a row for each features of *geoms1*, containing the id
    of each *geoms2* intersecting features (almost like an intersecting matrix).

    Parameters
    ----------
    geoms1: GeoSeries or GeoDataFrame
        Collection on which the intersecting table will be based.
    geoms2: GeoSeries or GeoDataFrame
        Collection to test on intersects.

    Returns
    -------
    intersect_table: pandas.Series
        A Series with the same index id as geoms1, each row containg the ids of
        the features of geoms2 intersecting it.
    """
    return geoms1.geometry.apply(
        lambda x: [i for i in range(len(geoms2.geometry))
                   if x.intersects(geoms2.geometry[i])]
        )