View
7.301
Download
2
Tags:
Embed Size (px)
DESCRIPTION
GoogleMap モジュールの紹介 2012年5月16日 NetCommons アドオン・モジュール・セミナー @ 九段下 イタリア文化会館
Citation preview
GoogleMap モジュールの紹介
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
@ohwada
大和田 健一横浜市戸塚区 在住ITコンサルタント NetCommons XOOPS / WordPress / Android
自 己 紹 介
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
XOOPS2011年4月 2.2 リリース
2012年4月 リンク集モジュール ロシア語版
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
WordPress2012年4月 3.3.2 リリース
ワードプレス勉強会 @ 横浜・関内
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
Android2012年4月 SDK r19 リリース
日本Androidの会 横浜支部
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
Android によるロボット制御
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
NetCommons
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
構築運営支援 無償 レンタルサーバー
ネットコモンズインストール済
(協力:東京都市大学 )
YN150プロジェクト
http://yn150.jp/
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
1.Google Map 2.Twitter / Facebook3.ヘッダ・チェンジャー 4.Facebook風掲示板
開発したモジュール
http://ohwada.yn150.jp/
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
Google Map
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
1.標準のログインの代わりに Twitter (Facebook) で ログイン出来ます2.ログインユーザの Twitter (Facebook) の タイムラインを表示する
Twitter / Facebook
http://ohwada.yn150.jp/
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
ヘッダ・チェンジャー標準ヘッダカラム、左カラム、右カラム (青色)全てのページで共通
ヘッダカラム(桃色)左カラム(緑色)右カラム(黄色)ページ毎に異なるものに
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
Facebook風掲示板汎用データベース・モジュールをカスタマイズ
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
NetCommons モジュール開発
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
必要な知識
1.HTML + CSS2.PHP / Smarty3.MySQL 4.JavaScript / prototype.js
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
3つのポイント
Maple ベース 1. DIコンテナ 2. フィルタチェイン 3. GUI / WYSIWYG
http://ohwada.yn150.jp/explain/di-container/
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
DIコンテナDependency Injection
依存性の注入
http://www.atmarkit.co.jp/fjava/rensai3/springdi01/springdi01_1.htmlJava Spring
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
フィルタチェイン
http://ethna.jp/ethna-document-dev_guide-app-filterchain.html
PHP Ethna
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
GUI / WYSIWYGWhat You See Is What You Get
見たままが得られる=> JavaScript で実現
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
NetCommons GoogleMapモジュール
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
お知らせ
新バージョン リリース1. GoogleMaps API V3 対応 API Key 不要2. 住所検索 追加
http://ohwada.yn150.jp/googlemap/
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
マニュアル http://bit.ly/ITuwAz
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
モジュール開発
http://www.netcommons.org/mudl5vlri-167/#_167
ブログパーツ モジュール公式サイト 拡張モジュール機能がシンプル初心者にお勧め
ベースは
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
API : JavaScript<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js"></script><script type="text/javascript">function initialize() { var myOptions = { center: new google.maps.LatLng(-34.397, 150.644), zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map( document.getElementById("map_canvas"), myOptions );}</script><body onload="initialize()">
https://developers.google.com/maps/documentation/javascript/
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
理由 NetCommons の GUI と衝突
実装上の工夫
実装の例 1. 地図を表示する 2. 参照で地図を表示する 3. 地図の緯度経度を選択する
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
1. 地図を表示する
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
地図を表示する
function googlemap_load<{$id}>() { var latlng = new google.maps.LatLng( parseFloat(<{$action.parts_data.parts_latitude}>), parseFloat(<{$action.parts_data.parts_longitude}>) ); var zoom = Math.floor( <{$action.parts_data.parts_zoom}> ); var ele = document.getElementById( "googlemap_canvas<{$id}>" ); var map_options = { zoom: zoom, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; … 中略}
googlemap_view_main_init.html
API そのまま
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
<{if $action.load_script}> <script src="http://maps.google.com/maps/api/js" type="text/javascript" charset="utf-8"> </script><{/if}><script type="text/javascript">function googlemap_load<{$id}>() { … 中略}setTimeout( 'googlemap_load<{$id}>()' , 1000):</script>
地図を表示するgooglemap_view_main_init.html
複数表示する
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
地図を表示する複数表示する
チュートリアル <body onload="initialize()">
同等 window.onload =initialize;
複数表示 setTimeout( "initialize_1()” , 1000): setTimeout( ”initialize_2()” , 1000):
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
2. 参照で地図を表示する
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
「参照」の仕組み
「参照」ボタンを押すと1. referGooglemap (JavaScript) 2. popup 形式で3. googlemap_view_edit_preview 実行
参照で地図を表示する
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
参照で地図を表示するgooglemap_view_edit_preview.html
課題 API を記述しても表示しない。対応 iframe にて、 googlemap_view_main_preview を呼出す
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
参照で地図を表示するgooglemap_view_main_preview.html
html フル記述
<html><head><script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript" charset="utf-8"></script></head><body><script type="text/javascript">function googlemap_preview_load<{$id}>() { 省略 ...}</script></body></html>
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
参照で地図を表示する
←iframe
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
3. 地図の緯度経度を選択する
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
GoogleMaps API で動作を記述したJavaScript 900行
地図の緯度経度を選択する
googlemap.jp
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
地図の緯度経度を選択する
対応 (トリッキー) files/default/images/ 配下 htdocs 領域のコピー URLとして指定できる
配置場所の課題 files/default/js/ 配下 DBに格納される
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
googlemap_view_edit_entry.html
地図の緯度経度を選択する
課題 API を記述しても表示しない対応 (参照と同じ) iframe にて、 googlemap_view_main_preview を呼出す
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
googlemap_view_main_location.html
html フル記述
地図の緯度経度を選択する<html><head><script src="http://maps.google.com/maps/api/js" type="text/javascript" charset="utf-8"></script><script src="<{$smarty.const.CORE_BASE_URL}> /images/googlemap/googlemap_location.js" type="text/javascript"></script></head><body><script type="text/javascript">function googlemap_load_get_location() { 省略 ...}</script></body></html>
URL指定
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
NetCommons デバックノウハウ
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
デバックノウハウ
描画→ボタン
通常の画面遷移URL1 URL2
GET/POST
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
デバックノウハウ
部分的再描画ボタン
NetCommonsの画面遷移URL1 URL1 (変わらず)
JavaScript
→ →
GET/POST
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
デバックノウハウ
部分的再描画ボタン
URL1 URL1 (変わらず)
JavaScript
→ →
GET/POST
遷移後の画面が表示できないだろうか?
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
index.php?action=login_view_main_init
デバックノウハウ
ログイン画面表示
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
index.php?action=googlemap_view_main_init
デバックノウハウログイン画面表示
何も表示しない
Smarty error: unable to read resource:
"block.html"
⬇
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
index.php?action=login_view_main_init
if ($action_name == "login_view_main_init" && $block_id == 0)
webapp/components/common/Main.class.php
特別扱い
デバックノウハウ
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
デバックノウハウindex.php?action=googlelmap_view_main_init
&_header=0
地図が選択されてません
地図が選択すれば
⬇
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
デバックノウハウindex.php?action=googlemap_view_main_init
&_header=0&block_id=56
http://ohwada.yn150.jp/index.php?action=googlemap_view_main_init&_header=0&block_id=56
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
GoogleMapAPI
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
1. より部品化が進んだ バルーン (吹き出し) V2: マーカーの1つの機能 V3: 独立した機能 イベントで結びつける
API V2 -> V3
2. 無くなった機能 マーカーをまとめて消す
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
初期のころは、期待した結果が得られなかった。今は、ほぼ期待とおり。
API 住所検索
こういうサービスは、公共機関がやって欲しいな。
http://newspat.csis.u-tokyo.ac.jp/geocode/modules/geocode/index.php?content_id=1
東京大学 ジオコーディング実験
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
1. 回数制限が厳しくなった 以前は、実質 制限なし 最近は、人気サイトでは制限に該当
API 利用許諾
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
GoogleMap 離れFoursquare / Apple / Wikipedia
OpenStreetMap への移行
2012年3月米foursquareGoogle Mapsから“地図版Wikipedia”に移行
http://internet.watch.impress.co.jp/docs/news/20120302_516130.html
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
OpenStreetMap自由な地図を作るプロジェクト
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
OpenStreetMap6月24日 横浜 勉強会
http://connpass.com/event/499/?disp_content=presentation
http://internet.watch.impress.co.jp/docs/column/chizu/20120419_527533.html
4月15日「OpenStreetMap」を作る人の会合で地図編集の心得を学んできた
2012年5月16日 NetCommonsアドオンモジュールセミナー大和田健一
質疑応答