Google Mapで情報ウインドウの表示、非表示の切り替え

情報ウインドウを自分で追加しなくとも主要なスポットについてはアイコンとラベルが用意されていて、クリックするとその情報ウインドウで説明を見ることができます。しかしAPIを使って自分オリジナルの地図を作ろうとするとそれが邪魔になることもしばしば・・・ そこで

(function fixInfoWindow() {
    var set = google.maps.InfoWindow.prototype.set;
    google.maps.InfoWindow.prototype.set = function(key, val) {
        if (key === "map") {
            if (! this.get("noSuppress")) {
                return;
            }
        }
        set.apply(this, arguments);
    }
})();

とすることでデフォルトでポップアップするウインドウを消します。 これでInfoWindowについてオプションでnoSuppress が設定されていないポップアップは全て表示されなくなります。 あとは自分で表示したい情報ウインドウについて作るたびに

noSuppress = true

とオプションで指定してやればその情報ウインドウはポップアップされるようになります。

Google Maps API で場所アイコンのポップアップ (POI) を消す