def route_localisations(route_event, time_limit, topology):
    """
    Return the localisations and timestamps of the given event route.

    :param route_event: RouteEvent
    :param time_limit: time limit of the simulation
    :param topology: Topology object corresponding to the route used
    :return: tuple of lists, localisations and timestamps
    """
    route = route_event.data["route"]
    durations = route_event.data["time"]

    current_time = route_event.timestamp

    localisations = []
    timestamps = []

    for i in range(len(route)):

        # compute current time
        current_time += durations[i]

        # we stop at simulation time limit
        if current_time > time_limit:
            break

        # append the localisation and time data
        if isinstance(route[i], tuple):
            localisations.append(route[i])
        else:
            localisations.append(topology.position_localisation(route[i]))

        timestamps.append(current_time)

    return localisations, timestamps