Merge pull request #11561 from M393/view-constrain-center-after-fit
Constrain resolution when fit called without duration
This commit is contained in:
+2
-2
@@ -1290,14 +1290,14 @@ class View extends BaseObject {
|
|||||||
centerRotY += ((padding[0] - padding[2]) / 2) * resolution;
|
centerRotY += ((padding[0] - padding[2]) / 2) * resolution;
|
||||||
const centerX = centerRotX * cosAngle - centerRotY * sinAngle;
|
const centerX = centerRotX * cosAngle - centerRotY * sinAngle;
|
||||||
const centerY = centerRotY * cosAngle + centerRotX * sinAngle;
|
const centerY = centerRotY * cosAngle + centerRotX * sinAngle;
|
||||||
const center = [centerX, centerY];
|
const center = this.getConstrainedCenter([centerX, centerY], resolution);
|
||||||
const callback = options.callback ? options.callback : VOID;
|
const callback = options.callback ? options.callback : VOID;
|
||||||
|
|
||||||
if (options.duration !== undefined) {
|
if (options.duration !== undefined) {
|
||||||
this.animateInternal(
|
this.animateInternal(
|
||||||
{
|
{
|
||||||
resolution: resolution,
|
resolution: resolution,
|
||||||
center: this.getConstrainedCenter(center, resolution),
|
center: center,
|
||||||
duration: options.duration,
|
duration: options.duration,
|
||||||
easing: options.easing,
|
easing: options.easing,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1776,6 +1776,12 @@ describe('ol.View', function () {
|
|||||||
expect(view.getCenter()[0]).to.be(1500);
|
expect(view.getCenter()[0]).to.be(1500);
|
||||||
expect(view.getCenter()[1]).to.be(1500);
|
expect(view.getCenter()[1]).to.be(1500);
|
||||||
});
|
});
|
||||||
|
it('fits correctly to the extent when a view extent is configured', function () {
|
||||||
|
view.options_.extent = [1500, 0, 2500, 10000];
|
||||||
|
view.applyOptions_(view.options_);
|
||||||
|
view.fit([1000, 1000, 2000, 2000]);
|
||||||
|
expect(view.calculateExtent()).eql([1500, 1000, 2500, 2000]);
|
||||||
|
});
|
||||||
it('throws on invalid geometry/extent value', function () {
|
it('throws on invalid geometry/extent value', function () {
|
||||||
expect(function () {
|
expect(function () {
|
||||||
view.fit(true, [200, 200]);
|
view.fit(true, [200, 200]);
|
||||||
|
|||||||
Reference in New Issue
Block a user