SHOEISHA iD

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

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

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

Yahoo! Open Local Platform Hacks

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

Yahoo! Open Local Platform Hacks 第6回

取得したカセットを使用した地図UIを作成する

 JavaScriptマップAPIを利用することで、カセットサーチAPIで取得したカセット内の店舗情報を地図上に表示し検索できるUIを簡単に作成することができます。

 YOLPカセットギャラリーでカセットを選択しダウンロードすることで、同様のUIを作成することができますが、今回はYOLPカセットサーチAPIを利用して「動的に」ページを作成してみます。

 なお、本稿で紹介するサンプルコードの完成イメージを別途用意しましたので、以下の解説と合わせてご参照ください。

図1 完成イメージ
図1 完成イメージ
ソースコード(全体)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>カセットサーチAPI 「牛丼」検索サンプル - Yahoo! Open Local Platform</title>

<h1>カセットサーチAPI 「牛丼」検索サンプル</h1>
<script type="text/javascript" src="http://js.api.olp.yahooapis.jp/OpenLocalPlatform/V1/jsapi?appid=<あなたのアプリケーションID>" charset="utf-8"></script>
</head>
<body>
<div id="_tab"></div>
<div id="_list" style="width:380px; height:600px;"></div>
<div id="_area" style="width:600px; height:600px;"></div>

</body>
<script type="text/javascript" charset="utf-8">
<!--
var $ = Y.useJQuery();
window.onload = function() {
    // カセット検索APIで「牛丼」カセットを検索
    var url = "http://cassette.search.olp.yahooapis.jp/OpenLocalPlatform/V1/cassetteSearch";
    var param = {
        query  : "牛丼",
        output : "jsonp",
        appid  : "OY1oDxsr"
    };

    $.ajax({
        type :   "GET",
        url  :   url,
        data :   param,
        dataType: "jsonp",
        success:  function(json){
            if(!json.Feature){
                window.alert("条件に該当するカセットが存在しません。");
            }
            display_map(json);
        },
        error:    function(){
            window.alert("カセットの取得に失敗しました。");
        }
    });
}

/**
 * 取得したカセット情報を利用した地図とリストを表示
 */
function display_map(json){
    // リスティングオブジェクトの生成
    var list = new Y.Listing("_list");
    //地図を初期化
    var map = new Y.Map("_area", {configure:{doubleClickZoom:true, doubleClickPan:true, scrollWheelZoom:true}});

    // カセット情報の取り出してレイヤーを作成
    var cid = "";
    var cids = new Array();
    var layers = new Array();
    $.each(json.Feature, function(){
        // レイヤーを作成して追加
        var layer = new Y.YolpSearchLayer({
                           chunk:true, 
                           chunkCount:5, 
                           searchBox:true,
                           cid:this.Id
        });
        layers.push({layer:layer, name:this.Name, default_query:''});
        cids.push(this.Id);
    });
    cid = cids.join(",");

    // 「すべて」レイヤーオブジェクトの初期化
    var layerall = new Y.YolpSearchLayer({
        chunk:true,
        chunkCount:5,
        searchBox:true,
        cid:cid
    });
    layers.unshift({layer:layerall, name:'すべて', default_query:''});

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

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

    //地図を表示
    map.drawMap(new Y.LatLng(35.665627,139.730738), 18,Y.LayerSetId.NORMAL);
	
    //コントロールの追加
    map.addControl(new Y.LayerSetControl());
    map.addControl(new Y.SliderZoomControl());
}
//-->
</script>
</html>

次のページ
1. カセットを検索する

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

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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー