How do machines understand what place you're talking about when you say the name of a city, a street or a neighborhood? With geocoding technology, that's how. Every location-based service available uses a geocoder to translate the name of a place into a location on a map. But there isn't a really good, big, stable, public domain geocoder available on the market.
Steve Coast, the man who lead the creation of Open Street Map, has launched a new project to create what he believes is just what the world of location-based services needs in order to grow to meet its potential. It's called OpenGeocoder and it's not like other systems that translate and normalize data.
Google Maps says you can only use its geocoder to display data on maps but sometimes developers want to use geo data for other purposes, like content filtering. Yahoo has great geocoding technology but no one trusts it will be around for long. Open Street Map (OSM) is under a particular Creative Commons license and "exists for the ideological minority," says Coast himself in a Tweet this week. And so Coast, who now works at Microsoft, has decided to solve the problem himself.
This has been tried before, see for example GeoCommons, but the OpenGeocoder approach is different. It is, as one geo hacker put it, "either madness or genius."
The way OpenGeocoder works is that users can search for any place they like, by any name they like. If the site knows where that place is, it will be shown on a big Bing map. If it doesn't, then the user is encouraged to draw that place on the map themselves and save it to the global database being built by OpenGeocoder.
Above: The river of my childhood, which I just added to the map.
Every single different way a place can be described must be drawn on the map or added as a synonym, before OpenGeocoder will understand what that string of letters and numbers means with reference to place. Anyone can redraw a place on the map, too.
Then developers of location-based services can hit a JSON API or download a dump of all the place names and locations for use in understanding place searches in their own apps. It appears that just under 1,000 places have been added so far. It will take a serious barn-raising to build out a map of the world this way. It wouldn't be the first time something a little like this has been done before though.
"If only it was that simple :(" said map-loving investor Steven Feldman on Twitter. "Maybe it is?"
The approach is focused largely on simplicity. Coast said in his blog post announcing the project:
"OpenGeocoder starts with a blank database. Any geocodes that fail are saved so that anybody can fix them. Dumps of the data are available.
"There is much to add. Behind the scenes any data changes are wikified but not all of that functionality is exposed. It lacks the ability to point out which strings are not geocodable (things like "a") and much more. But it's a decent start at what a modern, crowd-sourced, geocoder might look like."
Testing the site, I grew frustrated quickly. I searched for the neighborhood I live in: Cully in Portland, Oregon. There was no entry for it, so I added one. But there are no street names on the map so I got lost. I had to open a Google Map in the next tab and switch back and forth between them in order to find my neighborhood on the OpenGeocoder map. Then, the neighborhood isn't a perfect rectangle, so drawing the bounding box felt frustratingly inexact. I did it anyway, saved, then tried recalling my search. I found that Cully,Portland,Oregon (without spaces) was undefined, even though I'd just defined Cully, Portland, Oregon with spaces. I pulled up the defined area, then searched for the undefined string, then hit the save button, and the bounding box snapped back to the default size, requiring me to redraw it again, on a map with no street names. Later, I learned how to find the synonym adding tool to solve that problem.
In other words, the user experience is a challenge. That's the case with Wikipedia too, and OpenGeocoder just launched, but I expect it will need some meaningful UX tweaks before it can get a lot of traction.
I hope it does.
That's just my experience so far, though. Not everyone feels that way. GIS geek Paul Wither calls it "addictive."
There are certainly high hopes for the project, too.
"I'm obsessed with the need for an open-source geocoder, and this is a fascinating take on the problem," says data hacker Pete Warden about OpenGeocoder. "By doing a simple string match, rather than trying to decompose and normalize the words, a lot of the complexity is removed. This is either madness or genius, but I'm hoping the latter. The tradeoff will be completely worthwhile if it makes it more likely that people will contribute."
Coast will certainly be able to gather the attention of the geo community for the project. As we wrote when he joined the Bing team 18 months ago:
Coast is a giant figure in the mapping world. In 2009, readers of leading geo publication Directions Magazine voted him the 2nd most influential person in the geospatial world, ahead of the Google Maps leadership and behind only Jack Dangermond, the dynamic founder of 41-year old $2 billion GIS company ESRI. Coast will turn 30 years old next month.
The more I play with OpenGeocoder, the more it grows on me. I hope Coast and others are able to put in the time it will take to make it as great as it could be.