機能をクリックしたときにFoundsを機能に適合させたいのですが、ズームインするときに、ズームインすると表示されるコントロールレイヤーを考慮に入れて、ズームインしますが、左。現在、次のコードでこれを実現できますが、残念ながら、現在の方法ではfitBoundsを使用してズームし、ズームするとpanByを使用して左に150ピクセルパンするため、スムーズなズームではありません。パンがスムーズであれば、おそらく250ミリ秒待った後でも、これはそれほど悪くはありません。理想的には、fitBoundsメソッドに渡された境界でいくつかの計算を実行して、左への150pxのシフトを単純に説明できるようにしたいと思います。
これが私が現在取り組んでいることの例です。
これが私が使用しているコードの簡略化されたバージョンです:(すべてのソースコードを含む完全に機能するバージョンについては、ここをクリックしてください)
クリックすると
function clickFeature(e) {
var layer = e.target;
map.fitBounds(layer.getBounds());
}
ZoomEndの地図:
map.on({
zoomend: function() {
map.panBy([150, 0]);
}
});
だから、私は目的の機能を達成しましたが、それはスムーズではありません。
クリックされた機能に対して取得している境界で計算を行う方法はありますか?ズームすると、すでに変更された座標にズームインして、2段階のアニメーションプロセスを排除できますか?