2008年10月16日木曜日

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});で地図が範囲外に移動しないので、地図を拡大して試してください。

0 件のコメント: