マウスホイールによるズーム機能

概要

マウスのホイール(ボタンの真ん中のぐりぐり回すヤツ)で、マップの尺度を変更する Tips です。
奥へ回転させる拡大、手前に回転させると縮小します。

対応ブラウザ/ツール

ブラウザ

動作するブラウザは下記の通りです。

IE Firefox Netscape Opera Safari
×

ツール等

このスクリプトがそのまま使えるツールは下記の通りです。

GME

サンプル

Google Maps API の APIキー取得時のソースに 当Tips を搭載したものです。

※ UTF-8のメタタグなど一部編集を加えています。

サンプル
tips_gmap_mousewheelzooming.html
HTML

ソース

下記のソースはコピーしてもタブが消えてしまっているので、上記サンプルのソースからコピーした方がいいです。

//マウスホイールのイベントを追加
if( navigator.userAgent.match( "MSIE" ) ){ document.getElementById( "map" ).attachEvent( "onmousewheel" , mouseWheelZooming ); }
if( navigator.userAgent.match( "Gecko" ) ){ document.getElementById( "map" ).addEventListener( "DOMMouseScroll" , mouseWheelZooming , false ); }
if( navigator.userAgent.match( "Safari" ) ){ document.getElementById( "map" ).onmousewheel = mouseWheelZooming; }

//□マウスホールによるズーム処理
function mouseWheelZooming( event ){
//マウスホイールの上/下の取得と、スクロールのキャンセル
if( navigator.userAgent.match( "MSIE" ) ){ var delta = event.wheelDelta; event.returnValue = false; } //IE
if( navigator.userAgent.match( "Gecko" ) ){ var delta = event.detail * -1; event.preventDefault(); } //Gecko
if( navigator.userAgent.match( "Safari" ) ){ var delta = event.wheelDelta; event.returnValue = false; } //Safari

//ズーム処理
map.zoomTo( map.getZoomLevel() + ( delta < 0 ? 1 : -1 ) );
}

document.getElementById( "map" )… の map は Googleマップを表示する divタグの id属性値を、
map.zoomTo( map.getZoomLevel()… の map は、GMap を定義する var map = new GMap( … の変数名を入れてください。 初期値のままの場合は、変更する必要はありません。

Google Maps Editor の場合は mapgme_map に書き換えてください。

注意

情報ウィンドウでスクロールバーが表示する場合、それをスクロールしようとしてもマップがズームしてしまいます。
情報ウィンドウが開いている場合にフラグを立てて、この機能を動作しないようにしておくといいでしょう。