This uses IP Address based geocoding. It's not the most accurate but for something coarse like this it should be fine. Though users behind proxies or VPNs might not have an ideal experience.
To get more accurate we should use HTML5 geolocation. In order to make use of that we'd need to make an AJAX request for the venues and render them with javascript, preferably with a front end framework.
This uses IP Address based geocoding. It's not the most accurate but for something coarse like this it should be fine. Though users behind proxies or VPNs might not have an ideal experience.
To get more accurate we should use HTML5 geolocation. In order to make use of that we'd need to make an AJAX request for the venues and render them with javascript, preferably with a front end framework.