GoogleMapsのAPIがどうやら固まり2になったので、それに合わせてPukiwikiのプラグインの仕様変更を試みた。以前の1.xのバージョンとは少し仕様が異なるので注意。~
2006-07-15 2.1.0 機能追加色々。[[履歴>#history]]と[[2.1の変更点>#change2_1]]を見てください。~
2006-07-29 2.1.1 バグ修正。[[履歴>#history]]と[[2.1.1の変更点>#change2_1_1]]を見てください。~
2006-08-24 2.1.2 バグ修正。[[履歴>#history]]と[[2.1.2の変更点>#change2_1_2]]を見てください。~
2006-09-30 2.1.3 バグ修正。[[履歴>#history]]と[[2.1.3の変更点>#change2_1_3]]を見てください。~
2006-12-30 2.2.0 機能追加色々。[[履歴>#history]]と[[2.2の変更点>#change2_2]]を見てください。~
2007-01-10 2.2.1 バグ修正。[[履歴>#history]]と[[2.2.1の変更点>#change2_2_1]]を見てください。~

----
#contents

//**Index
//#contents

**サンプル [#c9868bba]
&googlemaps2(width=300px, height=200px, mapctrl=small, usetool=1);

&googlemaps2_icon(神社, image=http://reddog.s35.xrea.com/img/googlemaps/mm_sample.png, shadow=http://www.google.com/mapfiles/shadow50.png, iw=20, ih=34, sw=37, sh=34, ianchorx=10, ianchory=34, sanchorx=10, sanchory=0, area="1 7 7 0 13 0 19 7 19 12 13 20 12 23 11 34 9 34 8 23 6 19 1 13 1 7", transparent=http://reddog.s35.xrea.com/img/googlemaps/transparent.png);

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

こんな風に書く
 &googlemaps2(width=300px, height=200px, mapctrl=small);
 
 &googlemaps2_icon(神社, image=http://reddog.s35.xrea.com/img/googlemaps/mm_sample.png, shadow=http://www.google.com/mapfiles/shadow50.png, iw=20, ih=34, sw=37, sh=34, ianchorx=10, ianchory=34, sanchorx=10, sanchory=0, area="1 7 7 0 13 0 19 7 19 12 13 20 12 23 11 34 9 34 8 23 6 19 1 13 1 7", transparent=http://reddog.s35.xrea.com/img/googlemaps/transparent.png);
 
 -&googlemaps2_mark(35.039379, 135.729248, title=金閣寺, caption=足利義満の別荘。先日変な男が光ケーブルを接続するために車で突っ込んだ。東側の門は暇そうな警備員が守りを固めている。(長文サンプル), image=http://reddog.s35.xrea.com/img/googlemaps/img_kinkaku.jpg);~
 -&googlemaps2_mark(35.031087, 135.735106, title=北野天満宮, caption=菅原道真を祭ってる, icon=神社);~
 -&googlemaps2_mark(35.028723, 135.712963, title=仁和寺,caption=和尚が名物(嘘));~
 -&googlemaps2_mark(35.034477, 135.718348, title=龍安寺,caption=石庭のうずまきが有名);~


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


**ライセンス [#b96c1eed]
BSD-Styleのライセンスです。~
~
Google Maps APIそのものの使用条件は、[[APIのFAQ:http://www.google.com/apis/maps/faq.html]]を読んでください。要約すると、
+ユーザーが無料でアクセスできるなら商用、個人問わず自由に使用可能。
+イントラネットは不可。
+一日50万ページビューのときは事前に申告する。

~ということらしいです。この条件に合わない時は、[[エンタープライズ版:http://www.google.com/enterprise/maps/]]を購入するようにということらしいです。このPukiwikiのプラグインもGoogleのAPIを使っているので、Googleの示した使用条件に従って使用してください。


**ダウンロード [#dadfeaf4]
//-2.1~
//http://reddog.s35.xrea.com/software/googlemaps2.1.3.inc.php.zip~
-2.2~
http://reddog.s35.xrea.com/software/googlemaps2.2.1.inc.php.zip~
~
%%いまのところ実質ベータ版なので%%心は永遠のベータ版なのでそのつもりでどうぞ。


**インストール [#ma16841a]
+[[ Google Maps API - Sign Up:http://www.google.com/apis/maps/signup.html]]でキーを取得する。(無料)
+別にやらなくてもいいけど、googlemaps2.inc.phpのデフォの値(keyとか)を書き換えとくと後で楽。
+pluginディレクトリにgooglemaps2.inc.phpとgooglemaps2_mark.inc.phpとgooglemaps2_icon.inc.phpとgooglemaps2_draw.inc.phpとgooglemaps2_insertmarker.inc.phpをコピーする。


**わかっている不具合 [#r43148e0]
-Operaで滑らかズームできない。
-Operaで右ダブルクリックでズームアウトしない。
-%%複数のページを一つのページに出力するようなincludeやcalender_viewerのようなプラグインを使うと地図が表示されない。%%→2.1.1で修正。
-%%携帯電話で見るとソースコードが表示されてしまう。%%→2.1.3で修正。
-%%overviewコントロールを使うと地図のドラッグが挙動不審になる%%→2.2.1で修正。
-googlemaps2でwidth, heightに単位指定しないと表示が崩れる。→2.2.2で修正予定。

&aname(history);
**履歴 [#qe4656e5]
-1.1 2005-09-25
--リリース
-2.0 2006-04-20
--Googlemapsのverion2のAPIに対応した。大幅仕様変更。
-2.1 2006-07-15
--滑らかズームに対応した。
--ダブルクリックズームに対応した。
--マーカーのタイトルをツールチップで表示するようにした。
--ブロック型の書式に対応した。
--commentプラグインを%%パクった%%参考にしたgooglemaps2_insertmarkerを追加。
--XSS対策をした。その結果googlemaps2_markのformatlist, formatinfoはユーザーから使えなくなった。これらを変更したい場合は、googlemaps2_mark.inc.php冒頭の定数定義を書き換えてください。
-2.1.1 2006-07-29
--複数のページを一つのページに出力するプラグインを使うと地図が表示されないバグを修正した。
-2.1.2 2006-08-24
--単語検索からマーカー名がハイライトされるとエラーになるバグを修正した。
-2.1.3 2006-09-30
--携帯電話PDA用のレイアウトでスクリプトを出力しないようにした。
-2.2 2006-12-30
--住所から地図を移動できるジオコーダーのコントロールを作った。
--地図にセンタークロスを表示できるようにした。
--ふきだしを最大化してPukiwikiのページを表示できるようにした。
--地図のズーム値でマーカーの表示/非表示を変えられるようになった。
--図形の描画で塗りつぶしができるようになった。
--マップタイプの切り替えコントロールを小さく表示するようにした。
--GoogleのURLをmaps.google.comからmaps.google.co.jpに変更。IEで日本語が表示できるようになった。
--ふきだしに画像がある場合、画像の読み込みを待ってからふきだしを開くようにした。画像が重い場合、ふきだしが表示されるまでタイムラグがあるかもしれないが、画像がふきだしからはみでないようになった。
-2.2.1 2007-01-10
--overviewctrlを使うと地図が挙動不審になるバグを修正。
--複数のページのgooglemaps2_insertmarkerを一つのページに表示したときに挙動不審になるバグを修正。

**googlemaps2機能要約 [#a9d16752]
-1ページ内に複数の地図を表示できるようになった。
-新しいOverviewMapコントロールが表示できるようになった。
-小さいズームボタンを表示できるようになった。googlemaps2(mapctrl=smallzoom)。
-マーカーにズームを設定できるようになった。googlemaps2_markのzoomオプション。
-アイコンを表示しないマーカーのようなもの(謎)を作れるようになった(googlemaps2_markのnoiconオプション。)
-マーカーを一時的に隠したりできるようになった。googlemaps2のtogglemarkerオプション
-アイコンの透明度の型抜きオプションが指定できるようになった。googlemaps2_iconのtransparent, areaオプション。
-地図に線が引けるようになった。
-define, classオプションで繰り返し書くオプションを省略できるようになった。
-APIのver2ではIEでのJS関連のメモリリークが軽減するらしい。
-APIのver2では都市部の衛星写真の解像度が上がってるらしい。
-APIのver2ではスクリプトのファイルサイズが小さくなってるらしい。
~ここから2.1
-滑らかに地図がズームするようになった。
-マーカーのタイトルがツールチップで表示できるようになった。
-マーカーの登録が簡単にできるgooglemaps2_insertmarkerプラグイン。
~ここから2.2
-住所から地図を移動するジオコーダーのコントロール。(geoctrl)
-フキダシを最大化してPukiwikiのページを表示できるようになった。(maxurl)
-地図に塗りつぶしポリゴンを描画できるようなった。
-マーカーごとに、表示するズームレベルを指定できるようになった。


**旧バージョン(1.x)から2.0の廃止、変更点(この章もういらない?) [#c0442242]
-googlemaps2
--cx,cyの廃止。新しいlat,lngで座標を指定するようにしてください。
--formatlist, formatinfo, alinkの廃止。これらのオプションはgooglemap2_markに移動しました。
--smallの廃止。新しいmapctrlでマップコントロールを指定してください。
--maptypeの廃止。表示非表示はtypectrlで表示タイプはtypeオプションで指定してください。
--mapname, lat, lng, mapctrl, type, typectrl, scalectrl, overviewctrl, togglemarker, noiconname, define, classの追加。
--zoom値の指定方法が変りました。newZoom = 17 - oldZoom。
-googlemaps2_mark
--formatlist, formatinfo, alinkの追加。
--noinfowindow, zoom, noicon, define, classの追加。
--座標の指定がlat,lngになり、x,yの引数の順序が逆になりました。
-googlemaps2_icon
--第一引数のnameだけ必須でimage, shadowimage, imagesize_w, imagesize_h, shadowsize_w, shadowsize_hは省略可能になった。
--オプション名の変更shadowimage→shadow, imagesize_w→iw, imagesize_h→ih, shadowsize_w→sw, shadowsize_h→sh
--transparent, area, define, classの追加。
-googlemaps2_drawを新規に追加。


&aname(change2_1);
**2.0から2.1のAPIの変更点 [#lee036ce]
-googlemaps2
--dbclickzoom, continuouszoomオプションの追加。
--usetoolオプションの廃止。
--ブロック型書式に対応。

-googlemaps2_mark
--imageオプションでページに添付された画像を使えるようにした。これはgooglemaps2_markのimageオプションだけでgooglemaps2_iconのimageオプションではいままでどおり画像へのパスを指定してください。
--formatlist, formatinfoオプションの廃止。
--ブロック型書式に対応。

-googlemaps2_icon
--ブロック型書式に対応。

-googlemaps2_draw
--ブロック型書式に対応。

-googlemaps2_insertmarker
--2.1から追加。


&aname(change2_1_1);
**2.1から2.1.1のAPIの変更点 [#lee036ce]
なし

&aname(change2_1_2);
**2.1.1から2.1.2のAPIの変更点 [#lee036ce]
なし

&aname(change2_1_3);
**2.1.2から2.1.3のAPIの変更点 [#lee036ce]
-googlemaps2.inc.phpの定数に''PLUGIN_GOOGLEMAPS2_PROFILE''を追加。GoogleMaps2が対応しているデバイスのプロファイル名をリストで定義する。デフォルトでは''default''のみ。それ以外のデバイス(携帯電話・PDA)の出力用プロファイル''keitai''ではスクリプトを出力しない。Pukiwikiが1.4.5以上で、改造していなければそのままでよい。

&aname(change2_2);
**2.1.3から2.2のAPIの変更点 [#j13bba48]
-googlemaps2
--geoctrl, crossctrlオプションの追加。

-googlemaps2_mark
--maxurl, minzoom, maxzoomオプションの追加。

-googlemaps2_icon
--なし

-googlemaps2_draw
--fillopacity, fillcolor, inradiusオプションの追加。
--polygonコマンドの追加。

-googlemaps2_insertmarker
--なし

&aname(change2_2_1);
**2.2から2.2.1のAPIの変更点 [#o9601d34]
なし


**Pukiwikiドキュメントの旧バージョン(1.x)から2.xの変更方法 [#y9b98a38]
+googlemapsをgooglemaps2に書き換える。
++formatlist, formatinfo, alinkを使っていた場合はgooglemaps2_markにオプションを移す。
++cxをlngにする。cyをlatにする。
++small=1を使っていた場合はmapctrl=smallに変更する。
++small=0を使っていた場合はmapctrl=largeに変更する。
++maptype=0を使っていた場合はtypectrl=noneに変更する。
++maptype=1を使っていた場合はtypectrl=normalに変更する。
++zoomを使っていた場合は値を17-zoomにする。
+googlemaps_markをgooglemaps2_markに書き換える。
++googlemaps2_mark(x, y ...)のxyを入れ替えてgooglemaps2_mark(y, x ...)にする。
+googlemaps_iconをgooglemaps2_iconに書き換える。
++googlemaps_icon(a,b,c,d,e,f,g ...)て書いてたのを、googlemaps2_icon(a, image=b, shadow=c, iw=d, ih=e, sw=f, sh=g ...)という風にオプション名を付ける。

たぶんこれくらい。めんどくさい人用(動作非保証)→http://reddog.s35.xrea.com/js/pukiwiki_googlemaps2_update.html

**リファレンス [#r998f889]
***googlemaps2 [#i9655a4e]
-書式(オプションを省略するとデフォの値が用いられます)
 &googlemaps2(?option=value, ...?);
 #googlemaps2(?option=value, ...?)
-オプション
--''key''     Googleから取得したKey
--''mapname'' 複数の地図を張る場合に必ずユニークな名前を指定してください。一枚だけの時は省略可。
--''width''   横幅。スタイル指定。ex. 640px, 100%など。
--''height''  縦幅。スタイル指定。
--''lat''     中心座標の緯度
--''lng''     中心座標の経度
--''zoom''    倍率(0~19)
--''type''    地図のタイプ(normal, satellite, hybrid)
--''mapctrl''    地図の倍率変更などのボタン。(none,normal,smallzoom, small, large(largeはnormalと同じ))
--''typectrl''   地図と衛星写真切り替えボタン。(none, normal)
--''scalectrl''  縮尺の表示。(none, normal)
--''overviewtype'' オーバービューマップの地図のタイプ(normal, satellite, hybrid)
--''overviewctrl'' オーバービューマップの表示。hide, showはどちらも表示だが、初期状態が隠れているか表示しているかの違い。(none, hide, show)
--''overviewwidth''   オーバービューマップの横幅ピクセル数(px,%などの単位をつけないでください)
--''overviewheight''  オーバービューマップの縦幅ピクセル数(px,%などの単位をつけないでください)
//--''api''
--''togglemarker'' マーカーの表示を切り替えるチェックボックスの表示。(true or false)
--''noiconname''   togglemarkerで使用する。アイコン無しマーカーに使用するラベル。
--''dbclickzoom''    ダブルクリックでズームする。(true or false)
--''continuouszoom'' 滑らかにズームする。(true or false)
--''geoctrl'' 住所から地図を移動するGeocoderコントロールの表示(show, none) (2.2から)
--''crossctrl'' 地図中央のセンタークロスの表示(show, none)(2.2から)

-特殊オプション
--define
--class


***googlemaps2_mark [#hffba322]
 &googlemaps2_mark(lat, lng ?, option=value, ...?);
 #googlemaps2_mark(lat, lng ?, option=value, ...?)

-オプション
--''map''     マーカーをつけるマップ名。googlemaps2のmapname。省略したらデフォの値になる。
--''title''   マーカーの名前
--''caption'' マーカーの説明
--''image''   画像。名前がhttp~で始まらないものはページに添付された画像と判断する。
--''zoom''    倍率(0~17)
--''icon''    マーカーのアイコン(googlemaps_iconでiconを事前に作成しておく)
--''nolist''  地図以外のマーカーリスト(上の例でいえば地図の下のやつ)に出力しない。(0 or 1)
--''noinfowindow'' フキダシを表示しない(0 or 1)
--''noicon''       アイコンを表示しない(0 or 1)。これがtrueだとnoinfowindowもtrueになる。
//--''formatlist''  マーカーリストの書式(html文字列)
//--''formatinfo''  マーカーのフキダシの書式(html文字列)
--''alink''       マップ上のinfoWindowと本文中のテキストをリンクさせる(0 or 1)
--''maxurl'' ふきだしを最大化したときに表示するPukiwikiのページ名かページのURL。(2.2から)
--''maxzoom'' マーカーを表示するズーム範囲の最大ズーム値(0~17) (2.2から)
--''minzoom'' マーカーを表示するズーム範囲の最小ズーム値(0~17)(2.2から)
-特殊オプション
--define
--class

出力されるリストとマーカーのフキダシの書式を変更するにはgooglemaps2_mark.inc.phpの
PLUGIN_GOOGLEMAPS2_MK_DEF_FORMATLIST と PLUGIN_GOOGLEMAPS2_MK_DEF_FORMATINFOをそれぞれ
書き換えてください。これらの定数で定義されているテンプレートは%title%と%caption%と%image%の文字列を各マーカーのそれに置き換えます。~

***googlemaps2_icon [#kc5f9b83]
 &googlemaps2_icon(name, ?, option=value, ...?);
 #googlemaps2_icon(name, ?, option=value, ...?)

-オプション
--''image''    アイコン画像
--''shadow''   影の画像
--''iw''       アイコン画像の横幅
--''ih''       アイコン画像の縦幅
--''sw''       影の画像の横幅
--''sh''       影の画像の縦幅
--''ianchorx'' アイコンの位置調整
--''ianchory'' アイコンの位置調整
--''sanchorx'' フキダシの位置調整
--''sanchory'' フキダシの位置調整
--''area''        アイコンの透明領域のcoordsリスト。クリッカブルマップ。例 area="1 1 4 1 4 4 1 4"
--''transparent'' アイコンの透明領域指定用pngファイル。
-特殊オプション
--define
--class

googlemaps2_iconの第一引数でアイコンの名前を指定します。~
以下の引数でアイコンと、アイコンの影のURLとそれぞれのサイズを指定します。~
アイコンと影は左上の座標を原点にして重ねて表示されます。~
オプションのianchorx, ianchoryはアイコンと影の表示位置を調整します。デフォルトでは左上がマーカーの座標になるので、上の例のように画像の下の真ん中あたりを座標に合わせたいときは、ianchorx = アイコンの横幅/2, ianchory = アイコンの縦幅でよいです。省略された時は0になります。~
sanchorxとsanchoryはマーカーをクリックしたときに表示されるフキダシの位置調整をします。デフォルトではアイコンの左上に付きます。上の例では上辺の真ん中に来るように調整してます。省略された時は0になります。~
アイコンの画像ではページ添付された画像を使うことはできません。

-アイコンの作り方
TODO

***googlemaps2_draw [#o9ae69fe]
 &googlemaps2_draw(command, ?, option=value, ...?);
 #googlemaps2_draw(command, ?, option=value, ...?)

コマンドで描画を指定して、そのコマンドが必要とするオプションを指定する。

-コマンド
--''line''
 //(35.1, 135.1) (35.2, 135.2) (35.3, 135.3) を通る線を引く。
 &googlemaps2_draw(line, width=10, opacity=0.5, color=#00FF00, 35.1, 135.1, 35.2, 135.2, 35.3, 135.3);
---省略可能オプション~
map, weight, opacity, color

--''rectangle''
 //(35.1, 135.1)と対角が(35.2, 135.2) の四角形
 &googlemaps2_draw(rectangle, lat1=35.1, lng1=135.1, lat2=35.2, lng2=135.2);
---省略可能オプション~
map, lat1, lng1, lat2, lng2, weight, opacity, color, fillopacity, fillcolor

--''circle''
 //(35.0,135.0)を中心とした半径10kmの円
 &googlemaps2_draw(circle, lat=35.0, lng=135.0, radius=10);
---省略可能オプション~
map, lat, lng, radius, weight, opacity, color, fillopacity, fillcolor

--''arc''
 //(35.0,135.0)を中心とした半径10kmの0度から180度までの弧を描画
 &googlemaps2_draw(arc, lat=35.0, lng=135.0, radius=10, stangle=0, edangle=180);
---省略可能オプション~
map, lat, lng, radius, inradius, stangle, edangle, weight, opacity, color, fillopacity, fillcolor

--''ngon''
 //(35.0,135.0)を中心とした半径10kmの正5角形の描画
 &googlemaps2_draw(ngon, lat=35.0, lng=135.0, radius=10, n=5);
---省略可能オプション~
map, lat, lng, radius, rotate, n, weight, opacity, color, fillopacity, fillcolor

--''polygon''
 //(35.1, 135.1) (35.2, 135.2) (35.3, 135.3) を頂点とするポリゴンの作成。
 &googlemaps2_draw(polygon, width=10, opacity=0.5, color=#00FF00, 35.1, 135.1, 35.2, 135.2, 35.3, 135.3);
---省略可能オプション~
map, weight, opacity, color, fillopacity, fillcolor



-オプション
--''opacity '' 線の透明度 0.0~1.0
--''weight''   線の太さ
--''color''    線の色 #RRGGBB指定
--''fillcolor''      塗りつぶしの色 #RRGGBB指定 (2.2から)
--''fillopacity''    塗りつぶしの透明度 0.0~1.0 (2.2から)
--''map''      描画対象のmap名
--''lat''      緯度
--''lng''      経度
--''lat1''     緯度1
--''lng1''     経度1
--''lat2''     緯度2
--''lng2''     経度2
--''radius''   半径。単位はkm
--''inradius'' arcを描画する時の内側の半径。単位はkm。(2.2から)
--''stangle''  開始角
--''edangle''  終了角
--''rotate''   回転度数
--''n''        正n角形の頂点数
-特殊オプション
--define
--class

***googlemaps2_insertmarker [#tf993c81]
 #googlemaps2_insertmarker(?, option=value, ...?)
''ブロック型しかありません!''

-オプション
--''map''         マーカーをつけるマップ名。googlemaps2のmapname。省略したらデフォの値になる。
--''direction''   マーカーリストを上に追加していくか、下に追加していくか。(up or down)

フォームからマップの中央にマーカーを登録する。ドラッグしたりマップを動かすと、マップ中央の位置情報が動的に更新されるので、マーカーを付けたいところをダブルクリックして中央に持ってきて、タイトルと詳細を記入してポストするだけです。


***define, classオプションを使ったオプションの省略 [#t6e357f6]
基本的に、これらのプラグインはoption=value形式でオプションを指定していくのだが、マーカーやアイコンの生成において同じオプションを繰り返し書くような場合も多く、ごちゃごちゃして見難かった。そこで、defineでオプション群を定義し、classでそれらをまとめて指定するというようなことができるようにした。
たとえば、次のように色違いのアイコンを3つ定義するとする。
 &googlemaps2_icon(神社, image=http://reddog.s35.xrea.com/img/googlemaps/mm_jinjya.png, shadow=http://www.google.com/mapfiles/shadow50.png, iw=20, ih=34, sw=37, sh=34, ianchorx=10, ianchory=34, sanchorx=10, sanchory=0, area="1 7 7 0 13 0 19 7 19 12 13 20 12 23 11 34 9 34 8 23 6 19 1 13 1 7", transparent=http://reddog.s35.xrea.com/img/googlemaps/transparent.png);
 &googlemaps2_icon(仏閣, image=http://reddog.s35.xrea.com/img/googlemaps/mm_bukkaku.png, shadow=http://www.google.com/mapfiles/shadow50.png, iw=20, ih=34, sw=37, sh=34, ianchorx=10, ianchory=34, sanchorx=10, sanchory=0, area="1 7 7 0 13 0 19 7 19 12 13 20 12 23 11 34 9 34 8 23 6 19 1 13 1 7", transparent=http://reddog.s35.xrea.com/img/googlemaps/transparent.png);
 &googlemaps2_icon(古墳, image=http://reddog.s35.xrea.com/img/googlemaps/mm_kofun.png, shadow=http://www.google.com/mapfiles/shadow50.png, iw=20, ih=34, sw=37, sh=34, ianchorx=10, ianchory=34, sanchorx=10, sanchory=0, area="1 7 7 0 13 0 19 7 19 12 13 20 12 23 11 34 9 34 8 23 6 19 1 13 1 7", transparent=http://reddog.s35.xrea.com/img/googlemaps/transparent.png);
アイコンは同じ形状で色違いなだけで第一引数の名前と、image以外は全てオプションが同じだとすると、同じオプションを何度もくりかえし書くのは面倒。そこでdefine, classを使って書き直すと。
 &googlemaps2_icon(dummy, define=mkan, image=http://reddog.s35.xrea.com/img/googlemaps/mm_jinjya.png, shadow=http://www.google.com/mapfiles/shadow50.png, iw=20, ih=34, sw=37, sh=34, ianchorx=10, ianchory=34, sanchorx=10, sanchory=0, area="1 7 7 0 13 0 19 7 19 12 13 20 12 23 11 34 9 34 8 23 6 19 1 13 1 7", transparent=http://reddog.s35.xrea.com/img/googlemaps/transparent.png);
 &googlemaps2_icon(神社, class=mkan, image=http://reddog.s35.xrea.com/img/googlemaps/mm_jinjya.png);
 &googlemaps2_icon(仏閣, class=mkan, image=http://reddog.s35.xrea.com/img/googlemaps/mm_bukkaku.png);
 &googlemaps2_icon(古墳, class=mkan, image=http://reddog.s35.xrea.com/img/googlemaps/mm_kofun.png);
このように同じオプションを繰り返して書くのを省いてごちゃごちゃした部分を最小限に押し込んで、すっきり書くことができる。~
~
[[PukiwikiでGoogleMaps2サンプル]]も見てみてください。~
~
注意:今のところdefineの中にclassを指定して継承したり、複数のclassを指定したりすることはできません。%%最初はやろうと思ってたけどなんか複雑になりすぎそうな気がしてやめた。%%できません。

***googlemaps2_drawのオプションの省略 [#cdc4cbd9]
googlemaps2_drawにもdefine, classは一応作ったのだけど、実はあまり使わない(と思う)。というのはgooglemaps2_drawは一度オプションを使うと、そのオプションは保存され、次に使うときは省略できるという状態遷移しながら描画するという風に作った。例えば、(35.00, 135.00)を中心に、半径1km, 2km, 3km, 4kmの円を書く場合、
 &googlemaps2_draw(circle, map=tmap, radius=1, lat=35.00, lng=135.00, opacity=0.5, weight=10, color=#FFFFFF);
 &googlemaps2_draw(circle, radius=2);
 &googlemaps2_draw(circle, radius=3);
 &googlemaps2_draw(circle, radius=4);
のように最初のコマンドと同じパラメータは省略できる。次に色を変えて10kmのところに円を書く場合は、
 &googlemaps2_draw(circle, radius=10, color=#00FF00);
のようにcolorオプションを変更する。

~
[[PukiwikiでGoogleMaps2サンプル]]も見てみてください。~
~


***その他 [#k78cb4b0]
-デフォルトの値を変えたいとか、もう少しあれをなんとかしたい場合はソースを勝手に改造して使ってください。
-省略可能な引数のオプションは順番もどうでもいいです。
-googlemaps2のkeyオプションはソースファイルに直接書いて省略した方が見やすい。


**サンプル色々 [#b7cce7ca]
[[PukiwikiでGoogleMaps2サンプル]]


**コメントをどーぞ [#b88ef58f]
- 探してました。ありがとうございます! -- [[SantA2]] &new{2006-05-11 (木) 22:07:05};
- 探してました。ありがとうございます! -- [[SantA2]] &new{2006-05-11 (木) 23:46:07};
- 1からGoogleMap2にバージョンアップさせていただきました。ありがとうございました。 -- [[まさ]] &new{2006-05-13 (土) 16:21:31};
- [[自分の環境:http://taketan.mydns.jp/xoops/modules/bwiki/index.php?%A5%C6%A5%B9%A5%C8%2FGoogle%20Map#googlemaps2]]でも何も問題なく動いていそうです。感謝感激。 -- [[Taketan]] &new{2006-07-05 (水) 10:08:40};
- 素晴らしい![[PukiWikiMod 用にちょっとだけ手を入れました。:http://hypweb.net/xoops/wiki/4996.html]]ありがとうございます。 -- [[nao-pon]] &new{2006-07-05 (水) 13:54:19};
- すばらしいです、 -- [[jpopwiki]] &new{2006-07-05 (水) 14:58:33};
- ありがたく使わせていただいてます。imageでページに添付された画像でも表示できればうれしいのですが。可能でしょうか? -- [[chikichiki]] &new{2006-07-10 (月) 10:43:18};
-- できると思いますけどアイコンが多い場合にサーバに負荷がかかりすぎませんかね? -- [[reddog]] &new{2006-07-10 (月) 18:24:07};
- もの凄く便利です。このようなプラグインは非常にありがたい限りです。 -- [[uso4]] &new{2006-07-28 (金) 16:58:47};
- 単語検索でgooglemaps2_markで指定した場所を検索し、該当ページに飛んだ場合、その場所のマーカーが表示されません(例えば、サンプルの「金閣寺」など)。IE6とFireFox1.5で確認。 -- [[froggy]] &new{2006-08-24 (木) 01:07:33};
-- 確認しました。バグ報告ありがとうございます。 -- [[reddog]] &new{2006-08-24 (木) 12:10:03};
- 使わせていただきました。ありがとうございます。携帯で見ると地図は表示されずにソースが… -- [[ぷきぷき]] &new{2006-09-08 (金) 23:56:35};
-- webを見れる携帯持ってないけど何とかしたい思います・・・ -- [[reddog]] &new{2006-09-28 (木) 20:38:57};
- 噴出しの中に半角の空白などを含んだ長い文字列を書きたいのですが、うまくいかないようです。また、噴出しの中にURLなどを記載したいのですが、可能でしょうか。 -- [[バッシー]] &new{2006-10-11 (水) 00:39:27};
-- 噴出しの中のHTMLタグはXSS対策をしたので基本的に一切使えません。すいません。どうしても使いたい場合はgooglemaps2_mark.inc.phpの出力テンプレートを書き換えたり、XSS対策してる部分を改造するなどしてください。あと長い文字列がうまくいかないというのはどういう状況かちょっとよくわかりません。 -- [[reddog]] &new{2006-10-11 (水) 12:48:08};
- ご丁寧にご回答ありがとうございました。XSS対策でしたか。ちなみに、別ページからのリンクはどうしたらよいのでしょう。 -- [[バッシー]] &new{2006-10-15 (日) 01:20:34};
-- アクセスしてきたURLを判別して地図中の複数のマーカーから一つを選び、フキダシを開くということは今のところ不可能ですね・・・。 -- [[reddog]] &new{2006-10-16 (月) 07:18:50};
- 使っています。 ありがとうございます。 現状倍率0-17ですが、ダブルクリックで19までの倍率を表示させたい場合に、どうすればいいでしょうか。  -- [[mentyan]] &new{2006-10-18 (水) 17:10:57};
-- たぶん18,19の倍率はまだAPIから使えないんじゃないですかね。使えるようになったらhttp://googlemapsapi.blogspot.com/で言及すると思うんですが。 -- [[reddog]] &new{2006-10-18 (水) 18:13:37};
- &googlemaps2(, zoom=19,); とすると出来るんですが、ZOOMダウンすると復帰できないんです。 ヒントあればm(__)m -- [[mentyan]] &new{2006-10-18 (水) 22:31:20};
- あれ なんか変な書込みかたしたかな? すんません。  -- [[mentyan]] &new{2006-10-18 (水) 22:33:58};
-- Google側が対応するまで待つしかないような。 -- [[reddog]] &new{2006-10-19 (木) 07:59:30};
- http://googlemapsapi.blogspot.com/ を参照しました。 えらいすんませんでした。 -- [[mentyan]] &new{2006-10-19 (木) 08:13:48};
- つくろうつくろうと思って早2年、結局こちらのプラグインを利用させてもらっています。 -- [[Matthew]] &new{2006-11-20 (月) 16:16:29};
- ちょっと改造して[[こんなの:http://www.castanet.homeip.net/~tos/wiki/index.php?Google%20Maps%20API%20%A4%C7%CD%B7%A4%D6]]作ってみました。 -- [[TOS]] &new{2006-12-16 (土) 09:56:55};
- googlemaps2.inc.phpのオーバービューマップの設定を「hide」にするとマウスでのマップ移動で正常に動作しません。insertmarkerの座標も表示されなくなります。 -- [[chikichiki]] &new{2007-01-09 (火) 14:18:46};
-- バグ報告ありがとうございます。直したいと思います。 -- [[reddog]] &new{2007-01-09 (火) 18:45:23};
- 使わせていただいております。IE7で&googlemaps2(width=???, height=???);のようにサイズを明示的に指定すると、サイズに関係なく地図が表示されずにコントロールだけが表示されてしまうようです。 -- [[integral-sparkling]] &new{2007-01-22 (月) 00:55:08};
- 当方のサーバに入れてみましたが,IE6で地図が表示されない現象が起きています。Javascriptnoエラーメッセージは「onloadfuncは宣言されていません」・「終了していない文字列型の定数です」です。ただしこのページにあるサンプルや他サイトの地図は表示されます。またie7では全く問題ありません。 -- [[yocchi]] &new{2007-01-22 (月) 09:38:26};
-- >integral-sparklingさん ???の部分は何て書いたんですか?数字だけなら300pxとか50%とか単位をつけてみてください。 -- [[reddog]] &new{2007-01-22 (月) 14:17:00};
-- >yocchiさん ちょっとわからないです。問題のページを見せてもらうことは可能でしょうか? -- [[reddog]] &new{2007-01-22 (月) 14:25:45};
- Puki WikiをUTF-8版からEUC-JP版にしたらIE6でも問題なく動作しました。ろくに確認もせずに大変失礼いたしました。UFT-8だと問題があるということなのでしょうか?plugin側の設定変更で対応可能ですか? -- [[yocchan]] &new{2007-01-22 (月) 17:40:53};
- 単位は必須なんですね。勘違いしていたようです。申し訳ありません。回答ありがとうございました。 -- [[integral-sparkling]] &new{2007-01-22 (月) 18:17:24};
-- >yocchiさん EUCでプラグインを書いてるので、プラグインをUTF-8に変換すればUTF-8版のPukiwikiでも動作するんじゃないでしょうかね・・・。たぶん・・・。 -- [[reddog]] &new{2007-01-22 (月) 18:52:13};
-- >integral-sparklingさん 2.2.2で単位を省略できるようにしておきます・・・ -- [[reddog]] &new{2007-01-22 (月) 18:57:47};

#comment


----
[[PukiwikiでGoogleMaps]] [[CategoryJavaScript]]


HTML convert time: 0.125 sec.