You can limit posting to just the group you specify. Visibility can be everyone. This would be achieved by creating a custom group or by using an existing Trust Level if you prefer. Given regular users are likely to be trustworthy and … local … using a Trust Level bar might be enough?
Consider the Locations Plugin if you want to users to record where they are. You can also tag a Topic with a location. There’s no enforcement but it may support what you are doing.
Also check out this Topic which covers similar ground: Ability to Block Discourse Access from Geographic Regions or Countries