You can do this with a Location widget that returns the location of the learner. The data provided by the widget includes city, region or state, country, and zip or postal code.