33
Yahoo! JAPAN のエンジニアが その場で作るスマホ地図サービス 大野 道誉 / 鋤柄 ひかり クッキング 30分 Y O L P

YOLP 30分クッキング

  • Upload
    yahoo

  • View
    2.864

  • Download
    1

Embed Size (px)

DESCRIPTION

Yahoo! JAPAN のエンジニアがその場で作るスマホ地図サービス

Citation preview

Page 1: YOLP 30分クッキング

Yahoo! JAPAN のエンジニアがその場で作るスマホ地図サービス

大野 道誉 / 鋤柄 ひかり

クッキング30分Y O L P

Page 2: YOLP 30分クッキング

はじめまして

2

大野 道誉@elpeo

ヤフーで日々プログラミングをしています。エンジニア歴10年。主に地図や位置情報系のバックエンドを担当しています。今日は、Yahoo! Open Local Platform(YOLP)のAPIを活用し、30分でひとつの簡易サービスを完成させます。

鋤柄 ひかり@picacch

ヤフーの地図系サービスや開発者さん向けの地図、地域情報APIサービス、YOLPの企画・ディレクションをしています。今日は、アシスタントとしてライブコーディングの解説を担当します。

Page 3: YOLP 30分クッキング

今日のレシピ

3

2012年05月12日(土)

旬の地図とラインで作る道案内投稿サービス地図好きにはたまらないサービスですね

開発時間 30分 難易度 ★☆☆☆☆

Page 4: YOLP 30分クッキング

材料

4

Yahoo! Open Local Platform(YOLP)

  Yahoo! JavaScriptマップAPI

  Yahoo!ジオコーダAPI

  アプリケーションID

ルートラボ (作成したルートの投稿先サービス)

ルートラボconnect (ルートラボへ投稿するためのインターフェース)

jQuery

情熱と好奇心 少々

Page 5: YOLP 30分クッキング

YOLPとは?

地図・地域情報系APIサービス

ヤフー・オープン・ローカル・プラットフォーム

Page 6: YOLP 30分クッキング

6

Page 7: YOLP 30分クッキング

ルートラボとは?

Page 8: YOLP 30分クッキング
Page 9: YOLP 30分クッキング

まずは、地図を表示します。クッキング30分Y O L P

1.地図を表示する

2.地図に線を描く

3.ルートラボに投稿する

Page 10: YOLP 30分クッキング

Yahoo! JavaScriptマップAPIの「一番シンプルな地図の表示」のサンプルをコピーします。

10

01

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/#index1-2

Page 11: YOLP 30分クッキング

アプリケーションIDを取得し、書き換えます。

11

02

https://e.developer.yahoo.co.jp/webservices/register_application

****************************

***********

Page 12: YOLP 30分クッキング

地図をプレビューし、サイズ、縮尺を変更してみます。

12

03

Page 13: YOLP 30分クッキング

jQueryをインクルードし、 jQuery仕様に書き換えます。

13

04

http://jquery.com/

Page 14: YOLP 30分クッキング

地図の場所を移動するために、住所検索ボックスを追加します。

14

05

Page 15: YOLP 30分クッキング

Yahoo!ジオコーダAPIを使って、住所検索機能を組み込みます。

15

06

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/geocoder.html

Page 16: YOLP 30分クッキング

Yahoo! JavaScriptマップAPIのpanTo()メソッドで、住所検索結果に地図が移動するようにします。

16

07

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/#index6-2

Page 17: YOLP 30分クッキング

Yahoo!ジオコーダAPIは、経度、緯度の順番で返ってきます。Yahoo! JavaScriptマップAPIのpanTo()メソッドで指定する時には順番を逆にします。

},function(data){ if(data.Feature){ var lonlat = data.Feature[0].Geometry.Coordinates.split(/,/); ymap.panTo(new Y.LatLng(parseFloat(lonlat[1]),parseFloat(lonlat[0]))); } }); return false; });

Page 18: YOLP 30分クッキング

ここまで、地図の表示と住所検索を実装完了。ここから、地図に線を引きます。

クッキング30分Y O L P

1.地図を表示する

2.地図に線を描く

3.ルートラボに投稿する

Page 19: YOLP 30分クッキング

Yahoo! JavaScriptマップAPIのClass Polylineを指定して、地図上に線を引けるようにします。

19

08

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/reference/YFeature.html#Polyline

Page 20: YOLP 30分クッキング

ポリラインのデータは後から地図上で指定するので、最初は空の配列を用意します。

var polyline = new Y.Polyline([]);

Page 21: YOLP 30分クッキング

startDrawing()を使って、クリックで線を引けるようにします。

21

09

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/reference/YFeature.html#Polyline

Page 22: YOLP 30分クッキング

ルートの作成を完了させるためのボタンを設置します。

22

10

Page 23: YOLP 30分クッキング

finalizeDrawing()で作成中のポリラインを確定させます。

23

11

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/reference/YFeature.html#Polyline

Page 24: YOLP 30分クッキング

setDraggableを有効にして、ポリラインをマウスドラッグにより編集可能にします。

24

12

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/reference/YFeature.html#Polyline

Page 25: YOLP 30分クッキング

これで、ルート作成まで完成!ここから、ルートラボへの投稿までの流れを作ります。

クッキング30分Y O L P

1.地図を表示する

2.地図に線を描く

3.ルートラボに投稿する

Page 26: YOLP 30分クッキング

ルートの作成が完了したら、ルートラボへの投稿ボタンが表示されるように設定します。

26

13

Page 27: YOLP 30分クッキング

ルートラボconnectに渡すデータ形式を確認します。

27

14

http://latlonglab.yahoo.co.jp/route/connect

Page 28: YOLP 30分クッキング

getLatLngs()でルートの緯度経度を取得し、ルートラボconnectに渡します。

28

15

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/reference/YFeature.html#Feature

Page 29: YOLP 30分クッキング

完成!

Page 30: YOLP 30分クッキング

今日の完成品

30

http://yahoo.jp/8spcVA

Page 31: YOLP 30分クッキング

今日のレシピのおさらい

31

1.地図を表示する

2.地図に線を描く

3.ルートラボに投稿する

Page 32: YOLP 30分クッキング

http://developer.yahoo.co.jp/webapi/map/

地図・地域情報系APIサービス

ヤフー・オープン・ローカル・プラットフォーム

公式アカウント@yahoojpYOLP最新情報をお知らせ

YOLP 検索

Page 33: YOLP 30分クッキング

ありがとうございました

- THE END -