2009年06月22日
Google Maps に Flickr の Set を表示
Flickr に写真をアップロードする際に位置情報を付けておくと、地図上で表示できたり、近くの写真を探せたりといろいろできるのだが、Flickr の地図は U.S. の Yahoo のものなので、日本の地図は非常にプア。
写真のセットごとに Google Maps に表示できればなあ、と Flickr の feed 出力でフォーマットを KML 指定して試してみたが、feed は20件までしか出力しないみたいなので、これもイマイチ。しかも写真が一番小さい Square になってしまう。
で、検索していたら、Yahoo Pipes を利用して 上限20件問題を回避している例がいくつかみつかったので、それを改造してKMLを吐き出せるようにしてみた。
Firebug で Flickr の地図画面を覗いてみたりしながら、ほとんど一から作りなおしたりして試行錯誤したのだけど、最終的には元になった Pipe (Flickr: photoset feed) に以下の赤丸内を付け足しただけになってしまった。
feed にジオタグをつけ足したものを Location Extractor に食わせると、KML出力の実行オプションが現れるので、それを使うだけだった。ものすごく簡単。ずいぶん遠回りした。
Google Maps の検索窓に
http://pipes.yahoo.com/pipes/pipe.run?_id=3f0df592cd7af8e63eabe8af05226995&_render=kml&photoset_id=[セットのID]
を入れるとマッピングします。Flickr API の仕様上250件が上限みたいですが、そんなでかいセットもあんまりないだろうから、とりあえずそれ以上の件数を表示することは考えていません。
マッピングされたものを見ると、どうもFlickrが緯度経度の値を丸めてるみたいでグリッド状にならんでるけど、どうせGPSの精度なんてそんなもんだし、大体の位置が分かればいいやということで、これもとりあえずスルーです。
追記:緯度経度の値を丸めてるのはFlickrじゃなくてアップロードに使ったiPhotoみたいです。なんでそんなことするんだろ。
さらに追記:たまに以下のような画面が出て表示されないことがあるみたい。
Pipesのレスポンスが悪いとダメのかな?。