5 ms·
For those looking to roll your own, the Ruby implementation of a TIGER geocoder released by GeoIQ a while back is a pretty solid starting point: https://github.
by dougmccune 13y ago
For those looking to roll your own, the Ruby implementation of a TIGER geocoder released by GeoIQ a while back is a pretty solid starting point: https://github.com/geocommons/geocoder/ https://github.com/geocommons/geocoder/
We ended up using that as a base and then making some customizations for our US-based geocoding solution. As these guys are figuring out, there's no great int'l option. Google is bad from a licensing perspective (but their tech is fantastic). MapQuest is great but can get really expensive. We've had decent luck with TomTom I think, but if I remember correctly there are a lot of caveats.
- thecodemonkey 13y agoThat's a pretty nice starting point, but unfortunately the code base hasn't been updated for years and the data import process is extremely time consuming [1]. That said, rolling your own geocoding solution is the most restriction free service you can get. Just be prepared for the maintenance and the time consuming set up. [1] https://github.com/geocommons/geocoder/wiki/Installation-Instructions-for-Ubuntu-12.04-LTS https://github.com/geocommons/geocoder/wiki/Installation-Ins...
- untog 13y agoSeconding the usefulness of that service - has worked well for me before now. Would be interested to know if this service is using it.
- chippy 13y agoIt's a very smart geocoder that one, have contributed to it - It is a bit old now and not that easy to get started with. The state of the art of open source geocoder would be TwoFishes: https://github.com/foursquare/twofishes https://github.com/foursquare/twofishes written in Scala and developed and used by FourSquare
- dougmccune 13y agosounds like twofishes doesn't do addresses, only city names. That puts it in a different category of product.
- hncommenter13 13y agoI had the need to geocode 10s to 100s of thousands of US addresses weekly, with the ability to accept slightly-reduced accuracy vs. the parcel-level accuracy of Google Maps. I rewrote the geocommons geocoder in Java to speed up the loading and geocoding process, and wrapped a REST api around it. I used a minimal perfect hash function to map zips/streets (metaphone3'd and ngramfingerprint'd) to data stored in a key-value structure. The key-value structure is small enough to fit in memory of a decent sized EC2 instance, but I haven't tested the throughput except from a slow disk--which got me about 100-150 results/sec. The results include parsed address, lat/lng in WGS84 datum, and associated US census region info (state, county, block group, block, msa, cbsa/csa, school district, legislative district, etc.). I'd considered open sourcing it, and I was trying to architect it such that one could plug in various data sources beyond TIGER when higher-accuracy info is available (e.g., from SF's address parcels, Massachusetts has lots of E911 parcel data available, etc).