Geocoding using the OSM datasets with trigrams
In this recipe, you will use
OpenStreetMap streets' datasets imported in PostGIS to implement a very basic Python class in order to provide geocoding features to the class consumer. The geocode engine will be based on the implementation of the PostgreSQL trigrams provided by the contrib
module of PostgreSQL: pg_trgm
.
A trigram is a group of three consecutive characters contained in a string; it looks very effective to measure the similarity of two strings by counting the number of trigrams they have in common.
This recipe aims to be a very basic sample to implement some kind of geocoding functionalities (it will just return one or more points from a street name), but it could be extended to support more advanced features.
Getting ready
For this recipe, make sure you have the latest GDAL, at least Version 1.10, as you will use it with
ogr2ogr
the new OGR OSM driver (http://www.gdal.org/ogr/drv_osm.html):$ ogrinfo --versionGDAL 1.10dev, released...