Javascript関連情報

更新日:2006年06月30日

マッシュアップ1(GMap+YUI+じゃらんAPI)

最近、Webに関連して「マッシュアップ」という言葉をよく目にします。今回は、Google Maps APIとYahoo! YUIにじゃらんAPIを組み合わせてみました。


マッシュアップ1(GMap+YUI+じゃらんAPI)


XMLをツリー用JSONへ


今回のサンプルでは、 前回までに準備しておいた、 JSONからYUIメニューツリーを自動生成するライブラリを利用しました。

そのため、じゃらんAPIが提供しているXMLデータを内部でJSONへ変換しています。(もし、あらかじめJSONで用意しておけば、データサイズはXMLの約半分になり、この加工処理も不要になります。加工処理はソースをご参照ください。)


//utf-8(BOM付)
【XML】 今回は、じゃらんのXMLデータから北海道分だけを取り出してサンプル化しました。
これを内部で、下記のようなツリー用JSONへ加工して使っています。
このJSONにより右図のツリーメニューが自動生成されています。

<?xml version="1.0" encoding="UTF-8"?>
<Area>
  <Prefecture cd="010000" name="北海道">
    <LargeArea cd="010200" name="札幌">
      <SmallArea cd="010202" name="ススキノ・大通り"/>
      <SmallArea cd="010205" name="北大・丘珠"/>
      <SmallArea cd="010208" name="琴似・テイネ"/>
      <SmallArea cd="010211" name="厚別・白石・豊平"/>
      <SmallArea cd="010214" name="真駒内"/>
    </LargeArea>
    <LargeArea cd="010300" name="定山渓">
      <SmallArea cd="010302" name="定山渓"/>
    </LargeArea>
    <LargeArea cd="010500" name="小樽・キロロ・積丹">
      <SmallArea cd="010502" name="小樽"/>
      <SmallArea cd="010505" name="余市・キロロ"/>
      <SmallArea cd="010508" name="積丹"/>
    </LargeArea><LargeArea cd="010800" name="ニセコ・ルスツ">
      <SmallArea cd="010802" name="ニセコ・倶知安"/>
      <SmallArea cd="010805" name="ルスツ"/>
    </LargeArea><LargeArea cd="011100" name="洞爺・登別・苫小牧">
      <SmallArea cd="011102" name="苫小牧"/>
      <SmallArea cd="011105" name="登別・室蘭"/>
      <SmallArea cd="011108" name="洞爺"/>
    </LargeArea><LargeArea cd="011400" name="函館・大沼・松前">
      <SmallArea cd="011402" name="函館・湯の川"/>
      <SmallArea cd="011405" name="大沼・長万部・江差"/>
      <SmallArea cd="011408" name="松前"/>
    </LargeArea><LargeArea cd="011700" name="稚内・留萌">
      <SmallArea cd="011702" name="稚内"/>
      <SmallArea cd="011705" name="羽幌"/>
      <SmallArea cd="011708" name="留萌・増毛"/>
    </LargeArea>
    <LargeArea cd="012000" name="旭川・層雲峡">
      <SmallArea cd="012002" name="名寄"/>
      <SmallArea cd="012005" name="旭川"/>
      <SmallArea cd="012011" name="層雲峡・天人峡"/>
    </LargeArea>
    <LargeArea cd="012100" name="富良野・美瑛・トマム">
      <SmallArea cd="012102" name="美瑛"/>
      <SmallArea cd="012105" name="富良野"/>
      <SmallArea cd="012108" name="トマム"/>
    </LargeArea>
    
    (以下略)
    
            JSONへ変換して利用しています

【JSON】
[
  ["県名を選んでください",
    [
      ["_open"],
      ["北海道",
        [
          ["_open"],
          ["札幌",
            [
            ["ススキノ・大通り","010000","010200","010202"],
            ["北大・丘珠","010000","010200","010205"],
            ["琴似・テイネ","010000","010200","010208"],
            ["厚別・白石・豊平","010000","010200","010211"],
            ["真駒内","010000","010200","010214"]
            ]
          ],
          ["定山渓",
            [
            ["定山渓","010000","010300","010302"]
            ]
          ],
          ["小樽・キロロ・積丹",
            [
            ["小樽","010000","010500","010502"],
            ["余市・キロロ","010000","010500","010505"],
            ["積丹","010000","010500","010508"]
            ]
          ],
          ["ニセコ・ルスツ",
            [
            ["ニセコ・倶知安","010000","010800","010802"],
            ["ルスツ","010000","010800","010805"]
            ]
          ],
          ["洞爺・登別・苫小牧",
            [
            ["苫小牧","010000","011100","011102"],
            ["登別・室蘭","010000","011100","011105"],
            ["洞爺","010000","011100","011108"]
            ]
          ],
          ["函館・大沼・松前",
            [
            ["函館・湯の川","010000","011400","011402"],
            ["大沼・長万部・江差","010000","011400","011405"],
            ["松前","010000","011400","011408"]
            ]
          ],
          ["稚内・留萌",
            [
            ["稚内","010000","011700","011702"],
            ["羽幌","010000","011700","011705"],
            ["留萌・増毛","010000","011700","011708"]
            ]
          ],
          ["旭川・層雲峡",
            [
            ["名寄","010000","012000","012002"],
            ["旭川","010000","012000","012005"],
            ["層雲峡・天人峡","010000","012000","012011"]
            ]
          ],
          ["富良野・美瑛・トマム",
            [
            ["美瑛","010000","012100","012102"],
            ["富良野","010000","012100","012105"],
            ["トマム","010000","012100","012108"]
            ]
          ],
    
    (以下略)
    



1 2
  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

高橋 登史朗

Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…

続きを読む

住まいには、人の個性がよく現れるもの。同じ空間をどのように使うかで、雰囲気も、快適さも大きく変わってくる。ここでは、「建築家と家を建てる」ガイド の川畑博哉氏が厳選した10軒を紹介し、建築家それぞれのこだわりのポイントを紹介しよう。建築のプロたちが考え出した、マネしたくなるアイデアが満載! さぁ、いますぐチェック!

人気Javascriptランキング

Powered by 価格.com

デジタル関連コミュニティ

北欧好きが、愛用の北欧モノを見せ合うコミュニティ

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

ショッピングカタログ

All About ウェブマガジン

女性向け

雨が楽しくなる!レイングッズ15

男性向け

マネしたくなるアイデア住宅

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック

知識・経験を生かして、記事を書いてみませんか?