はてなマップはっく: マウスホイールで快適ズーム

Going My Wayで紹介されていたGoogle Maps Mousewheel Zooming」というgreasemonkeyスクリプトをインストールしてみました。しかし残念ながら、Google Mapsでは動作するようですが、はてなマップではうまく動作しませんでした。

そこで、はてなマップでも動作するgreasemonkeyスクリプトを作ってみました。ここにおいて置きますのでご利用下さい。

コードは「Google Maps Mousewheel Zooming」とは違って、本質的な部分だけの実装となっています。改善のご要望がありましたらまた改造してみたいと思います。

// ==UserScript==
// @name          Hanena::Map Mousewheel Zooming 0.01
// @namespace     http://vaio.redirectme.net/lib/greasemonkey
// @description   Adds support for mousewheel zooming to Hatena::Map
// @include       http://map.hatena.ne.jp/*
// ==/UserScript==
(function() {
    $("map").addEventListener("DOMMouseScroll", wheel_handler, false);

    function wheel_handler(event){
        var d = event.detail;
        event.preventDefault();

        if (d > 0) {
            map.zoomTo(map.getZoomLevel() + 1);
        } else {
            map.zoomTo(map.getZoomLevel() - 1);
        }
    }
})();

はてなマップはっく: ウインドウリサイズ時に中央のマーカーがずれる問題を解決

現在のはてなマップでは、はてなマップをロードした後にウインドウの幅を変更しても、中央のマーカーがきちんと中央に表示されなくなる問題があります。そこでid:Kscさんのアドバイスを元にして、このバグを修正したgreasemonkeyスクリプトを作りました。中央のマーカーがずれて気になる方は、こちらをご利用下さい。

greasemonkeyスクリプトでパッチを作成して、本家に還元していくという開発モデルが今後流行っていくような気がするのは私だけでしょうか?はてなアイデアを見ても、結構長い間「検討中」で放置されているケースが多いような気がします。はてなの開発者不足が原因の1つかもしれません。greasemonkeyスクリプトが書けるプログラマーのリソースを活用して、どんどんはてなのサービス改善を提案していけるようになれば良いですね。

// ==UserScript==
// @name          Center marker bugfix patch 0.01
// @namespace     http://vaio.redirectme.net/lib/greasemonkey
// @description   Center marker bugfix patch for Hatena::Map.
// @include       http://map.hatena.ne.jp/*
// ==/UserScript==

(function() {
    // Adjust the center marker's position when the size of the window is changed.
    // *This idea is from id:Ksc. Thanks.
    // GMap#onResize() is undocumented now.
    window.onresize = function() {
        map.onResize();
    }
})();