例−46:ズームコントローラのズーム範囲を制限する
以外に知られてないのですが、マップタイプごとに
getMinimumResolution() と getMaximumResolution() をオーバーライドするだけで
簡単に制限できます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Google Maps JavaScript API Example</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script src="http://maps.google.co.jp/maps?file=api&v=2&key=[あなたのAPIキー]&sensor=false"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load() {
//マップの作成
var map = new GMap2( document.getElementById("map"));
map.setCenter( new GLatLng(35.684, 139.750), 12 );
//マップタイプコントローラの追加 (同時にデフォルトマップタイプの追加)
map.addControl(new GMapTypeControl());
//ズームコントローラの追加
map.addControl(new GLargeMapControl());
//============================//
// ズームレベルを制限する
//============================//
var minZoom = 3;
var maxZoom = 10;
//現在の位置・ズームを取得
var spoint = map.getCenter();
var szoom = map.getZoom();
if (szoom > maxZoom) {
szoom = maxZoom;
} else if (szoom < minZoom) {
szoom = minZoom;
}
//登録されているマップタイプ全てを取得して
//ズームレベルの制限するメソッドをオーバーライド
var maptypes = map.getMapTypes();
for (var i = 0; i < maptypes.length; i++) {
maptypes[i].getMinimumResolution = function() {
return minZoom;
};
maptypes[i].getMaximumResolution = function() {
return maxZoom;
};
}
//現在の位置を再表示
map.setCenter(spoint, szoom);
}
//ページがロードされたら、load 関数を実行して、地図を表示する
window.onload = load;
//ページを抜けるとき、メモリ開放
window.onunload = GUnload;
//]]>
</script>
</head>
<body >
<div id="map" style="width: 600px; height: 600px"></div>
</body>
</html>


