WP_Query for posts that have postmeta assigned to a taxonomy

So I found the solution after tons of searching from the events calendar’s website and modified it to suit my needs. The code is as shown below: (Note I also removed the array to string conversion since it’s pretty pointless.)

<?php
    // Support for multiple locations to be filtered.
    $request_cities = array_map(function($item){return utf8_decode(urldecode($item));}, explode('+', $_REQUEST['city']));
    $request_states = array_map(function($item){return utf8_decode(urldecode($item));}, explode('+', $_REQUEST['state']));
    $request_countries = array_map(function($item){return utf8_decode(urldecode($item));}, explode('+', $_REQUEST['country']));

    //Retrieve venues that match query criteria
    $args = [
        'nopaging' => true,
        'post_type' => 'tribe_venue',
        'meta_query' => [
            [
                'key' => '_VenueCity',
                'value' => $request_cities,
                'compare' => 'IN',
            ], [
                    'key' => '_VenueState',
                    'value' => $request_states,
                    'compare' => 'IN',
            ], [
                    'key' => '_VenueCountry',
                    'value' => $request_countries,
                    'compare' => 'IN',
            ],
            'relation' => 'AND'
        ]
    ];
    $venues = get_posts($args);
    $venue_ids = wp_list_pluck($venues, 'ID');
    wp_reset_postdata();

    $event_args[] = [
        'meta_query' => [
            [
                'key' => '_EventVenueID',
                'value' => $venue_ids,
                'compare' => 'IN',
            ]
        ],
        'paged' => $paged
    ];
    $events = tribe_get_events($event_args);
?>

Source: https://theeventscalendar.com/support/forums/topic/events-list-with-filter-by-venue-in-custom-template/#post-1290489