We have some shapefile data and we have export to them to a 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?


1 Answer 1


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.

  • How about the licence of the GDK? Does it support the linux?
    – giser
    Commented Aug 7, 2013 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
    Commented Aug 7, 2013 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. Commented Aug 7, 2013 at 8:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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