差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行は
このように表示します。
風景写真集などのページで,場所を示すための地図をポップアップ表示できれば便利だ.&link(電子国土API,http://cyberjapan.jp/);の地図と&link(Yahoo UI Library,http://developer.yahoo.com/yui/);のパネルを使って,何とか実装してみた.
//parent=Ajax,JavaScript
//parent=電子国土
このボタンを押すと,&link(尾瀬沼ビジターセンター,http://ozenavi.blog85.fc2.com/);の地図が出る.
#map_panel_btn(139.3165,36.927178)
3枚の地図が連動し,それぞれの地図上をドラッグで移動,「+」「-」でズームという操作.
**環境
-&link(電子国土API,http://cyberjapan.jp/); (EUC-JPで使えるように[[改造した版>電子国土APIはShift_JISのページ専用か?]])
-&link(Yahoo UI Library,http://developer.yahoo.com/yui/); 0.10.0, (古っ!)
YahooUIのバージョンが異様に古いのは,特に意味はない.[[カモランドで使い始めた時点>YahooUILibraryのツリービューを試す]]でのバージョンのまま,バージョンアップしていないだけ.ファイルのタイムスタンプを見ると2006年5月13日なので,相当古いバージョンだ.
IE7,FireFoxそれぞれでよくわからない挙動に悩まされ,もう発狂しそうになりながら,試行錯誤の末なんとかそれらしく動く実装にたどりついた.
電子国土の地図とYUIのパネルを,それぞれ別に使う場合は何の問題もないのだが,一緒に使うと途端にわけの分からない動きになってしまった.
結局難しかったのは,
+YUIのPanel(YAHOO.widget.Panel)をnewするタイミング.これはbody.onLoadより先に実行する.(<body>内に記述する)
+YUIのPanelをrenderするタイミング.これは電子国土のapp_main()コールバックが全て終わってからのタイミングにする.(これをしないとIE7でページを表示できませんエラー)
+電子国土のapp_main()コールバックが二重に発生するので,フラグを使って1回目はスキップする
といったところ.
もう,疲れました.