Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have some shapfile data and we have export them to the mysql table.

The table have these columns:

id name description fulladdress code lng lat ...

Now I wonder if it is possible to create a geocoding/reverse geocoding service based on these data?

If yes, what jobs will to be done?

share|improve this question
Answered here:… – pastephens Aug 6 '13 at 0:20
Is this shapefile of roads, or of point locations? – Devdatta Tengshe Aug 6 '13 at 2:55
The shapefile contains point of locations(poi), roads and polygons. – giser Aug 7 '13 at 7:47

I'm assuming that like most of your other questions, you are more interested in programatically doing this from scratch, instead of doing this in any specific program.
Geocoding & reverse Geocoding is multi-stage process.

  • First you need to know What kind of addresses will be entered by the User. For large parts of the US, just the ZIPCODE, StreetName & House Number might be enough. To give Options to the users, you could also allow users to enter state & city/town instead of the zipcode. If you want to geocode street corners, the user might enter two street names. The address scheme in Japan is totally different. The Address scheme might be totally different in Europe. Based on all this you need to make sure that the required information is present in your data, and you need to index those fields in a standardized way .

  • Now you need logic for standardizing the User Input. You need to be able to handle Maple Street & Maple St. Your engine needs to understand the First Avenue is the same as 1st Ave. You will also have to take care of prefixes, and suffixes in the address. You'll have take care of spelling errors.

  • Once you have standardized the input, you need to match it with your index. Chances of getting a 100% match are every low. So you need some kind of fuzzy logic to figure out what you consider a match.

Reverse Geocoding is much easier, since you just need to interpolate the location, on the closest matching point, and then figure out the address based on it.

I remember using the Geocoding Developer Kit available from ESRI. It had a nice pdf which described the internals of the geocoding engine. You could go through it for some pointers.

You could also go through the code of some open source geocoding engines to understand how they do it.

share|improve this answer
How about the licence of the GDK? Does it support the linux? – giser Aug 7 '13 at 7:51
since you just need to interpolate the location, on the closest matching point, and then figure out the address based on itI Know this, but we have to consider the effenction(the response speed). So I wonder if there is any tools we can use. – giser Aug 7 '13 at 7:52
@giser: The GDK was meant to be used with ArcGIS desktop/mapobjects, and had the usual ESRI license. I don't think it will support Linux. There are several Open-source projects such as JGeoCoder, gisgraphy whose source code you could have a look at. – Devdatta Tengshe Aug 7 '13 at 8:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.