カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

GoogleMap イベントリスナーの追加と削除

GoogleMap API v3でのイベントの追加と削除について

GMapインスタンスを生成

var myOptions = {
    center: new google.maps.LatLng(35, 135),
    zoom: 12
};

var map = new google.maps.Map(document.getElementById("map"), myOptions);

例1)「zoom_changed」イベントを追加します。

google.maps.event.addListener(map, "zoom_changed", function(){ });

例2)「click」イベントを追加します。

google.maps.event.addListener(map, "click", function(e){ });

指定したイベントリスナーを削除する

google.maps.event.clearListeners(map, "zoom_changed");

全てのイベントリスナーを削除する

google.maps.event.clearInstanceListeners(map);

リスナーをオブジェクトとして作成し、そのインスタンスを指定してリスナーを削除する

var zoomChanged_listener = google.maps.event.addListener(map, "zoom_changed", function(){ 

});

google.maps.event.removeListener(zoomChanged_listener);

イベントの種類については下記をご参照ください。
[GoogleMap v3のmapオブジェクトのイベント]


2016年10月31日追記

GoogleMapの読み込み完了時に一度だけ実行するイベントを追加

google.maps.event.addListenerOnce(map, "idle", function(){ });

リサイズの場合はトリガーを使用します。

// divリサイズ時mapイベント
google.maps.event.addListener(map, "resize", function(LatLng)
{
    map.setCenter(LatLng, 10);
});

// divリサイズ時mapイベントのトリガー
document.getElementById("map").onresize = function()
{
    var LatLng = map.getCenter();
    google.maps.event.trigger(map, "resize", LatLng);
}
6,745 views

複数のマーカーを地図内に全て表示させるには

GoogleMap(v3)にて、複数追加したマーカーが
全て表示されるように位置と拡大比率を自動調整する機能があります。

以下のメソッドを使います。
google.maps.Map::fitBounds(bounds:LatLngBounds)

マップオブジェクトを生成します。

var map = new google.maps.Map(document.getElementById("map"));

表示領域を生成します。

var bounds = new google.maps.LatLngBounds();

表示領域にマーカーの位置を追加

bounds.extend(new google.maps.LatLng(35.705506, 139.752048)); //東京ドーム
bounds.extend(new google.maps.LatLng(35.633232, 139.882006)); //東京ディズニーランド
bounds.extend(new google.maps.LatLng(35.710349, 139.811346)); //東京スカイツリー

表示領域を地図に反映させます。

map.fitBounds (bounds);
4,769 views

テキストファイルの読み込みと書き込み

読み込み

// 指定したファイルをShift-JISコードとして開く
StreamReader sr =
    new StreamReader(string filepath,
        Encoding.GetEncoding(932));

while (!sr.EndOfStream)
{
    // 1行ずつ読み込みます
    Console.WriteLine(sr.ReadLine());
}

sr.Close();
sr.Dispose();
sr = null;

コードページIDの一覧です。

932 shift_jis 日本語 シフトJIS(または、「shift-jis」や「x-sjis」など)
51932 euc-jp 日本語 EUC
50220 iso-2022-jp 日本語 JIS
50221 csISO2022JP 日本語 JIS(1バイトカタカナ可)
50222 iso-2022-jp 日本語 JIS(1バイトカタカナ可 – SO/SI)
65001 utf-8 UTF-8

続きを読む…»

2,062 views

WordPress マルチサイトを元に戻す

[WordPress マルチサイト化]で紹介したWordPressのマルチサイト化ですが、今度はマルチサイトを元に戻す方法をご紹介します。
念のため、データのバックアップを取ってから行うことをお勧めします。

マルチサイト機能を解除

まず、全てのプラグインを停止します。
メインのサイト以外は消滅するので、不要なサイトを前もって削除しておきます。

マルチサイト化で変更した「wp-config.php」を元に戻します。
以下の設定を削除します。

define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'www.example.jp');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

同様に「.htaccess」の設定も元に戻します。 続きを読む…»

4,024 views

WordPress マルチサイト化

WordPressにはマルチサイト機能が備わっており、1つのWordPressで複数のサイトを管理することができるようになっています。
ここではサブディレクトリ型でマルチサイト化する手順をご紹介します。

WordPressは既にインストール済としてご説明します。
念のため、データのバックアップを取ってから行うことをお勧めします。

※マルチサイト化はメリット・デメリットあり、元に戻すにも少し面倒なので十分検討した上で行ってください。

マルチサイト機能の導入

まず、「wp-config.php」の「/* 編集が必要なのはここまでです ! ~」の前に以下の1行を追加します。

define('WP_ALLOW_MULTISITE', true);

追加したら「wp-config.php」を上書きアップロードします。
アップロードが完了したらWordPressにログインします。

※ここで全てのプラグインを停止します。
停止していないプラグインがあると作業をすることができません。

WordPress管理画面の[ツール]に[ネットワークの設置]という項目が新たに追加されています。
それをクリックします。
「WordPressサイトのネットワークの作成」というページが表示されます。
続きを読む…»

1,861 views