I’ve just let other people see my new project up your end, (amazing what popping a url in your facebook status can do) which is a little toy for geographically mapping Birmingham things on the interweb. It uses geotagging, and here’s a little explanation of how it works.
Other people’s feeds
Although some sites, such as Flickr, will pump out geotagged feeds they aren’t necessarily in the correct format for overlaying on a Google map (there are three competing geotag XML formats for a start). Luckily, the Location Extractor operator in Yahoo Pipes will sort that out, as well as generating geo information from posts in feeds that don’t expressly geotag (upcoming.org’s feeds are a good one for this as venues have addresses). While you’re Yahoo Piping, you mas as well filter in some other ways: I restrict some of the longer feeds to ten posts, and the Flickr pictures to those that contain a Latitude of 52 (Birmingham in the UK is at 52°N, the many other Birminghams aren’t).
Your own feed (if you use WordPress)
You can dispense with the whole fiddle of Piping your feeds if you are creating them of course, and you can geotag items accurately without having to oddly list the full address of what you’re talking about. Birmingham: It’s Not Shit is based on WordPress, and as such there are plugins to do the job for you. I’m using Geo and GeoMashup (which will generate Google Maps with your posts on with just a quick inline tag, see BiNS). I first tried the seemingly more powerful GeoPress plugin (also available for Moveable Type blogs), but despite working well as a tool to use it wasn’t generating valid XML for me.
Geo places Latitude and Longitude boxes just below your post editor, but also allows you to store locations and select them from a drop-down menu. Locations are stored in the plugin options page (which will also set a default location – your house? The centre of town? – for posts you don’t expressly tag):
The only problem with this is that until you build up a database you’ll be spending ages finding the geolocation for each post – and there aren’t really any simple web-tools that do it for you.
Although, GeoMashup will place a handy Google map on your post editing page, as well as a Find location box – you’ll have to click on the map to reveal the lat and long for the position you find and then copy and paste them into the Location fields higher up.
Fill your stored location database, you’ll need it!
Building the map
Pop over to Google Maps and get yourself an API key, you’ll also find plenty of example code. View Source at this page to see the bare bones of the code up your end uses. For overlaying RSS feed information it’s quite simple:
Use GGeoVml to load the feed:
var geoXml = new GGeoXml("http://www.birminghamitsnotshit.co.uk/feed/");
And then add.Overlay to place it on the map as you draw it:
You can add as many overlays as you like, although it is slow to draw too many – that’s why the toggle buttons are handy. You also waste processing power and time by placing markers off the viewable map – that’s why filtering the feeds was useful earlier.
I’m not sure how useful it is at the moment, adding all the feeds at once is a little slow and the Pipes are sometimes flaky. In fact it doesn’t have a great deal of practical use at all. It’s still an interesting visualisation, though and I feel that the real killer application for geotagging is about to hit us – so anything you do to make your work tagged correctly will give you a leg-up as soon as it hits.
If you’ve got a Birmingham based feed and geotag the entries, let me know (email up the right) and I’ll add it to the map.