promise based wrapper for geolocation service