« innovatorを胸に | Main | 賞味期限切れとなる技術 »

2008.10.27

Yahoo! Pipesの地図出力をYahoo! Japanの地図で表示させる

Yahoo! Pipesの地図表示が「面白いけど使えない」という話を何度か書いたことがある。どれぐらい使えないかというと、Art Beat APIで新宿駅周辺1500mを表示させたときの表示が、こんな感じで、ズームすると「Sorry」と表示されてしまう。

Pipes1

で、他の地図のAPIに渡せば、それなりの表示をしてくれるんじゃないかと、こんなのを作ってみた。

PipesY!Map

(注:Lacoocanを解約する予定ですので、ソースのみGitHubで見ることができるようにしました。http://gist.github.com/44722

Pipesymap1

Yahoo! Pipesを使ったことのある人ならわかると思うが、URLからid=....の部分をコピペするとPipesのgeorssをマッピングする。残念ながら表示位置の調整は手動で、何もしないと新宿中心である。

「ソースを見る」で表示するとHTMLとJavaScriptを合わせて25行しかないが、ちょっと苦労したのでメモしておく。自分で作ってみたい人はどうぞ。

Yahoo! 地図によるgeorss表示

元々はGoogle Maps APIで作ろうと思っていた。Yahoo!のバックエンドをGoogleでフロントエンドするなんて素敵だなぁ、と思いながらGoogle Maps APIのgxmlのXMLから緯度経度を抜き出して表示するサンプルなどを見ていたが、肝心のRSSからgeocodeを抜き出す方法がよくわからない。

で、検索してるとYahoo!地図では、なんと1行でgeorssを読み込み、マーカーや吹き出しまで表示してくれるのだとか。

GeoRSSを表示してみよう! - 地図スタッフブログ - Yahoo!ブログ
はてなユーザーの評価  livedoorユーザーの評価 

乱立するgeorss

早速、PipesのRSSを読み込ませてみたが、案の定、そのままでは読み込んでくれないらしい。Pipesが出力するgeocodeは、こんな感じである。

<geo:long>139.69826169864</geo:long>
<geo:lat>35.693038126664</geo:lat>

一方、Yahoo!地図のサンプルで読み込ませているワイワイマップは、こんなに冗長である。

<ygeorss:point>139.701495 35.68979694</ygeorss:point>
<geo:Point><geo:long>139.69826169864</geo:long>
<geo:lat>35.693038126664</geo:lat></geo:Point>
<georss:point>35.693038126664 139.69826169864</georss:point>

何事か!ということはヘッダに書いてある。

<rss version="2.0"
xmlns:georss="http://www.georss.org/georss" 
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" 
xmlns:ygeorss="http://map.yahoo.co.jp/ygeorss" xmlns:media="http://search.yahoo.com/mrss">

結局、PipesのRSSを読み込んでgeocodeの部分だけを書き換えるプロキシを書いて、その返り値をYahoo!地図に渡したら動いた。

それ以外は工夫してないのだけど、コードを書くこと自体が久しぶりなので構想から随分とかかってしまった。追加機能とか、そのうちに。

--

Rubyレシピブック 第2版 268の技
Rubyレシピブック 第2版 268の技 まつもとゆきひろ

おすすめ平均
starsプログラム言語一つにつきレシピ本は持っておくべき。
stars「Rubyでやりたい」のならとりあえず読んでみて

Amazonで詳しく見る
by G-Tools

|

« innovatorを胸に | Main | 賞味期限切れとなる技術 »

pipes」カテゴリの記事

自作」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/4282/42921000

Listed below are links to weblogs that reference Yahoo! Pipesの地図出力をYahoo! Japanの地図で表示させる:

« innovatorを胸に | Main | 賞味期限切れとなる技術 »