ラベル Map Control の投稿を表示しています。 すべての投稿を表示
ラベル Map Control の投稿を表示しています。 すべての投稿を表示

2009年12月14日月曜日

OpenLayers 40g WMC - OpenLayers で Map Context を試す4 地図の表示のテスト2 New Map

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

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

これの動作は、id が map の <div> に新しい地図が挿入されるため、元の地図が表示されたままで、その下に表示されます。



元の地図を削除するためのコードを含んだ function loadSuccess のコードは次のようになります。

function loadSuccess(request){
var wmc_doc = request.responseText;
map.destroy();
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();
}

マップコントロールの表示は、地図がどのように表示されているかを理解するために有効です。
レイヤは設定されていますが、スケールの単位はメータでマウスポジションの単位もメータです。
地図の範囲は、拡大されていますが、表示できる範囲です。
マップのオプションがほとんど設定されていないようです。

OpenLayers.Formt.WMC の Class Documentation の Function -> Parameter -> options に次のように記述されていました。

options {Object} The options object must contain a map property. If the map property is a string, it must be the id of a dom element where the new map will be placed. If the map property is an OpenLayers.Map, the layers from the context document will be added to the map.

訳してみると、

options {Object}
options オブジェクトは、map プロパティを含んでいなければなりません。map プロパティが文字列なら、新しい map が設置される DOM エレメントの id でなければなりません。map プロパティが OpenLayers.Map なら、context ドキュメントから作成されたレイヤは map に追加されます。

とあります。そこで、次のようにコードを修正したら地図が表示されました。

map = format.read(wmc_doc, {map: new OpenLayers.Map("map", options)});

2008年10月18日土曜日

OpenLayers 15k Map Control についてやり残したことについてやり残したこと

次のことをやり残しています。
すぐには解決できそうもないので、分かったらそのときにメモします。

1 OpenLayers.Control.PanPanel と OpenLayers.Control.ZoomPanel で表示できませんでした。

パンとズームを別々に表示できませんでした。
OpenLayers.Control.PanZoomPanel ならOK。


2 OpenLayers.Control.PanZoomBar と OpenLayers.Control.Overview が 地図を units を 'meters' で表示すると一緒に使えませんでした。

OpenLayers.Map のオプションで "control: []" を使うと Overview(オーバービュー)の属性にもこれが含まれるため、表示できません。(エラーになります。)


3 OpenLayers.Control.ScaleLine でスケールの値が "NaN" になります。

units が 'meters' だから?(未確認)

2008年10月16日木曜日

OpenLayers 15j 操作を 戻る・進む ボタン

Map Navigation History Example(navigation-history.html) を参考に、直前の操作に戻る、進むボタンを追加してみます。
地図の表示スクリプト部分に OpenLayers.Control.NavigationHistory を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.events.register("moveend", null, displayZoom);
map.fractionalZoom = input.checked;
map.zoomTo(Math.round(map.zoom));
nav = new OpenLayers.Control.Navigation({'zoomWheelEnabled': false});
map.addControl(nav);
map.addControl(new OpenLayers.Control.LayerSwitcher());
var controlOptions = {
mapOptions: mapOptions
};
var overview = new OpenLayers.Control.OverviewMap(controlOptions);
map.addControl(overview);
overview.maximizeControl();
var mouseposition = new OpenLayers.Control.MousePosition();
map.addControl(mouseposition);
map.events.register("mousemove", map, function(e) {
var position = this.events.getMousePosition(e);
OpenLayers.Util.getElement("coords").innerHTML = position;
});
var keyboard = new OpenLayers.Control.KeyboardDefaults();
map.addControl(keyboard);

//ここから追加
var nav = new OpenLayers.Control.NavigationHistory();
map.addControl(nav);
var panel = new OpenLayers.Control.Panel({div: document.getElementById("panel")});
panel.addControls([nav.next, nav.previous]);
map.addControl(panel);
//ここまで
}
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
</script>
---

<body> タグ内に次のように <div> タグを追加し、キー操作の説明とアクセスキー操作の設定をします。

---
<div id="map"></div>
<div id="paneldiv" class="olControlNavToolbar"></div>
<div id="panel" style="margin-left:50px;"></div>
<div id="coords" style="margin-left:50px;"></div>
---

スタイルシートを次のように追加します。

---
<style type="text/css">
#map {
width: 512px;
height: 512px;
border: 1px solid black;
}
a {
text-decoration: none;
font-size: 1.2em;
}
a em {
font-style: normal;
font-weight: normal;
text-decoration: underline;
}
a:hover {
text-decoration: underline;
}
a.api {
font-size:1em;
text-decoration:underline;
}
/* ここから追加 */
#panel {
right: 0px;
height: 30px;
width: 200px;
}
#panel div {
float: left;
margin: 5px;
}
/* ここまで */
</style>
---

OpenLayers 15i キーボードでパンとズーム操作

Accessible Example(accssible.html) を参考に、キーボードでパンとズーム操作をしてみます。
地図の表示スクリプト部分に OpenLayers.Control.KeyboardDefaults を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.events.register("moveend", null, displayZoom);
map.fractionalZoom = input.checked;
map.zoomTo(Math.round(map.zoom));
nav = new OpenLayers.Control.Navigation({'zoomWheelEnabled': false});
map.addControl(nav);
map.addControl(new OpenLayers.Control.LayerSwitcher());
var controlOptions = {
mapOptions: mapOptions
};
var overview = new OpenLayers.Control.OverviewMap(controlOptions);
map.addControl(overview);
overview.maximizeControl();
var mouseposition = new OpenLayers.Control.MousePosition();
map.addControl(mouseposition);
map.events.register("mousemove", map, function(e) {
var position = this.events.getMousePosition(e);
OpenLayers.Util.getElement("coords").innerHTML = position;
});

//ここから追加
var keyboard = new OpenLayers.Control.KeyboardDefaults();
map.addControl(keyboard);
//ここまで
}
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
</script>
---

<body> タグ内に次のように <div> タグを追加し、キー操作の説明とアクセスキー操作の設定をします。

---
<div id="map"></div>
<div id="paneldiv" class="olControlNavToolbar"></div>
<div id="coords" style="margin-left:50px;"></div>
<div style="margin-left:50px;">Moving your mouse to the upper left corner of this map should return 'x=0,y=0'</div>
<div style="margin-left:50px;">zoom: <span id="zoom"></span></div>
<div style="margin-left:50px;"><a href="#" onclick="nav.enableZoomWheel();return false">Turn on Wheel Zoom</a> | <a href="#" onclick="nav.disableZoomWheel(); return false;">Turn off Wheel Zoom</a></div>

<!-- ここを追加 キーとアクセスキー操作の表示-->
<div style="margin-left:50px;">
<a href="javascript: void map.zoomIn();"
accesskey="i">
zoom <em>i</em>n
</a>|
<a href="javascript: void map.zoomOut();"
accesskey="o">
zoom <em>o</em>ut
</a>|
<a href="javascript: void map.pan(0, -map.getSize().h / 4);"
accesskey="n">
pan <em>n</em>orth
</a>|
<a href="javascript: void map.pan(-map.getSize().w / 4, 0);"
accesskey="w">
pan <em>w</em>est
</a>|
<a href="javascript: void map.pan(map.getSize().w / 4, 0);"
accesskey="e">
pan <em>e</em>ast
</a>|
<a href="javascript: void map.pan(0, map.getSize().h / 4);"
accesskey="s">
pan <em>s</em>outh
</a>
<div id="docs" style="margin-left:50px;">
<p>Navigate the map in one of three ways:
<ul>
<li>Click on the named links to zoom and pan</li>
<li>Use following keys to pan and zoom:
<ul>
<li>+ (zoom in)</li>
<li>- (zoom out)</li>
<li>up-arrow (pan north)</li>
<li>down-arrow (pan south)</li>
<li>left-arrow (pan east)</li>
<li>right-arrow (pan west)</li>
</ul>
</li>
<li>If access keys work for links in your browser, use:
<ul>
<li>i (zoom in)</li>
<li>o (zoom out)</li>
<li>n (pan north)</li>
<li>w (pan west)</li>
<li>e (pan east)</li>
<li>s (pan south)</li>
</ul>
</li>
</ul>
</p>
This is an example of using alternate methods to control panning and zooming. This approach uses map.pan() and map.zoom(). You'll note that to pan, additional math is necessary along with map.size() in order to set the distance to pan.
</div>
---

スタイルシートを次のように追加します。

---
<style type="text/css">
#map {
width: 512px;
height: 512px;
border: 1px solid black;
}
/* ここから追加 */
a {
text-decoration: none;
font-size: 1.2em;
}
a em {
font-style: normal;
font-weight: normal;
text-decoration: underline;
}
a:hover {
text-decoration: underline;
}
a.api {
font-size:1em;
text-decoration:underline;
}
/* ここまで */
</style>
---

OpenLayers 15h マウス位置の座標表示

MousePosition Control(mouse-position.html) を参考に、マウスの位置の座標を表示してみます。
地図の表示スクリプト部分に OpenLayers.Control.MousePosition を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.events.register("moveend", null, displayZoom);
map.fractionalZoom = input.checked;
map.zoomTo(Math.round(map.zoom));
nav = new OpenLayers.Control.Navigation({'zoomWheelEnabled': false});
map.addControl(nav);
map.addControl(new OpenLayers.Control.LayerSwitcher());
var controlOptions = {
mapOptions: mapOptions
};
var overview = new OpenLayers.Control.OverviewMap(controlOptions);
map.addControl(overview);
overview.maximizeControl();

//ここから追加
var mouseposition = new OpenLayers.Control.MousePosition();
map.addControl(mouseposition);
map.events.register("mousemove", map, function(e) {
var position = this.events.getMousePosition(e);
OpenLayers.Util.getElement("coords").innerHTML = position;
});
//ここまで
}
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
</script>
---

<body> タグ内に次のように <div> タグを追加し、画像内の位置をピクセル単位で表示します。

---
<div id="map"></div>
<div id="paneldiv" class="olControlNavToolbar"></div>

<!-- ここを追加 X, Yの表示-->
<div id="coords" style="margin-left:50px;"></div>
<div style="margin-left:50px;">Moving your mouse to the upper left corner of this map should return 'x=0,y=0'</div>

<div style="margin-left:50px;">zoom: <span id="zoom"></span></div>
<div style="margin-left:50px;"><a href="#" onclick="nav.enableZoomWheel();return false">Turn on Wheel Zoom</a> | <a href="#" onclick="nav.disableZoomWheel(); return false;">Turn off Wheel Zoom</a></div>
---

OpenLayers 15g Overview(オーバービュー、リファレンス)

Overview Map(overviewmap.html)を参考に、リファレンス(参照)地図を表示します。
OpenLayers.Map のオプションを次のように修正します。
このとき、OpenLayers.Control.PanZoomBar を削除します。
map.addControl で Overview を設定するとエラーになるためです。

---
function init(){
OpenLayers.ProxyHost="/cgi-bin/proxy.cgi?url=";
var mapOptions = {
// controls: [new OpenLayers.Control.PanZoomBar()],
numZoomLevels: 10,
maxResolution: 'auto',
units: 'meters',
maxExtent: extent
};
map = new OpenLayers.Map('map', mapOptions);
---

地図の表示部分のスクリプトに OpenLayers.Control.OverviewMap を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.events.register("moveend", null, displayZoom);
map.fractionalZoom = input.checked;
map.zoomTo(Math.round(map.zoom));
nav = new OpenLayers.Control.Navigation({'zoomWheelEnabled': false});
map.addControl(nav);
map.addControl(new OpenLayers.Control.LayerSwitcher());

//ここから追加
var controlOptions = {
mapOptions: mapOptions
};
var overview = new OpenLayers.Control.OverviewMap(controlOptions);
map.addControl(overview);
overview.maximizeControl();
//ここまで
}
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
</script>
---

OpenLayers 15f Layer Switcher(レイヤ スイッチャー)

Layer Switcher Example(layerswitcher.html)を参考に、Layer Switcher を地図の外に配置します。
地図の表示部分のスクリプトに OpenLayers.Control.LayerSwitcher() を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.events.register("moveend", null, displayZoom);
map.fractionalZoom = input.checked;
map.zoomTo(Math.round(map.zoom));
nav = new OpenLayers.Control.Navigation({'zoomWheelEnabled': false});
map.addControl(nav);

map.addControl(new OpenLayers.Control.LayerSwitcher()); //追加

}
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
</script>
---



Layer Switcher を地図の外には位置するには、new OpenLayers.Control.LayerSwitcher() を次のように修正して、<body> タグ内に Layer Switcher 用に次のように <div> タグを追加します。

---
map.addControl(new OpenLayers.Control.LayerSwitcher({'div':OpenLayers.Util.getElement('layerswitcher')})); //修正
---

---
<!-- ここを追加 Layer Switcher の表示-->
<div id="layerswitcher"></div>
<div id="map"></div>
<div id="paneldiv" class="olControlNavToolbar"></div>
<div style="margin-left:50px;">zoom: <span id="zoom"></span></div>
<div style="margin-left:50px;"><a href="#" onclick="nav.enableZoomWheel();return false">Turn on Wheel Zoom</a> | <a href="#" onclick="nav.disableZoomWheel(); return false;">Turn off Wheel Zoom</a></div>
---



Layer Switcher が地図の下に配置されるので注意してください。
地図内に配置される用に元に戻しておきます。

OpenLayers 15e スクロールボタンでズーム

Navigation Control(navigation-control.html)を参考に、マウスのスクロールボタンでズーム操作ができるようにします。
地図表示部分に、zoomWheelEnabled を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.events.register("moveend", null, displayZoom);
map.fractionalZoom = input.checked;
map.zoomTo(Math.round(map.zoom));

nav = new OpenLayers.Control.Navigation({'zoomWheelEnabled': false}); //追加
map.addControl(nav); //追加

}
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
</script>
---

<body> タグ内に次のように <div> タグを追加し、機能の on, off を追加します。

---
<div id="map"></div>
<div id="paneldiv" class="olControlNavToolbar"></div>
<div style="margin-left:50px;">zoom: <span id="zoom"></span></div>
<!-- ここを追加 on, offの表示-->
<div style="margin-left:50px;"><a href="#" onclick="nav.enableZoomWheel();return false">Turn on Wheel Zoom</a> | <a href="#" onclick="nav.disableZoomWheel(); return false;">Turn off Wheel Zoom</a></div>
---

OpenLayers 15d 任意のズームレベルで表示

Fractional Zoom Example(fractional-zoom.html)を参考に、任意のズームレベルで表示できるようにします。
OpenLayers.Control.PanZoom() を OpenLayers.Control.PanZoomBar() にします。

---
<script type="text/javascript">
var map = null;
var layer1, layer3, layer4, layer5, layer6, layer7, layer8;
var extent = new OpenLayers.Bounds(-31337.715508,-77650.134635,-21796.513842,-70055.061952);
function init(){
OpenLayers.ProxyHost="/cgi-bin/proxy.cgi?url=";
map = new OpenLayers.Map('map', {
controls: [new OpenLayers.Control.PanZoomBar()], //修正
numZoomLevels: 10, //追加 ズーム間隔
maxResolution: 'auto',
units: 'meters',
maxExtent: extent
}
---

地図の表示部分のスクリプトに map.events.register と function displayZoom() を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();

map.events.register("moveend", null, displayZoom); //追加 倍率の表示
}

//ここから追加 倍率の表示
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
//ここまで
</script>
---

<body> タグ内に次のように <div> タグを追加します。

---
<div id="map"></div>
<div id="paneldiv" class="olControlNavToolbar"></div>
<!-- ここを追加 倍率の表示-->
<div style="margin-left:50px;">zoom: <span id="zoom"></span></div>
---

スライダの間につまみを持っていっても、自動的に区切りに合うようになっています。



地図の表示部分のスクリプトに map.fractionalZoom と map.zoomTo を次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.events.register("moveend", null, displayZoom);

map.fractionalZoom = input.checked; //追加
map.zoomTo(Math.round(map.zoom)); //追加

}
function displayZoom() {
document.getElementById("zoom").innerHTML = map.zoom.toFixed(4);
}
</script>
---

スライダの間につまみを持っていくと、区切りに関係なく任意の倍率になっています。

OpenLayers 15c アニメーションでパン

map.panT Exsample(animated_panning.html)を参考にクリックした位置が中央になるように、地図がアニメーションして移動するようにします。
この動作のためのスクリプトを追加します。

---
<script type="text/javascript">
var map = null;
var layer1, layer3, layer4, layer5, layer6, layer7, layer8;

var running = false; //追加

var extent = new OpenLayers.Bounds(-31337.715508,-77650.134635,-21796.513842,-70055.061952);
//ここから追加
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'delay': 200
},

initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Click(
this, {
'click': this.onClick
}, this.handlerOptions
);
},

onClick: function(evt) {
map.panTo(map.getLonLatFromPixel(evt.xy));
}

});
//ここまで
---

地図の表示部分のスクリプトに次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent});

var click = new OpenLayers.Control.Click(); //追加
map.addControl(click); //追加
click.activate(); //追加
}
</script>
---


*map.setOptions({restrictedExtent: extent});で地図が範囲外に移動しないので、地図を拡大して試してください。
*Overview はうまく表示しなかったので、map.addControl(new OpenLayers.Control.OverviewMap());は削除しました。



OpenLayers 15b パンしたときに範囲を外れない

OpenLayers Restricted Extent Example(restricted-extent.html)を参考に地図をパンしたときに範囲を外れないようにしてみます。
次のように extent を定義して、関連するスクリプトを修正します。

---
<script type="text/javascript">
var map = null;
var layer1, layer3, layer4, layer5, layer6, layer7, layer8;
var extent = new OpenLayers.Bounds(-31337.715508,-77650.134635,-21796.513842,-70055.061952); //追加
function init(){
OpenLayers.ProxyHost="/cgi-bin/proxy.cgi?url=";
map = new OpenLayers.Map('map', {
controls: [new OpenLayers.Control.PanZoom()],
maxResolution: 'auto',
units: 'meters',
maxExtent: extent //修正
}
---

地図の表示部分のスクリプトに次のように追加します。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
var panel = new OpenLayers.Control.NavToolbar({'div':OpenLayers.Util.getElement('paneldiv')});
map.addControl(panel);
map.zoomToMaxExtent();
map.setOptions({restrictedExtent: extent}); //追加
}
</script>
---

*チェックボックスで動作を on,off させるスクリプトがうまく動かなかったので、この方法に替えました。
*map.setOptions({restrictedExtent: extent});で地図が範囲外に移動しないので、地図を拡大して試してください。

OpenLayers 14 マップコントロール(Map Control)

パンやズームなどを操作するアイコンをマップコントロール(Map Control)というみたいです。

featur_style_unique.html の map.addControl をコメントアウトしてみます。

---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
// map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}
⁢/script>
---

地図を表示すると、レイヤスイッチャー(Layer Switcher)が消えて、パン(Pan)とズーム(Zoom)が表示されています。



初期設定(デフォルト)では、パン(Pan)とズーム(Zoom)のみが表示されるようになっているようです。

map に "control: []" を次のように追加します。

---
⁢script type="text/javascript"gt;
var map, layer1, layer3, layer4, layer5, layer6, layer7, layer8;
function init(){
OpenLayers.ProxyHost="/cgi-bin/proxy.cgi?url=";
map = new OpenLayers.Map('map', {
controls: [], //追加
maxResolution: 'auto',
---
map.addLayers([layer1, layer3, layer4, layer5, layer6, layer7, layer8]);
// map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}
⁢/scriptgt;
---

パン(Pan)とズーム(Zoom)が消えます。



map の "control: []" を"controls: [new OpenLayers.Control.PanZoom()]"のように修正するとパン(Pan)とズーム(Zoom)が表示されます。

---
⁢script type="text/javascript"gt;
var map, layer1, layer3, layer4, layer5, layer6, layer7, layer8;
function init(){
OpenLayers.ProxyHost="/cgi-bin/proxy.cgi?url=";
map = new OpenLayers.Map('map', {
controls: [new OpenLayers.Control.PanZoom()], //修正
maxResolution: 'auto',
---

マップコントロールの表示にはこのように2つの方法があるようです。
(OpenLayers.Map で設定する方法と map.addControl で設定する方法)