2013-09-04 19 views
19

私はこのアプリケーションをleafet.jsで作っています。 このアプリケーションでは、画面にグリッドを手動で描画する必要があります。ファンクションで画面に多角形を描画するように気を配った 関数が必要です。Leaflet.js:地図のズームが終了したことを検出

私はリーフレットマップの変更をトリガするよう呼びかけています。 zoom - ズーム整数とsizeは、マップ上に描画されるタイルのサイズを制御する{x:1,y:1}のようなものです。 (彼らはタイルが下描かれている単位がLATあるように変更する必要があり、マップ上の長いポイント。私はsetTimeoutメソッドを使用する必要が

function changeZoom(zoom,size){ 
    map.setZoom(zoom); 
    setSize(size); 
    setTimeout(drawGrid,500)s; 

}

理由はリーフレットignoresので、任意の図であり、 (私は層としてやっている)は、地図の上にコマンドマップは、アニメーションが完了するまで。

あなたはAPIで説明map.zoomendイベントを、使用することができます。この非同期代わりに?

答えて

35

を行う方法

map.on('zoomend', function() { 
    drawGrid(); 
}); 

マップがズームアニメーションを終了すると、それはその後、drawGrid関数を呼び出します。

+3

このイベントはまだ私のために多くの時間を発射するようです。私はタッチパッドを使っているのですか? –

+0

apiリンク – s2t2

+1

のおかげで、「パンニング」や「ズーム」などの複数のイベントを確認する方法はありますか?また、私は "負荷"イベントが発生していないことを確認した。 – ram

13

リーフレットの新しいバージョンでは、 "zoomed"はもはやイベントではありません。 「zoomstart」と「zoomend」のイベントが存在することになります:「スクロールでズーム」中

map.on("zoomstart", function (e) { console.log("ZOOMSTART", e); }); 
map.on("zoomend", function (e) { console.log("ZOOMEND", e); }); 
関連する問題