How can I have non-exact locations on a map?
I had a similar problem, and this is how I solved it:


Add another 'location' field to you content type; call it, e.g., 'public user location'.
Build up your custom module, and in the hook_form_alter() implementation, hide the new location field, so the user cant edit it.
Now you need to get the 'non-exact' location for the first location; I do this with a Google geocode.


It's up to you to do it via JavaScript when the first location is set (the way im doing it), or to do the geolocation when the form is submitted to 'manually' add the 'non-exact' location.

If you use a geocode on the partial address, Google Geocode will give you the coordinates in the middle of the area you searched.

Please note that, for more specific geocoding, you could even use the Geonames API.

If you choose the second way (create the 'non-exact' location when the form is submitted), maybe this can help you about the location creation: Creating nodes programmatically in Drupal (including cck and location fields).

As side note, I am not using the Gmap module anymore because my needs were a bit complex and were not fit by this module; if you'll find some trouble, I recommend you building your own small module using Google API v3.

This will let you, for example, show the 'public location' in the map with a circle around, as Google Latitude does.