タイルオーバーレイの表示
タイルオーバーレイを地図に表示する方法を確認します。
タイルオーバーレイはGTileLayerOverlayクラスで定義されており、コンストラクタ関数は次のように定義されています。
GTileLayerOverlay(tileLayer:GTileLayer, opts?:GTileLayerOverlayOptions)
GOverlay をラップする tileLayer を作成します。
1番目の引数に事前に作成したタイルレイヤーを指定します(詳細はタイルレイヤーの作成を参照して下さい)。
実際には次のように記述します。
var copyrights = new GCopyrightCollection(); var tilelayer = new GTileLayer(copyrights, 0, 19); tilelayer.getTileUrl = function(tile, zoom) { return "./img/sample.png"; }; tilelayer.isPng = function() { return true; }; tilelayer.getOpacity = function() { return 0.5; }; var tileoverlay = new GTileLayerOverlay(tilelayer); map.addOverlay(tileoverlay);
※ポリラインなどのオーバーレイを地図に追加する方法については「オーバーレイ(GOverlay)」を参照して下さい。
サンプルプログラム
では試してみます。
function initialize() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map_canvas")); map.setCenter(new GLatLng(34.98655,135.75531), 13); var copyrights = new GCopyrightCollection(); var tilelayer = new GTileLayer(copyrights, 0, 19); tilelayer.getTileUrl = function(tile, zoom) { return "./img/tile.png"; }; tilelayer.isPng = function() { return true; }; tilelayer.getOpacity = function() { return 0.3; }; var tileoverlay = new GTileLayerOverlay(tilelayer); map.addOverlay(tileoverlay); } }
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>サンプル:タイルオーバーレイの表示</title> <script src="http://maps.google.com/maps?file=api&v=2&key=(key)&sensor=false" type="text/javascript" charset="utf-8"></script> <script src="./js/code2_1.js" type="text/javascript"></script> </head> <body onload="initialize()" onunload="GUnload()"> <div id="map_canvas" style="width: 400px; height: 400px"></div> </body> </html>
ではブラウザで上記のURLを見てみます。
今回タイルとして表示する画像として次のものを使用しました。
タイルが地図上にどのように敷き詰められているのかが分かるかと思います。
またズームレベルを0にしてみると次のように1×1のタイルで構成されていることが分かります。
ズームレベル1ならば2×2のタイルで構成され、ズームレベル2ならば4×4のタイルで構成されます。
( Written by Tatsuo Ikura )