Flickr => KML redux

Well, it seems like my initial assertion that getting geotagged Flickr images into Google Earth wasn’t possible is not quite true. It is possible, but until yesterday’s post, it wasn’t really all that well documented:-)

That has now been fixed. There are currently three ways in which geotagged Flickr images can be published to Google Earth (that I know of) — and the latter two methods are good for turning any GeoRSS feed into a KML network link.

Method 1: Trippermap ($10/year)

Trippermap is a (mostly free) service that lets you use Google Earth to geotag Flickr photos, and then publish those photos to a map which you can embed on your website. If you get the premium account, the map will also provide a link to a KML version of the images — but as the map is Flash-based, the URL for the file is not explicitly visible. I asked Mark Zeman, the creator of Trippermap, what the URL is, and he was happy to oblige with the info:

Where “41072040@N00″ is value of the “trippermap_user” variable, which you can find in the pastable HTML code that Trippermap provides for your maps (look under the “get your map” tab). Mark says he is looking into offering a downloadable network link for that URL, but for now, I’ve rolled my own.

What’s not clear to me is how often Trippermap refreshes the feed. It seems to respond mainly when I prod it into refreshing — perhaps this is because it doesn’t sample the GeoRSS feed directly but instead talks to Flickr via the API — which it does above all when I ask it to. On the plus side, this does allow me to micromanage the content of my feed.

Method 2: Mapufacture (free)

Mapufacture is a very simple concept, implemented well. It is a tool for aggregating different GeoRSS feeds, with output as either a new GeoRSS feed or KML. If a map has just one GeoRSS feed, then the GeoRSS output is not much value added, but the KML certainly is.

The only challenge with Mapufacture is that the process for creating a new map is light on the documentation and not entirely intuitive. (For example, you first have to create a blank map, and only afterwards can you add the content.). It’s also a little sluggish when setting up a map, though the resulting feeds are fast.

One tip: Make sure to append “&georss=true” the the original Flickr GeoRSS feed’s URL, or else your map won’t have any images in it at all.

Another tip: You can use Mapufacture’s GeoRSS output with Google Maps, like so. Unlike when you put Flickr’s GeoRSS feed directly into Google Maps, wich creates doubles for every entry, routing it via Mapufacture get rid of the extra entries.

Geonames.org has long had an RSS/GeoRSS to KML converter, though without showing an explicit URL for the service. Unless you were willing to hack, this was good only for one-off static conversions, as there was no URL for you to stick into a network link.

Fortunately for us, Nearby.org.uk’s Barry Hunter is both able and willing as a hacker, so today he whipped up a page that uses Geonames to give us a wealth of conversion options for RSS/GeoRSS feeds: Just the static KML link, a copyable URL for that link, a preset network link, a link to the feed in Google Maps, and finally, a URL that is readymade for the Google Maps API.

Tip: Here too, remember to append “&georss=true” to the original Flickr GeoRSS feed’s URL when you paste it into Barry’s converter. Notice also how Barry’s coding automatically removes the duplicates that plague a direct import of Flickr into Google Maps.

Geonames’s focus on a streamlined converter that gets its variables directly from the URL makes Barry’s hack a very fast and responsive tool. Here, then, is the network link for my georeferenced images, created using Barry’s hack.

Of course, if Google Earth were to gain the ability to read GeoRSS feeds, then there would be no need to burden third-party servers for a conversion to KML every time somebody requests an update to your images…

if you want to access yours, or someone elses feed, just replace the userid (aka nsid) in the above link with your own/theirs. You can also add tags you want to filter the feed by, to the tags parameter, though its optional.