How to get data from MySQL table based on a junction table

I’ve been trying to tackle this problem but couldn’t do it properly, any help is really appreciated.

This is the Distance calculation query based on latitude, longitude and distance in KMs

SELECT *
FROM (
         SELECT *,
                (
                        ((acos(sin((27.6677608 * pi() / 180)) * sin((activities.latitude * pi() / 180)) +
                               cos((27.6677608 * pi() / 180)) * cos((activities.latitude * pi() / 180)) *
                               cos(((68.8543843 - activities.longitude) * pi() / 180)))) * 180 / pi()) * 60 *
                        1.1515 * 1.609344
                    )
                    as distance
         FROM `activities`
         WHERE is_public = true
           AND (
                     DATEDIFF(end_time, start_time) > 0
                 OR
                     TIME_TO_SEC(TIMEDIFF(TIME(end_time), TIME(start_time))) > 10
             )
     ) markers
WHERE distance <= 22

This is the activity related table ER diagram
enter image description here

Now what i have been trying to do is that the user provides latitude, longitude and distance from which i calculate activities within the distance, lat/longs provided by the user.

PROBLEM => problem is that i want to get activities which are not only close to user’s lat/long and distance but also matching certain interest_id from activity_interests table.

SCENARIO => for instance, i provide these details as payload

{
    "latitude": "27.6677608",
    "longitude": "68.8543843",
    "distance": 7,
    "interests": (1,2,3)
}

Now i want Activities which have all above payload Interest ids present in the Activity_interests table and still do the distance calculation for which i have provided the above SQL query.

MySQL version 8.0 is used

Thank you, and i hope i explained it well.