jQueryでホットペッパーのAPIをリクエストしてGoogle ストリートビューを表示するまで
梅酒.inの「梅酒がウリな飲食店」にてLightBoxを実現していることを前回説明しました。今回はさらに、jQueryでホットペッパーのAPIをリクエストしてGoogle ストリートビューを表示させる方法を説明をします。
↑ こんな感じ。(昼間の写真なのがちょっとあれですが)
ここではjQueryを用いているので、レスポンスのフォーマットとしてJSONPが利用できるホットペッパーのAPIを利用しています。
なお、jQueryのリファレンスは「jQuery 1.2.6 日本語リファレンス」が詳しいです。また、jQueryでJSONPを使う方法は「jQuery で JSONP 2通り – てっく煮ブログ」にて紹介されていたので、そちらを参考にやってみました。
また、ストリートビューをGoogle Maps APIから使う方法は「Google Maps API – Google Code (日本語)」と「MT22のメモ帳 » GStreetviewClient の使用例」に説明されています。
以下のサンプルでは、店舗のIDをキーとして取得したデータから緯度・経度を抽出して、それをもとに id=”streetview” の要素にストリートビューを表示させています。
$.ajax({ // APIのフロントエンド url: 'http://webservice.recruit.co.jp/hotpepper/gourmet/v1/', // JSONPを使う場合の指定 dataType: 'jsonp', data: { key: '[リクルートWEBサービスのキー]', id: '[店舗のID]', format: 'jsonp' }, // レスポンスが返ってきたときの処理 success: function(json) { var shop = json.results.shop[0]; var client = new GStreetviewClient(); var latLng = new GLatLng(shop.lat, shop.lng); client.getNearestPanorama(latLng, function(res) { if (res.code == 200) { var panorama = new GStreetviewPanorama(document.getElementById('streetview'), { latlng: res.location.latlng, pov: res.location.pov }); } }); }, error: function() { } });
まあこれだけなのですが、このような処理をlightbox生成後の処理に入れてあげると、lightboxの中にストリートビューを表示といったことができます。
このように、レスポンスをJSONPで返してくれるAPIであれば、jQueryを利用して簡単にデータを取得することができて便利です。
コメントを残す