The idea/vision I'm having right now looks like this:
The raw data is sitting FluidDB or AWS S3 or something like it, e.g. a public readable and updatable key value store.
In it there could be stored the wardriving results of wireless network AP MAC address, tagged with lat, lon, alt, signal strength, time-seen, etc
In it there could be stored every cellphone tower everywhere, along with lat, lon, alt, tower id, carrier, technology, addressing, etc
In it there could be every possible geographic outline cluster of interest, by some sort of unique id, and tagged with its name, kind, outline, list of parent containers, etc.
Kinds would be things like "nation", "state", "provence", "region", "metro area", "city", "neighborhood", "park", etc
It would have both "official" things like nations and states, and less official things like "metro areas" and "neighborhoods". Flickr/Yahoo has been doing some really cool stuff with doing tag+geo analysis to crowdsource compute things like "what is the area that people on the ground actually call 'Paris', which is rather different then the official border of the City Of Paris".
In addition to all this raw data, a data service that speaks REST and speaks XMPP (XEP-0080 etc etc) can sit on top of it.
A client could say "I have this raw data from my GPS, I see the following list of APs with the following strengths, I am associated with this one, I see the following list of cellphone towers at the following signal strengths, and I'm associated with this one, and the last time I saw these APs and towers, I turned out to be at one of the following location IDs".
The service would send back "You are at [place Remedy Tea; neighborhood Capitol Hill; city Seattle; county King; state WA; nation US], your exact lat/lon/alt is foo, and the id for that specific location is foo".
And then the client could say "tell me more about location id foo" and the service could send back stuff like the OSM data, FireEagle data, the Google Places info, the Yelp id, the Foursquare id, the Brightkite id, the postal address, the phone number, etc etc. Whatever it thinks it knows about that location.
What all this needs is that it needs to be as much as possible open and public. Which is why I suggested something like FluidDB.
Funny you should mention FluidDB... I'm currently in the process of uploading a whole bunch of records derived from this data set: http://earth-info.nga.mil/gns/html/namefiles.htm (starting with the UK - where I live). Stuff like long/lat, name, and feature classification. Just a start but fun all the same. take a look in FluidDB's /geo namespace for some of the potential tags you might want to use...
ReplyDelete