Я хотел бы иметь возможность приспосабливать Bounds к объекту, когда вы нажимаете на него, но когда он увеличивается, я бы хотел, чтобы он учитывал слой управления, который появится после увеличения, и увеличивайте масштаб примерно на 150 пикселей. слева. В настоящее время я могу выполнить это с помощью следующего кода, но, к сожалению, это не плавное масштабирование, потому что мой текущий метод будет масштабировать с использованием fitBounds, а затем после масштабирования он использует panBy для панорамирования на 150 пикселей влево. Это было бы не так плохо, если бы панорамирование было плавным, возможно, после ожидания в 250 мс. В идеале я хотел бы иметь возможность выполнять некоторые математические операции с границами, переданными методу fitBounds, чтобы просто учитывать сдвиг на 150 пикселей влево.
Вот пример того, что у меня сейчас работает.
Вот упрощенная версия кода, который я использую: (вы можете нажать здесь для полностью рабочей версии со всем исходным кодом)
при нажатии
function clickFeature(e) {
var layer = e.target;
map.fitBounds(layer.getBounds());
}
карта в zoomEnd:
map.on({
zoomend: function() {
map.panBy([150, 0]);
}
});
Итак, я добился желаемой функции, но это просто не гладко.
Есть ли способ просто выполнить некоторые математические вычисления с границами, которые мы получаем для объекта, по которому щелкнули, чтобы при масштабировании мы приближались к уже измененной координате, тем самым исключая двухэтапный процесс анимации?