例−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>
サイト内検索
Maps APIの本を書きました
Google Maps APIプログラミング入門
全480ページ。Google Maps API ver.2, ver.3, for Flash, Static Maps API v2, Google Maps API Primery, ライセンス…など、Google Maps APIに関連する幅広い内容の本を書きました。
このサイトで公開しているサンプルはもちろん、本のために作ったサンプルも満載です。
詳しくはこちら

Google Maps Designer
Google Maps Designer