マップレット、いまいちはやりませんね。強引にはやらせるぞ。
そういうわけで、今、圧倒的流行を見せているGoogleマップのマップレット!遅れをとらないためにテンプレートを書いてみます。まずは大枠。
01 : <?xml version="1.0" encoding="UTF-8"?>
02 : <Module>
03 : <ModulePrefs title="__MSG_title__"
04 : description="__MSG_description__"
05 : author="kosumi"
06 : author_email="mail@adress"
07 : screenshot="http://screenshot.png"
08 : thumbnail="http://thumbnail.png"
09 : height="150">
10 : <Require feature="sharedmap"/>
11 : <Locale messages="http://default/ALL_ALL.xml" />
12 : <Locale lang="ja" messages="http://japanese/ja_ALL.xml" />
13 : </ModulePrefs>
14 : <Content type="html">
15 : <![CDATA[
16 : __MSG_instructions__
17 : <script>
18 : </script>
19 : ]]>
20 : </Content>
21 : </Module>
たぶんいろいろ設定パラメータはあるんでしょうが、上記くらいでいいんじゃないでしょうか。各行の意味は下記の通り。
01 : XMLの決まり文句。
02 :
03 : タイトル。"__MSG_title__"は別ファイルに定義。
04 : 説明文。"__MSG_description__"は別ファイルに定義。
05 : 作者
06 : 作者のメールアドレス
07 : スクリーンショット画像へのURL。ちょっと大きめの画像。
08 : サムネイル画像へのURL。小さい画像。
09 : 画像の高さ
10 : しらん
11 : デフォルトの変数定義ファイル。
12 : 日本語の変数定義ファイル。
13 :
14 :
15 :
16 : やや長い説明文。"__MSG_instructions__"は別ファイルに定義。
16~18行にJavascriptを記述し、まあ、マップレットとしてはここが本体です。”__MSG_”系の変数(マクロ?)は11行目、12行目で参照されているファイルに記述します。これはいろんな言語にあわせてタイトルや説明文を用意できるようにするためです。上記の例では英語のものと日本語のものを用意し、日本語でアクセスされた場合は日本語のタイトル・説明文が、それ以外の言語からアクセスされた場合は英語のタイトル・説明文が表示されます。
日本語の場合の説明文の例を下記に示します。
<?xml version="1.0" encoding="UTF-8"?>
<messagebundle>
<msg name="title">集合場所決定ツール</msg>
<msg name="description">集合場所を決定するためのツール</msg>
<msg name="instructions">クリックした点の中心を求めます。マークをクリックすると削除されます。もうちょい賢くしたいけど・・・くっ、ガッツが足りない!</msg>
</messagebundle>
というわけで、枠はこんな感じであとは本体を書くのみ。GoogleMapAPIみたいな感じで書けばよいです。ちょっと仕様が違うけど。
以下、Googleによるhello world。
// Center the map in the Mediterranean and zoom out to a world view
var map = new GMap2();
var point = new GLatLng(38, 135);
map.setCenter(point, 2);
// Add a marker to the center of the map
var marker = new GMarker(point);
map.addOverlay(marker);
// Open a "Hello World" info window
var message = "こんにちは!こんにちは!";
marker.openInfoWindowHtml(message);
以上