@Edent I've noodled around with trying to write some code to turn all of OSM into a Foursquare-style venues database but haven't had the time.
My rough plan—a script that parses the entire OSM dataset and:
- filters out the features one wants based on a predicate (pubs, restaurants, public buildings, etc.)
- flattens ways/relations into points (calculate centroids)
- emits lat, long, label, OSM type+ID
Stick result in DB (SQLite+SpatiaLite appeals to me), index on coords, query N closest.
@Edent Most of it is a data quality problem in deciding on the predicate to filter the data.
Do you wanna check into an untitled tree or water fountain in your local park? (Filter things without a name?)
What about checking into a whole city or country? Or a particular borough? Or an area that doesn't line up with a governmental/administrative area (Soho, say)? That's a thing people did on 4sq to tell friends they are visiting.
How about the M25? (This place is not a place of honour etc.)