[Gmaps.js] 地図をドラッグした後の中心座標を取得する
スポンサーリンク
Google Maps Apiを簡単に使えるようにしてくれるJavaScriptライブラリのGmaps.jsで、地図をドラッグした後に中心座標を取得する方法についてのメモです。
var map = new GMaps({ div: "#map", lat: 35.681111, lng: 139.766667, zoom: 15, idle: function(e) {// 地図が静止した瞬間にイベント発火 var lat = e.getCenter().lat();// 緯度 var lng = e.getCenter().lng();// 経度 } });
プロパティにGoogle Maps Apiで使えるイベントがそのまま指定できます。ドラッグに関連したイベントはdrag
、dragstart
、dragend
、center_changed
、bounds_changed
、idle
などです。
ドラッグして動かした地図が静止した時の中心座標を求める場合はidle
を設定します。その他のタイミングでイベントを発火させたい場合は表を参考に、上記コードの6行目のidle
の部分を書き換えてください。
イベント名 | 発火タイミング |
---|---|
idle | 地図が静止した時 |
drag | 地図がドラッグされている間ずっと |
dragstart | ドラッグが開始された瞬間 |
dragend | ドラッグが終了した瞬間。 ドラッグ終了後、地図が慣性で動いている間と慣性での動きが止まった時にイベントは発火しない。静止した時にイベントを発生させたい場合は idle を使う。 |
center_changed | 地図の中心が変わっている間ずっと発火。 |
bounds_changed | ドラッグなどに加え、ズームイン・アウトなども含め地図がコントロールされている間ずっと発火。 |
イベンド発生時はイベントプロパティに渡した無名関数にイベントオブジェクトが渡されるので、e.getCenter().lat()
で中心の緯度、e.getCenter().lng()
で経度が取得できます。
イベントプロパティについてより詳しくは公式レファランスを参照して下さい。また、イベントオブジェクトには緯度経度以外にもたくさんの値やメソッドが渡されていますが、それらについても公式を参照してください
スポンサーリンク
JavaScriptカテゴリーの投稿
- [jQuery] 文字列が含まれているかどうかの判定
- 圧縮後のJavaScriptやHtmlを元に戻すWebサービス
- Google Code Prettify導入が超絶簡単になっていた
- [JavaScript] 全角を2、半角を1と数えるコード
- [JavaScript] 指定範囲内の整数からランダムな値を得る
- [JavaScript] sort()メソッドによる配列の並び替え
- シンタックスハイライター「Google Code Prettify」のカスタマイズ
- [JavaScript] オブジェクトにプロパティを追加
- [JS] 正規表現の特殊文字を置換するJavaScript版preg_quote()
- [JS][jQuery] 要素の存在を確認する6通りのコードと実行速度