最近東神戸の書店情報がごちゃごちゃしてきたので見やすい地図を張りたくなった。
Pukiwikiのプラグインで何かありそうだと思って探したけど、無かったので自分で書いてみた。
GoogleMapsはまだベータ段階でAPIも流動的なので(ver2で固まった模様)今後もそのまま使えるかどうかは不明だが(ver1系は将来的に廃止されるらしい。)、一応できるよーということで。。。v2系に対応して1.1.1にしてみた(2006-05-01)

v3対応の最新版はこちらへどうぞ PukiwikiでGoogleMaps3

サンプル

[小物ツール]
マーカーの雛型作成

こんな風に書く

&googlemaps(width=300px, height=200px, small=1, maptype=1);

&googlemaps_icon(神社, http://reddog.s35.xrea.com/img/googlemaps/mm_sample.png, http://www.google.com/mapfiles/shadow50.png, 20, 34, 37, 34, ianchorx=10, ianchory=34, sanchorx=10);

-&googlemaps_mark(135.72924826268591554, 35.03937960872038611, title=金閣寺, caption=足利義満の別荘。先日変な男が光ケーブルを接続するために車で突っ込んだ。東側の門は暇そうな警備員が守りを固めている。(長文サンプル), image=http://reddog.s35.xrea.com/img/googlemaps/img_kinkaku.jpg);~
-&googlemaps_mark(135.73510610251286543, 35.03108745526382363, title=北野天満宮, caption=菅原道真を祭ってる, icon=神社);~
-&googlemaps_mark(135.71296373262029438, 35.02872397300313933, title=仁和寺,caption=和尚が名物(嘘));~
-&googlemaps_mark(135.71834889613717445, 35.03447795362604991, title=龍安寺,caption=石庭のうずまきが有名);~

動作環境

Pukiwiki1.4.6をEUC-JPで使っています。
DTD宣言でXHTMLをHTML 4.01 Transitionalとして宣言してあります。
FirefoxとIEで超適当に動作確認。動かない環境がありそうな気がする。

ライセンス

BSD-Styleのライセンスです。

ダウンロード

GoogleがVersion1系をもうすぐ止めるらしいので、配布停止にします。
様々な機能を追加したVersion2系は PukiwikiでGoogleMaps2 で配布しています。

履歴

インストール

  1. Google Maps API - Sign Upでキーを取得する。(無料)
  2. 別にやらなくてもいいけど、googlemaps.inc.phpのデフォの値(keyとか)を書き換えとくと後で楽。
  3. pluginディレクトリにgooglemaps.inc.phpとgooglemaps_mark.inc.phpとgooglemaps_icon.inc.phpをコピーする。

使い方

googlemapsで地図を表示して、googlemaps_markでマーカーをつけます。
マーカーで自分で作ったアイコンを使いたいときはgooglemaps_iconでアイコンを定義します。

formatlistとformatinfoは%title%と%caption%と%image%の文字列を各マーカーのそれに置き換える。
例文:

<b>%title%</b> - %caption%
<b>%title%</b><br><div style='width:200px;'><span style='float:left;'>%image%</span>%caption%</div>

追記 2006-03-14

しばらくメンテをほっといたら座標系がいつのまにか変っていたので次のような
TclスクリプトでPukiwikiのドキュメントを修正した。Pukiwikiのプラグインは
何も変更していない。mpexprは任意桁数で計算できるライブラリで、ちょっと
Tclのデフォでの精度に不安があったので使ってみた。それだけ。

package require Mpexpr
set str [read stdin]

proc trav {x y} {
	set x [mpexpr $x - $y * 0.000046038 - $x * 0.000083043 + 0.010040]
	set y [mpexpr $y - $y * 0.00010695  + $x * 0.000017464 + 0.00460170]
	return [list $x $y]
}
proc fmt {s1 s2 s3 s4} {
	foreach {s2 s4} [trav $s2 $s4] break
	return $s1$s2$s3$s4
}
proc conv {str} {
	set q {(\&googlemaps_mark\()(\d*\.\d*)([^\d]*,[^\d]*)(\d*\.\d*)}
	foreach {s0 s1 s2 s3 s4} [regexp -inline -all -- $q $str] {
		set str [string map [list $s0 [fmt $s1 $s2 $s3 $s4]] $str]
	}
	return $str
}
puts [conv $str]
exit

座標の取得方法いろいろ

今後の予定

コメントをどーぞ


CategoryJavaScript CategoryGoogle CategoryPukiwiki


|New|Edit|Freeze|Diff|History|Attach|Copy|Rename|
Last-modified: 2013-02-01 (Fri) 07:11:16
HTML convert time: 0.034 sec.