コンテンツメディアプログラミング実習2

Similar documents
PowerPoint プレゼンテーション

第 8 回の内容 クライアントサイド処理 JavaScript の基礎

JavaScript 演習 2 1

paper.pdf


第7回 Javascript入門

JavaScript演習

untitled

LeafletとCesiumを切り替えて使用するライブラリS-mapの公開

WebGL *1 DOM API *1 X LR301 Kageyama (Kobe Univ.) Visualization / 37

WebGL WebGL DOM Kageyama (Kobe Univ.) Visualization / 39

<4D F736F F D208E7B90DD8AC7979D8ED28CFC82AF837D836A B2E646F63>

SmartBrowser_document_build30_update.pptx

GIS利用クイックチュートリアル

サンプル CSS web ページを開くと同時にピエロの玉乗りが動き出すアニメーションを作ってみましょう AnimeAuto の説明 HTML の記述 (AnimeAuto.html) ピエロの画像に pierrot という id を 玉の画像に ball という id を付けておきます <!DOCT

Delphi/400開発ノウハウお教えします Googleマップ連携によるリッチなGUIアプリ開発

JavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2

Microsoft Word - tutorial3-dbreverse.docx

MQTTとアンドロイドで 本格的IoTを体験しよう

スライド 0


Lotus Domino XML活用の基礎!

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

RS-MS1A ~オフライン地図について~

AJAXを使用した高い対話性を誇るポートレットの構築

Web プログラミング 1 JavaScript (4) (4 章 ) 2013/7/17( 水 ) 日時 講義内容 4/10 ( 水 ) ガイダンス Web (1 章 ) 4/17 ( 水 ) HTML+CSS (1) (2 章 ) 4/24 ( 水 ) HTML+CSS (2) (2 章 ) 5

Delphi/400を使用したWebサービスアプリケーション

ch31.dvi

JC/400でWebAPI活用 Google Chart APIでグラフを作成しよう!

タグの設定方法 手順 1: カスタム HTML タグ からタグを設定する まず タグタイプを選択する際に カスタム HTML を選びます タグの設定画面が開くので HTML 欄にウェブアンテナで発行されたタグを直接貼り付けて保存すれば設定が完了します このとき document.write をサポー

■サイトを定義する

設定ガイド

Googleカレンダー連携_管理者マニュアル

JavaScript カスタマイズ入門 kintone university アプリデザイナープラス JavaScript カスタマイズ入門編演習問題回答 演習問題 第 2 章サンプルで試そう 1 cybozu.com developer network の サンプルで試そう ( 以下 サンプル と

情報システム工学特論 Web アプリの作成により 次のことを学んでもらいます 1 無料ソフトウェアの活用 2 無料のソフトウェア開発ツール Runstant Lite 3 Web ブラウザのゲームライブラリ phina.js 4 Web アプリとは 無料ソフトウェアの活用 無料ソフトウェアとは イン

Calendar Plus JavaScript API リファレンス ラジカルブリッジ Ver

JavaScript演習

KeyWeb Creator 概要 What s KeyWeb Creator? 動的なホームページを作成するためのツール!! 従来の Web ページ DB を利用した Web ページ <HTML> <HEAD> <TITLE>show_book</TITLE> </HEAD> <BODY> <DI

Windows用タブレットドライバー簡易ガイド

目次 マップとレイヤについて... 2 地図操作... 3 背景図の選択... 5 地図への情報表示... 6 地図への情報表示 ( 属性情報 ) 計測 メモ 凡例一覧の表示 印刷 概観図の利用 操作例... 24

2 目次 1. 基本操作 ウィジェットとは何か ウィジェットの目的と構成 ウィジェットの設置 ウィジェットのカスタマイズ ウィジェットコードの構成 ウィジェットの外観を変更する..

07_経営論集2010 小松先生.indd

JavaScript¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

目次 1. 概要 2. サーバーへの設置 3. 設定 4. ユーザーアクセス記録の収集 5. 利用規定 6. 更新履歴

太陽光発電の積雪荷重設計支援ツール 取扱説明書 国立研究開発法人産業技術総合研究所 太陽光発電研究センターシステムチーム 作成日 :2012 年 6 月

ChemBioOffice 2010 インストール手順書 ( 個人向け ダウンロードインストール版 ) ChemBioOffice 2010 インストール手順書 ( 個人向け ダウンロードインストール版 ) ChemBioOffice 2010( 以下 ChemOffice) をインストールするには

第7回 Javascript入門

Transcription:

CMP 実習 2 JavaScript + 地図を使ってみよう 中村, 宮下, 斉藤, 菊池 1

必要な知識 JavaScript の基本 HTMLのどの部品なのかを指定する方法 その部品にイベントを埋め込む方法 それを JavaScript で記述する方法 2

要素をどうやって取得する? DOM とは Document Object Model HTML や XML の各要素についてアプリケーションから利用するための API のこと HTML や XML の任意のタグの情報を取得したり, 差し替えたりすることができる DOM ツリーとは,HTML や XML の木構造情報 木構造の情報 3

4 要素をどうやって取得する? 1 つの要素を取得 document.getelementbyid( "id 名 " ); document.queryselector( " セレクタ名 " ); 複数の要素を配列として取得 document.getelementsbyclassname( "class 名 " ); document.getelementsbytagname( "tag 名 " ); document.queryselectorall( " セレクタ名 " ); セレクタ名は CSS の表記方法 idは #id 名, クラスは.class 名,tagは tag 名 子の指定は >. #id 名 > tag 名 のように指定

要素をどうやって取得する? このボタンを押してウェブページの該当する部分をクリックしてみよう! 5

6 DOM を取得してイベント追加 ボタンの ID を取得して, クリックされたら やぁ というメッセージを表示する <script> window.onload = function(){ var button = document.queryselector("#btn"); button.onclick = function(){ alert( " やぁ!" ); } } </script> <input type="button" id="btn">

定期的に実行 setinterval( function() { 実行する内容 }, ミリ秒 ); 指定ミリ秒後に指定の操作を実行する 7 <script> window.onload = function(){ setinterval( function(){ var dt = new Date(); document.queryselector( "#time" ).innerhtml = dt.gethours() + ": + dt.getminutes() + ":" + dt.getseconds(); }, 100 ); </script> <div id="time"> ほげほげ </div>

地図を使ってみよう! 現在位置をもとに地図を表示しよう! JavaScript で利用できる地図には Google Maps や Yahoo! 地図 API など様々なものがある 基本的に Web API は開発者用のサイトで ID を発行する必要あり ( 次ページ以降手順参照 ) 8

取得した緯度経度を表示! Yahoo! 地図 API を利用してみよう! http://developer.yahoo.co.jp/ 9

まず Yahoo! Japan ID でログイン 必要に応じてアカウントを取得しよう! 10

新しいアプリケーションを開発 11

必要な情報を入力! アプリケーション名はお好きにどうぞ サイト URL は適当で OK 12

13

アプリケーション ID を取得 このアプリケーション ID をコピペして利用! 14

地図を表示するには? 15

地図を表示してみよう <html> <head> <script src="http://js.api.olp.yahooapis.jp/openlocalplatform/v1/jsapi?appid=xxxxxxx"></script> <script> window.onload = function(){ document.queryselector("#getbutton").onclick = function(){ var ymap = new Y.Map("div_map"); ymap.drawmap(new Y.LatLng( 35.7, 139.6 ), 17, Y.LayerSetId.NORMAL); } }; </script> </head> <body> <input type=button value="get Data!" id="getbutton"> <div id="div_map" style="width:400px; height:300px"></div> </body> </html> アプリケーション ID 緯度経度は各自設定してみよう! 16 yahoo_map.html

地図が動いたことをどう検知? Y.Map には bind というメソッドがあり, これを利用してイベントに機能を割り当てる! click: クリックされた位置の緯度経度座標を取得 dblclick: ダブルクリックされた位置の緯度経度を取得 movestart: マウスによるドラッグが開始された時 moveend: マウスによるドラッグが終了した直後 zoomstart: 縮尺が変更される直前 zoomend: 縮尺が変更された後 load: 地図が最初に描画された時 17 http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/js/

地図を動かしてみよう <html><head> <script src="http://js.api.olp.yahooapis.jp/...?appid=xxxxxxx"></script> <script> window.onload = function(){ document.queryselector("#getbutton").onclick = function(){ var ymap = new Y.Map("div_map"); ymap.drawmap(new Y.LatLng( 35.7, 139.6 ), 17, Y.LayerSetId.NORMAL); ymap.bind( "moveend", function(){ console.log( 地図が動いたよ!" ); }); } }; </script> </head> <body> <input type=button value="get Data!" id="getbutton"> <div id="div_map" style="width:400px; height:300px"></div> </body></html> 18

移動した時の中心座標取得 ymap.bind( "moveend", function(){ console.log( " 地図の中心が動いたよ!" ); // 中心座標 ( 緯度経度 ) を取得 var latlng = ymap.getcenter(); console.log( latlng ); console.log( " 緯度 :" + latlng.lat() ); console.log( " 経度 :" + latlng.lng() ); }); 19 地図の中心座標を取得するための getcenter() で返される latlng には緯度経度を取得するための lat(), lng() というメソッドがある!

[ 演習 ] 場所移動で何か表示 地図を動かしていき, 東京駅の近くまで来たら 東京駅です! と表示するプログラムを作成しよう! ヒント 1. 東京駅の緯度経度を www.geocoding.jp から取得 2. 地図が動いたら中心座標を取得 3. 地図の中心座標から東京駅の緯度経度の距離が近い時に,alert で東京駅です! と表示する! 20

仕組みとしてはこんな感じ ymap.bind( "moveend", function(){ console.log( " 地図の中心が動いたよ!" ); // 中心座標 ( 緯度経度 ) を取得 var latlng = ymap.getcenter(); console.log( latlng ); console.log( " 緯度 :" + latlng.lat() ); console.log( " 経度 :" + latlng.lng() ); if( latlng.lat() >??? && latlng.lat() <??? && latlng.lng() >??? && latlng.lng() <??? ){ alert( " 東京駅です!" ); } }); 21

[ 演習 ] 地図とページの連動 22 地図を動かすたびに東京駅までのなんとなくの距離を表示し, 近くまで来たら東京駅の画像を地図の下に表示するプログラムを作成しよう! ヒント 1. 距離や画像を提示するタグを用意 2. 東京駅の緯度経度を www.geocoding.jp から取得 3. 地図が動いたら中心座標を取得 4. 緯度経度を XY 座標とみなし距離を計算して出力 5. 地図の中心座標から東京駅の緯度経度の距離が近い時に, 東京駅の画像を表示!

表示領域の取得 地図を 400x300 で表示している時, 左上の緯度経度は var lt = ymap.fromcontainerpixeltolatlng(new Y.Point(0, 0)); 右下の緯度経度は var rb = ymap.fromcontainerpixeltolatlng(new Y.Point(400,300)); で取得することが可能. これを利用すると, 地図で囲まれている領域を取得及び利用することができる! minx maxx がそれぞれどちらになるか計算 miny maxy がそれぞれどちらになるか計算 これを利用すると, 現在何かを表示しているかを取得可能! 23

課題 4-1 次週までの課題 最初にユーザに何らかの目的を与え, 地図をマウス操作することによって動かし, その目的を達成させるようにせよ. なお, 地図の表示位置に応じて動的に結果が変化するようにせよ. ( 例 ) 観光案内, 聖地巡礼ツアー, 鬼ごっこ, かくれんぼ, 宝探し等 ただし, ページの上部に, どのようなプログラムであるのかを明記せよ また, 操作のヒントとなる情報を適宜表示せよ. なお, コンソールに出力されているものはヒントとはみなさない ( つまり, ウェブページまたは地図上に随時出力せよ ) 地図は Google Maps などほかのものを使ってもよい 24