GNSS/GPS 経路の表示に OpenLayers 2 を使う(その0:はじめに)に目次がある。
ここでは OpenLayers 2.13.1 を使っている。
前回(その1:OpenLayers 2 を使って複数の Google Map を表示)は OpenLayers を使って Google Map を表示させたが,今回は地理院地図を表示させてみる。
以下に web ソースコードを書いておこう。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta http-equiv="content-style-type" content="text/css"> <meta http-equiv="content-script-type" content="text/javascript"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>OpenLayers Example: Cyber Japan Map</title> <script src="../OpenLayers-2.13.1/lib/OpenLayers.js"></script> <script type="text/javascript">//<![CDATA[ var param = { div: 'map_canvas', lon: 136.181193333333, lat: 34.2329783333333, zoom: 15}; //]]></script> <script type="text/javascript"> var proj_3857 = new OpenLayers.Projection('EPSG:3857'); var proj_4326 = new OpenLayers.Projection('EPSG:4326'); // WGS84 // 初期化 function init_map() { // 地図表示の変数定義 var map = new OpenLayers.Map({ div: param.div, projection: proj_3857 }); // 地理院地図(標準地図)を半透明にしてoverlay として表示 var std_map = new OpenLayers.Layer.XYZ('標準地図', 'http://cyberjapandata.gsi.go.jp/xyz/std/${z}/${x}/${y}.png', { attribution: '<a href="http://portal.cyberjapan.jp/help/termsofuse.html" target="_blank">国土地理院</a>', maxZoomLevel: 17, isBaseLayer: false }); var pale_map = new OpenLayers.Layer.XYZ('淡色地図', 'http://cyberjapandata.gsi.go.jp/xyz/pale/${z}/${x}/${y}.png', { attribution: '<a href="http://portal.cyberjapan.jp/help/termsofuse.html" target="_blank">国土地理院</a>', maxZoomLevel: 17 }); map.addLayers([std_map, pale_map]); // 中心座標を設定 if (!map.getCenter()) { map.setCenter(new OpenLayers.LonLat(param.lon, param.lat).transform(proj_4326, proj_3857), param.zoom); } // Layer 切替スイッチの表示 map.addControl(new OpenLayers.Control.LayerSwitcher()); } // 初期化 </script> </head> <body onload="init_map()"> <div id="map_canvas"></div> </body> </html>
基本的には Google Map の時と同じである。 ここでは,地理院地図の「標準地図」と「淡色地図」を表示させている。 「淡色地図」を Base Layer にし,「標準地図」を Overlay として表示させている。
前回と異なる点として,赤字の部分にあるように,変数「map」の定義の際に表示する際の投影法を指定している。 これは OpenLayers の標準の投影法と地理院地図の投影法が異なるための処理である。
青字の部分で地理院地図用の変数を定義している。 標準地図と淡色地図の定義はほぼ同じだが,標準地図の方にだけ「isBaseLayer: false」というのがある。 これによって標準地図は Base Layer でなくなり,Overlay となる。
「その2」のサンプルを具体的な web ページとして用意したので,具体的な表示を見てみて欲しい。(ちなみにサンプルページはアクセスログを取るルーチンを組み込んでいます)
その3:中央にセンターマークを表示に続く
0 件のコメント:
コメントを投稿