Thanks for the input so far!
I am currently implementing this as a WFS (Web Feature Service) geocoder for the purpose of using your own data for geocoding. See http://en.wikipedia.org/wiki/Web_Feature_Service
If you have your own geographic data of your region (grouped in "layers" such as roads, cities etc) in a well-known data format (for example shapefiles) you can make it web accessible through a WFS. GpsGate Server can then use the WFS for reverse geocoding when doing reports etc.
You can set up your own WFS by using for example GeoServer. For data formats that can be published through GeoServer, see
When setting up a WFS, you specify which layers of data that are published. To be able to use it with GpsGate Server, your data will have to be mapped to the GpsGate "Location" object, so configuring the WFS geocoder will involve mapping your own data columns to the GpsGate Location object.
It will be possible to reverse geocode (a coordinate pair to an address) multiple layers. If you reverse geocode a position that overlaps both a city and a road in two different layers, that data could be mapped to a StreetName and a CityName. The StreetName and CityName could then show up as the address in a report for the vehicle that was on that position.
Geocoding the other way (an address to a coordinate pair) is not as ready yet. As a first approach I am thinking that you would specify a single layer (for example cities) for which you can send a geocoding request. Also, getting a single coordinate out of a layer that has polygon shape would probably meen getting the center coordinates of that polygon.
How does this sound? What would be usable to you?