status

location
Washington, DC
Subscribe to GeoRSS Subscribe to KML


GeoCommons Open-Sourced Geocoder

Published in Neogeography, Open-Source, OpenStreetMap  |  10 Comments


200907101730.jpgAt State of the Map today in Amsterdam I announced that we were open-sourcing our geocoder. You can get the LGPL-licensed code on GitHub and also check out my lightning talk presentation announcement on Slideshare.

The geocoder was built as part of our FGDC CAP Grant to help GeoEnable Government Tabular Data and utilizes the free and open TIGER/Line street data as well as various address parsing and metaphone components for US level address parsing. Also, not everyone can call to a web-service, abide by the terms of service, or be limited by the speed and amount of geocoding queries.

The reason we’re open-sourcing it because primarily an open-source geocoder has been a sorely missing piece of the open-source geospatial stack. You have storage, analysis, rendering, geolocation, and even routing – but not geocoding, at least not in an active project way. GeoCoder::US has been around for a long-time and well built, in Perl, and despite it’s long-standing solid service at geocoder.us, it didn’t fit our needs.

So instead we worked closely with Schuyler Erle, one of the original developers of GeoCoder::US, to rebuild it in a modular way (in fact he finished it once and promptly rebuilt it again), and also in a popular, modern language, Ruby(that we happen to use as well).

We’re also hoping to engage the community in building out the Geocoder. Right now it has components for the United States – but we hope that others will add components for their countries. OpenStreetMap is coming along very well with adding both ranged, and even parcel level, address data. So a good first task would be to build out an OpenStreetMap data importer.

Feel free to check out the code on GitHub – fork it, let us know what you’re working on, any issues you run into, and how we can make the best, and open-source, geocoder out there. Look forward to more detailed posts on how we built it and how we’re using it in GeoCommons and GeoIQ.

Similar Posts


Responses

  1. Nino Walker says:

    July 12th, 2009 at 6:03 pm (#)

    Sounds great. Would love to hear more of the technical details: Any benchmarks to date; performance comparisons to the Perl Geocoder, Portfolio Explorer(http://www.extendthereach.com/products/PortfolioExplorer.srct), …? Compilation time? DB sizes?

  2. gisgraphy says:

    July 20th, 2009 at 8:01 am (#)

    Hi i currently develop an opensource framework for worldwide geocoding, strretsearch, find nearby, an postal code search. it consist of some full integrated webservices (fulltext, find nearby, geocoding, etc ) and an importer for geonames.org and openstreetmap. the geonames importer and webservices is up since january, the openstreetmap is in beta state. i am currently alone on the project

    webservices can output a lot of language : python ,ruby, php, XML, JSON, Atom,GEORSS

    i hope to put a stable release in one or two month.

    you can see a demo at services.gisgraphy.com (only geonames data for the moment, openstreetmap will come soon)

  3. Andrew says:

    July 24th, 2009 at 12:30 pm (#)

    @gisgraphy – yes, I’ve looked at the framework and it’s very interesting. It would be great to see how we can all work together to share ideas, code, and successes.

  4. gisgraphy says:

    July 24th, 2009 at 1:00 pm (#)

    Hi

    the V2 with openstreetmap database importer and webservice will be online in one or two week, feel free to contact me. it will be a pleasure to work with highearthorbit.com

  5. Madhav says:

    August 20th, 2009 at 3:03 am (#)

    This is awesome. I have been looking for this for a very long time. Have talked to multiple geocoding vendors in the USA and I must say these vendors are living in dark ages in terms of sharing/selling geodata. One says its $0.01 per geocode, other says no caching, yet another says use only the webservice, and license it only through VARs, no yearly payment means no use of previously geocoded data etc.

  6. darkness says:

    September 2nd, 2009 at 11:42 pm (#)

    This is great… but data is still my #1 problem. TIGER seems to be infrequently updated. Our users seem to expect better.

    As long as we’re throwing around stimulus money, maybe we should put some into funding frequent updating of some public address data.

  7. Andrew Turner says:

    September 3rd, 2009 at 9:05 am (#)

    @darkness – yes Data has been a problem, which led to a “chicken & egg” problem with building a better open-source geocoder. Our geocoder can import TIGER data or NAVTEQ data – for people that have licensed the commercial data.

    In the future, we’re working with OpenStreetMap to build out addresses in that open database.

    And lastly – US Census is about to release an updated TIGER that purportedly has very improved quality. Updates actually have been coming out every year or so I believe.

  8. Ben says:

    September 6th, 2009 at 2:45 am (#)

    Hi Andrew,

    This is great news! I actually just released (beta) an IP address geocoder – it will do batches directly on the website, and there’s an API for (single) remote requests. I couldn’t find what I needed, so I created one. Hoping to fill a hole.

    batchiplocator.webatu.com

    Cheers

  9. gisgraphy says:

    September 30th, 2009 at 5:27 pm (#)

    Hi

    just a little note to announce that gisgraphy geocoder beta is out

    http://services.gisgraphy.com to see it in action
    http://www.gisgraphy.com to download and install and more…
    http://www.gisgraphy.com/feedback/ to send feedback and request

    all (data and framework) is opensource and free

    gisgraphy

  10. Sunil says:

    December 29th, 2010 at 3:20 am (#)

    Hi,

    Thanks for the efforts.

    I am using gisgraphy geocoder services with Openstreet map data.
    Presently i have all the data dump in my local postgres database.
    i want to implement routing services based on openstreet map data.
    Apart from that I have implemented map with all the features using OpenLayers. Could you please comment on any framework or tool so that i use the data for routing.

    Awaiting for your response.

    Thanks,
    Sunil