I need some help to build a search form for a website, which should locate the nearest dealership based on either the location shared by the user (if the user is on a smartphone, then if the GPS is on the dealership/s is/are located by it, else the user has an option to enter a postcode on the webform as well, and from there locate the dealership/s).

I've seen the google APIs which do this, but need to provide the client with more options (at least 3) so that they can choose the best one, and preferably free APIs which could do this.