I'm trying to set up a view with a search field to find nearby 'points of interest' nodes. These nodes have locations, but not all are associated with a town content type (which also has location)

I would like the search field to be text (or possibly dropdown) referring to the town and its geolocation. So I realise some kind of referenced entity is required, but there is no direct relationship between point of interest nodes and town nodes.

I can get this to work via a url (using a bit of PHP and contextual filter), but I'd like this to work via input from an exposed filter.

I have previously created a custom module to do this sort of thing but would prefer to try and stick to views this time.
Any ideas.

Thanks,
Chris