This can be done several ways but most all require a bit of custom coding.
Because so much of this is dependent on your setup, the high level explanation looks like this...
Send users through a geolocation gateway or set a geolocation on/off flag.
FIrst time page load: User requests page, content is geolocated and returned, cookie value is set with their location or TRUE/FALSE that they have been geolocated.
Subsequent page load: User requests same page or other page with other geo parameter, server checks for cookie, renders or does not render geo content.
Other option: Provide users an on/off button that changes cookie value to use or not use geolocation stored in cookie.
Protip: You can access geoposty data points (geozip, geostate, geocountry, etc.) though the do_shortcode function.
Hope this helps.