中国歴史小説「知兵之将」

今、鈴元仁は歴史小説をブログで連載しています。

内容は、二千二百年前(!)の古代中国です。

始皇帝・項羽・劉邦・韓信・張良・虞美人・呂太后、、、

これらの名前にピンと来た方、あるいは、

郡県制・儒教・陰陽思想・法家思想・孫子兵法、、、

こういったことどもにちょっと興味をそそられる方、

よろしければ読んでやってください。

もしお気に入れば、ついでにランキング投票も。

« 毛球寶兒2006/08/23 | メイン | OL蔡桃桂2006/08/23 »

GoogleMaps活用するぞ!(22) - TLabelで情報ウィンドウを作ろう

(カテゴリ:GoogleMaps

今回は、Tom Mangan氏が開発したTLabelを活用して情報ウィンドウを作ってみることにします。

TLabelのサイト(英語) : http://gmaps.tommangan.us/tlabel.html



TLabelを利用する手順


  1. TLabelのサイトの"DOWNLOAD"の項目にある"TLabel.2.05.js"(2006/08/19現在のバージョン)をクリックして、ダウンロードします。
  2. ダウンロードしたファイル"TLabel.2.05.js"を、サーバーにアップロードします。
  3. API Keyの行の下に、以下の行を書き加えます。
    <script src="(アップロードしたディレクトリ=フォルダのパス/)tlabel.2.05.js" type="text/javascript"></script>


アップロードしたディレクトリ=フォルダのパスは、正確に記述してください。もしGoogle Mapを埋め込んだページと同じディレクトリ=フォルダにファイル"tlabel.2.05.js"を置いたのならば、当然ながらパスは省略できます。

たとえば、以下のような記述を加えることとなります。今、Google Mapを埋め込んだページと同じディレクトリ=フォルダにファイル"tlabel.2.05.js"を置いたとするならば、

<script src="http://maps.google.com/maps?file=api&v=2&key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
"</script>

<script src="tlabel.2.05.js" type="text/javascript"></script>

となるわけです。赤字の部分は、Googleから割り当てられたAPI Keyです。




TLabelの基本的文法


メソッド


TLabelは、4つのメソッドが用意されています。前の2つはGMap2すなわち地図の変数に適用するメソッドで、後の2つはラベルに適用するメソッドです。すなわち、

メソッド説明
addTLabel(label)ラベルを地図に追加するmap.addTLabel(Label)
removeTLabel(label)ラベルを地図から消去するmap.removeTLabel(Label)

メソッド説明
setPosition(point)ラベルのアンカーポイントの緯度経度を設定する。"point"に、GLatLngで緯度経度を指定せよ。Label.setPosition(point)
setOpacity(percentOpacity)ラベルのイメージの不透明度を設定する。"percentOpacity"を1~100の値で指定せよ。Labl.setOpacity(80)



プロパティ


TLabelの状態を定義するプロパティは、以下のものが用意されています。すなわち、

プロパティ説明必須・オプション
idラベルを特定するID。各ラベルそれぞれが固有の値でなくてはならない。必須
anchorLatLngアンカーポイントが置かれる緯度経度を指定。GLatLngで緯度経度を指定せよ。必須
anchorPointanchorLatLngで指定した緯度経度がラベルに対して置かれる位置を指定。topLeft, topCenter, topRight, midRight, bottomRight, bottomCenter, bottomLeft, midLeft, centerの9つの値が指定できる。指定しなければ、topLeftとなる。オプション
contentラベルのXHTML(HTML)内容文。必須
percentOpacityラベルの不透明度を1~100の値で指定する。指定しなければ100となる。オプション




TLabelの使用例


例として、以下のようなスクリプトを書いてみました。赤字の部分がTLabel関係の行です。前回の例を応用して、地図中央のマーカーにマウスオーバーするとTLabelで作ったラベルが現れて、マウスアウトすると消えます。つまり、上のaddTLabel(label)removeTLabel(label)ラベルを使っているわけです。

ラベルのプロパティは、以下のように設定しました。すなわち、

  • ラベルの内容は、<div style="..."></div>ではさみ込んだスタイルシートで定義。背景色は白(#ffffff)、フォントサイズは1.2em。ただし、注意しなければならないことは、日本語で記入するばあいスタイルシート内に"white-space: nowrap;"を記入しないといけません。そうしないと、縦書きになってしまうようです。
  • ラベルのidは、"label01"。
  • ラベルの位置は、bottomLeft。
  • ラベルの不透明度は、70。

//マーカーのアイコンを定義

var icon1 = new GIcon();
icon1.image = "gmred.png";
icon1.shadow = "gmshadow.png";
icon1.iconSize = new GSize(12, 20);
icon1.shadowSize = new GSize(22, 20);
icon1.iconAnchor = new GPoint(6, 20);
icon1.infoWindowAnchor = new GPoint(5, 1);

//TLabelのプロパティを定義

var LtLng01 = new GLatLng (34.396853434207465, 132.45503425598144);
var content01 = '<div style="padding: 0px 0px 8px 8px;"><div style="white-space: nowrap; background-color: #ffffff; padding: 2px; font-size: 1.2em;">';
content01 += '<img src="htcarp.png"><b>広島市民球場</b><br>広島市中区基町5番25号</div></div>';
var label01 = new TLabel();
label01.id = 'label01';
label01.anchorLatLng = LtLng01;
label01.anchorPoint = 'bottomLeft';
label01.content = content01;
label01.percentOpacity = 70;


//インフォウィンドウの内容と、マウスオーバー・マウスアウトイベント時の動作を定義

var marker01 = new GMarker(LtLng01, icon1);

GEvent.addListener(marker01, "click", function() {
var text='<table ><tr><td width="170" height="200" valign="top">'
text +='<a href="http://www.city.hiroshima.jp/shimin/bunka/kyujou/" target=_blank">広島市民球場</a><p>';
text +='<div id="smallmap" style="width:150px; height: 150px;"></div><br>'
text +='<font size="0.6em">西日で試合が中断する球場。上空から見たボールパークの形は、かくも美しい。ドームなんかよりも...</font></td></tr></table>';
marker01.openInfoWindowHtml(text);
var smallmap = new GMap2(document.getElementById("smallmap"));
smallmap.setCenter(LtLng01,16,G_SATELLITE_MAP);
smallmap.addControl(new GSmallMapControl());
});

GEvent.addListener(marker01, "mouseover", function() {
map.addTLabel(label01)});
GEvent.addListener(marker01, "mouseout", function() {
map.removeTLabel(label01)});


map.addOverlay(marker01);


というわけで、上のスクリプトの具体例を下に示します。地図中央のマーカーをクリックすると、サテライト写真入りのインフォウィンドウが出てきます。マーカーにマウスオーバーするとポップアップする説明文には、文章に加えて"htcarp.png"という画像(カープのマーク)を用いています。これも、地図のページファイルと同じディレクトリ=フォルダに置いています。

Google Mapsの具体例:その18




トラックバック

このエントリーのトラックバックURL:
http://suzumoto.s217.xrea.com/mt/mt-tb.cgi/2203

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Powered by
Movable Type