Yahoo! Pipesの地図出力をYahoo! Japanの地図で表示させる
Yahoo! Pipesの地図表示が「面白いけど使えない」という話を何度か書いたことがある。どれぐらい使えないかというと、Art Beat APIで新宿駅周辺1500mを表示させたときの表示が、こんな感じで、ズームすると「Sorry」と表示されてしまう。
で、他の地図のAPIに渡せば、それなりの表示をしてくれるんじゃないかと、こんなのを作ってみた。
(注:Lacoocanを解約する予定ですので、ソースのみGitHubで見ることができるようにしました。http://gist.github.com/44722)
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
早速、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でやりたい」のならとりあえず読んでみてAmazonで詳しく見る by G-Tools |




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




