WP_Query search by multiple meta key and distance

You can do that. There are filters available in WP_Query that enable you to modify the query just as you like. The filter posts_clauses filters all of the parts of the query together. There are also filters specific to the parts of the query too. The best way to know about them is, search posts_clauses in “wp-includes/query.php”. Just 3-4 lines before this filter should be a series of filters to filter out the full query part-by-part. The filter tags are self explanatory & you can experiment with them to see which combination works out the best for you