2009年12月13日日曜日

OpenLayers 40f WMC - OpenLayers で Map Context を試す3 地図の表示のテスト1 Merge

wmc.html のコードを単純にして、地図を表示するためにいろいろ試してみました。
HTMLファイル全体のコードを次のようにしました。

openlayers40_wmc2.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>OpenLayers40 WMC 2</title>
<link rel="stylesheet" href="./theme/default/style.css" type="text/css" />
<link rel="stylesheet" href="./examples/style.css" type="text/css" />

<!-- OpenLayers ライブラリ -->
<script src="./lib/Firebug/firebug.js"></script>
<script src="./lib/OpenLayers.js"></script>

<!-- Proj4js ライブラリ -->
<script type="text/javascript" src="./lib/proj4js/lib/proj4js-compressed.js"></script>
<script type="text/javascript" src="./lib/proj4js/lib/projCode/tmerc.js"></script>
<script type="text/javascript" src="./lib/proj4js/lib/defs/EPSG2456.js"></script>

<!-- WMC のコード -->

<script type="text/javascript">
// no pink please
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 2;
OpenLayers.Util.onImageLoadErrorColor = "transparent";

var format = new OpenLayers.Format.WMC({'layerOptions': {buffer: 0}});
var map, options; // 修正

function init() {
// 東京都用 map の設定
options = {
projection: new OpenLayers.Projection("EPSG:2456"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
maxResolution: 'auto',
units: 'meters',
maxExtent: new OpenLayers.Bounds(-279000,1054000,-185000,1104000)
};
map = new OpenLayers.Map("map", options);

// ここまで

// 出力した Map Context にマップファイルのディレクトリを追加して保存
var url = "./tokyo_map_context_ol.xml";
// tokyo_map_context_ol.xml をファイルを読み込み
OpenLayers.loadURL(url, null, null, loadSuccess);

} End of functin init()

// 読み込みが成功したときの処理
function loadSuccess(request){
var wmc_doc = request.responseText;
// map.destroy();
// map = format.read(wmc_doc, {map: new OpenLayers.Map("map", options)});
map = format.read(wmc_doc, {map: map});
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.MousePosition()); // 追加
map.addControl(new OpenLayers.Control.ScaleLine()); // 追加
map.zoomToMaxExtent();
}

</script>
</head>
<body onload="init()">
<h1 id="title">OpenLayers Tokyo Map Context</h1>
<div id="map" class="smallmap"></div>
</body>
</html>

wmc.html の「read and merge」のボタンをクリックしたとき、次のコードが実行されます。

map = format.read(wmc_doc, {map: map});

動作は、元の地図上に Map Context で設定された地図が合併(merge)されます。
この単純なコードの openlayers40_wmc2.html ファイルでも Map Context に設定された地図(だけ)表示されます。



次回は、New Map の動作

0 件のコメント: