差分表示


風景写真集などのページで,場所を示すための地図をポップアップ表示できれば便利だ.&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回目はスキップする

といったところ.

もう,疲れました.


© 2022 KMIソフトウェア