SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Yahoo! Open Local Platform Hacks

YOLP Hacks: カセットサーチAPIの使い方
~拠点情報セットを活用する

Yahoo! Open Local Platform Hacks 第6回

1. カセットを検索する

 まずは、YOLPカセットサーチAPIでカセットを検索します。検索に必要なパラメータをjson形式で定義します。以下の例では検索キーワードに「牛丼」を指定しています。

    var url = http://cassette.search.olp.yahooapis.jp/OpenLocalPlatform/V1/cassetteSearch;  // APIのURL
    var param = {
        query  : "牛丼",           // 検索キーワード
        output : "jsonp",          // アウトプット形式にjsonpを指定
        appid  : "<あなたのアプリケーションID>"  // アプリケーションIDを指定
    };

2. カセットのレイヤーを生成

 カセット内の拠点情報を地図に描画するためには、Y.YolpSearchLayerオブジェクトをカセットごとに生成します。

 カセットごとに、カセットIDを指定してオブジェクトを追加します。生成した、各レイヤーはまとめてタブ表示を行うため(後述)、いったん配列に格納します。

    // カセット情報を取り出してY.YolpSearchLayerオブジェクトを生成
    var cid = "";
    var cids = new Array(); 
    var layers = new Array();                     // レイヤーをまとめる配列
    $.each(json.Feature, function(){
        // カセットIDを指定してYolpSearchLayerを生成する
        var layer = new Y.YolpSearchLayer({
                           chunk:true,            // 検索リストでチャンク表示を行うか
                           chunkCount:5,          // チャンク表示を行う場合のチャンク表示数
                           searchBox:true,        // 検索ボックスを表示するか
                           cid:this.Id            // カセットIDを指定する
        });
        // 生成したレイヤーを配列に追加
        layers.push({
               layer:layer,                       // 追加するオブジェクト
               name:this.Name,                    // タブの表示名
               default_query:''                   // デフォルトの検索キーワード
        });
        cids.push(this.Id);
    });

 また、カセットIDをカンマ区切りで連結してすることで、カセットをまとめて検索するレイヤーを定義することができます。すべてのカセットをまとめて検索するためのレイヤーも定義します。

    // まとめて検索する用にカセットIDをすべてカンマ区切りで連結してYolpSearchLayerを生成
    cid = cids.join(",");
var layerall = new Y.YolpSearchLayer({
        chunk:true,
        chunkCount:5,
        searchBox:true,
        cid:cid
    });
    // 「すべて」レイヤーを先頭に追加
    layers.unshift({layer:layerall, name:'すべて', default_query:''});

3. カセットを取りまとめるタブを生成

 Y.ListingTabPluginを利用して、複数のレイヤーをタブにまとめて表示することができます。

 先に生成した、YolpSearchLayerオブジェクトの配列を指定して、Y.ListingTabPluginを生成します。生成したY.ListingTabPluginは、Y.Map.addPluginメソッドで地図に追加することができます。

    // リスティングタブプラグインの設定
    var listings = new Y.ListingTabPlugin({
        tab :'_tab',
        list:list,
        current:layerall,                         // 初期選択レイヤー
        layers:layers                             // レイヤーの配列
    });

    // プラグインの追加
    map.addPlugin(listings);

次のページ
自分のカセットで簡単なサイトを作成

この記事は参考になりましたか?

Yahoo! Open Local Platform Hacks連載記事一覧

もっと読む

この記事の著者

西 哲也(ヤフー株式会社)(ニシ テツヤ(ヤフーカブシキガイシャ))

2002年に東京理科大学理工学部情報科学科を卒業後、IT企業に入社し業務ソフト開発に携わるも5年で退社。2008年にやりがいのある仕事を求めてヤフーに入社し、Web開発に携わる。現在は「Yahoo!ロコ 地図」、「Yahoo! Open Local Platform(略称:YOLP)」の開発を担当。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6133 2011/09/07 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー