マウスホイールでズーム
2006年10月21日 (土曜日) - 23:08:51 by webmaster
GoogleMaps本家にはあるけど、まだAPIに降りてきてない機能で、マウスホールでズームイン/アウトの機能がある。
マウスホイールのイベントでズームイン/アウトするだけならそんなに難しくなさそうなんだけど、本家と同じ動きを再現したい。
『本家の動き』:マウスポインタの位置を基準にズームイン/アウトするので、マウスを動かさずに済む
ポイントになるのがズームイン/アウト時のマップセンターをどこにするか、だ。
拡大/縮小率がわからなかったので調べてみると、ズームイン:拡大率2倍、ズームアウト:縮小率2倍。
であれば、
・ズームイン時のマップセンター=現在のマップセンターと現在のマウス位置の中間点
・ズームアウト時のマップセンター=現在のマップセンターを中心にしたマウスポインタの対極点
になる。
ので、これを組み込んでみたのがこれ。
ズームイン/アウトがスムーズ設定に対応してくれればほぼ同じなんだけど、それは無理だった。
(ちなみに、位置計算で手抜きをしているので、日付変更線付近でやるととんでもないところに飛ぶ。)
参考にさせていただきました。
JavaScriptでマウスホイールイベントを扱い、スクロールも停止する方法