diff --git a/src/ol/View.js b/src/ol/View.js index bdfffe3a7b..8c82d91ba7 100644 --- a/src/ol/View.js +++ b/src/ol/View.js @@ -934,7 +934,7 @@ class View extends BaseObject { */ getZoom() { let zoom; - const resolution = this.targetResolution_; + const resolution = this.getResolution(); if (resolution !== undefined) { zoom = this.getZoomForResolution(resolution); } @@ -1339,7 +1339,7 @@ class View extends BaseObject { const direction = opt_direction || 0; const size = this.getSizeFromViewport_(this.getRotation()); - return(this.constraints_.resolution(targetResolution, direction, size)); + return this.constraints_.resolution(targetResolution, direction, size); } } diff --git a/src/ol/centerconstraint.js b/src/ol/centerconstraint.js index 0aee0057d0..3eed6c6216 100644 --- a/src/ol/centerconstraint.js +++ b/src/ol/centerconstraint.js @@ -27,8 +27,8 @@ export function createExtent(extent, onlyCenter, smooth) { */ function(center, resolution, size, opt_isMoving) { if (center) { - let viewWidth = onlyCenter ? 0 : size[0] * resolution; - let viewHeight = onlyCenter ? 0 : size[1] * resolution; + const viewWidth = onlyCenter ? 0 : size[0] * resolution; + const viewHeight = onlyCenter ? 0 : size[1] * resolution; const minX = extent[0] + viewWidth / 2; const maxX = extent[2] - viewWidth / 2; const minY = extent[1] + viewHeight / 2; diff --git a/src/ol/control/ZoomSlider.js b/src/ol/control/ZoomSlider.js index 78d65fc07b..b9629b0cca 100644 --- a/src/ol/control/ZoomSlider.js +++ b/src/ol/control/ZoomSlider.js @@ -1,7 +1,6 @@ /** * @module ol/control/ZoomSlider */ -import ViewHint from '../ViewHint.js'; import Control from './Control.js'; import {CLASS_CONTROL, CLASS_UNSELECTABLE} from '../css.js'; import {easeOut} from '../easing.js'; diff --git a/src/ol/interaction/DragPan.js b/src/ol/interaction/DragPan.js index 6bf2fb820f..1058867947 100644 --- a/src/ol/interaction/DragPan.js +++ b/src/ol/interaction/DragPan.js @@ -1,8 +1,7 @@ /** * @module ol/interaction/DragPan */ -import ViewHint from '../ViewHint.js'; -import {scale as scaleCoordinate, rotate as rotateCoordinate, add as addCoordinate} from '../coordinate.js'; +import {scale as scaleCoordinate, rotate as rotateCoordinate} from '../coordinate.js'; import {easeOut} from '../easing.js'; import {noModifierKeys} from '../events/condition.js'; import {FALSE} from '../functions.js'; diff --git a/src/ol/interaction/DragRotate.js b/src/ol/interaction/DragRotate.js index c7c57fead9..d7fc11cfd6 100644 --- a/src/ol/interaction/DragRotate.js +++ b/src/ol/interaction/DragRotate.js @@ -2,10 +2,8 @@ * @module ol/interaction/DragRotate */ import {disable} from '../rotationconstraint.js'; -import ViewHint from '../ViewHint.js'; import {altShiftKeysOnly, mouseOnly, mouseActionButton} from '../events/condition.js'; import {FALSE} from '../functions.js'; -import {rotate} from './Interaction.js'; import PointerInteraction from './Pointer.js'; diff --git a/src/ol/interaction/DragRotateAndZoom.js b/src/ol/interaction/DragRotateAndZoom.js index ab229393fe..2a43740c03 100644 --- a/src/ol/interaction/DragRotateAndZoom.js +++ b/src/ol/interaction/DragRotateAndZoom.js @@ -1,8 +1,6 @@ /** * @module ol/interaction/DragRotateAndZoom */ -import {disable} from '../rotationconstraint.js'; -import ViewHint from '../ViewHint.js'; import {shiftKeyOnly, mouseOnly} from '../events/condition.js'; import PointerInteraction from './Pointer.js'; diff --git a/src/ol/interaction/MouseWheelZoom.js b/src/ol/interaction/MouseWheelZoom.js index 33f5ac4290..a08e657956 100644 --- a/src/ol/interaction/MouseWheelZoom.js +++ b/src/ol/interaction/MouseWheelZoom.js @@ -1,9 +1,7 @@ /** * @module ol/interaction/MouseWheelZoom */ -import ViewHint from '../ViewHint.js'; import {always} from '../events/condition.js'; -import {easeOut} from '../easing.js'; import EventType from '../events/EventType.js'; import {DEVICE_PIXEL_RATIO, FIREFOX, SAFARI} from '../has.js'; import Interaction, {zoomByDelta} from './Interaction.js'; diff --git a/src/ol/interaction/PinchRotate.js b/src/ol/interaction/PinchRotate.js index f18652557a..c1143ba312 100644 --- a/src/ol/interaction/PinchRotate.js +++ b/src/ol/interaction/PinchRotate.js @@ -1,9 +1,7 @@ /** * @module ol/interaction/PinchRotate */ -import ViewHint from '../ViewHint.js'; import {FALSE} from '../functions.js'; -import {rotate} from './Interaction.js'; import PointerInteraction, {centroid as centroidFromPointers} from './Pointer.js'; import {disable} from '../rotationconstraint.js'; diff --git a/src/ol/interaction/PinchZoom.js b/src/ol/interaction/PinchZoom.js index d3e0e9f6bd..9d352bafe6 100644 --- a/src/ol/interaction/PinchZoom.js +++ b/src/ol/interaction/PinchZoom.js @@ -1,9 +1,7 @@ /** * @module ol/interaction/PinchZoom */ -import ViewHint from '../ViewHint.js'; import {FALSE} from '../functions.js'; -import {zoom} from './Interaction.js'; import PointerInteraction, {centroid as centroidFromPointers} from './Pointer.js'; diff --git a/src/ol/resolutionconstraint.js b/src/ol/resolutionconstraint.js index 16384a3770..9b053da031 100644 --- a/src/ol/resolutionconstraint.js +++ b/src/ol/resolutionconstraint.js @@ -2,8 +2,8 @@ * @module ol/resolutionconstraint */ import {linearFindNearest} from './array.js'; -import {clamp} from './math.js'; import {getHeight, getWidth} from './extent'; +import {clamp} from './math'; /** @@ -123,7 +123,7 @@ export function createSnapToPower(power, maxResolution, opt_minResolution, opt_s const capped = Math.min(cappedMaxRes, resolution); const zoomLevel = Math.floor( Math.log(maxResolution / capped) / Math.log(power) + offset); - let newResolution = maxResolution / Math.pow(power, zoomLevel); + const newResolution = maxResolution / Math.pow(power, zoomLevel); return clamp(newResolution, minResolution, cappedMaxRes); } else { return undefined; diff --git a/src/ol/rotationconstraint.js b/src/ol/rotationconstraint.js index 67c5183869..3da582e459 100644 --- a/src/ol/rotationconstraint.js +++ b/src/ol/rotationconstraint.js @@ -71,7 +71,7 @@ export function createSnapToZero(opt_tolerance) { return ( /** * @param {number|undefined} rotation Rotation. - * @param {number} delta Delta. + * @param {boolean} opt_isMoving True if an interaction or animation is in progress. * @return {number|undefined} Rotation. */ function(rotation, opt_isMoving) { diff --git a/test/spec/ol/interaction/interaction.test.js b/test/spec/ol/interaction/interaction.test.js index 7d752ab0c9..b83f949edb 100644 --- a/test/spec/ol/interaction/interaction.test.js +++ b/test/spec/ol/interaction/interaction.test.js @@ -1,7 +1,6 @@ import Map from '../../../../src/ol/Map.js'; -import View from '../../../../src/ol/View.js'; import EventTarget from '../../../../src/ol/events/Target.js'; -import Interaction, {zoomByDelta} from '../../../../src/ol/interaction/Interaction.js'; +import Interaction from '../../../../src/ol/interaction/Interaction.js'; import {FALSE} from '../../../../src/ol/functions.js'; describe('ol.interaction.Interaction', function() { diff --git a/test/spec/ol/resolutionconstraint.test.js b/test/spec/ol/resolutionconstraint.test.js index 2ac0d8fb43..2fc2649d77 100644 --- a/test/spec/ol/resolutionconstraint.test.js +++ b/test/spec/ol/resolutionconstraint.test.js @@ -244,7 +244,7 @@ describe('ol.resolutionconstraint', function() { describe('snap to power, smooth constraint on', function() { it('returns expected resolution value', function() { - let resolutionConstraint = createSnapToPower(2, 128, 16, true); + const resolutionConstraint = createSnapToPower(2, 128, 16, true); expect(resolutionConstraint(150, 0, [100, 100], true)).to.be.greaterThan(128); expect(resolutionConstraint(150, 0, [100, 100], true)).to.be.lessThan(150); @@ -261,7 +261,7 @@ describe('ol.resolutionconstraint', function() { describe('snap to power, smooth constraint off', function() { it('returns expected resolution value', function() { - let resolutionConstraint = createSnapToPower(2, 128, 16, false); + const resolutionConstraint = createSnapToPower(2, 128, 16, false); expect(resolutionConstraint(150, 0, [100, 100], true)).to.eql(128); expect(resolutionConstraint(130, 0, [100, 100], true)).to.eql(128); @@ -274,7 +274,7 @@ describe('ol.resolutionconstraint', function() { describe('snap to resolutions, smooth constraint on', function() { it('returns expected resolution value', function() { - let resolutionConstraint = createSnapToResolutions([128, 64, 32, 16], true); + const resolutionConstraint = createSnapToResolutions([128, 64, 32, 16], true); expect(resolutionConstraint(150, 0, [100, 100], true)).to.be.greaterThan(128); expect(resolutionConstraint(150, 0, [100, 100], true)).to.be.lessThan(150); @@ -291,7 +291,7 @@ describe('ol.resolutionconstraint', function() { describe('snap to resolutions, smooth constraint off', function() { it('returns expected resolution value', function() { - let resolutionConstraint = createSnapToResolutions([128, 64, 32, 16], false); + const resolutionConstraint = createSnapToResolutions([128, 64, 32, 16], false); expect(resolutionConstraint(150, 0, [100, 100], true)).to.eql(128); expect(resolutionConstraint(130, 0, [100, 100], true)).to.eql(128); @@ -304,7 +304,7 @@ describe('ol.resolutionconstraint', function() { describe('min/max, smooth constraint on', function() { it('returns expected resolution value', function() { - let resolutionConstraint = createMinMaxResolution(128, 16, true); + const resolutionConstraint = createMinMaxResolution(128, 16, true); expect(resolutionConstraint(150, 0, [100, 100], true)).to.be.greaterThan(128); expect(resolutionConstraint(150, 0, [100, 100], true)).to.be.lessThan(150); @@ -321,7 +321,7 @@ describe('ol.resolutionconstraint', function() { describe('min/max, smooth constraint off', function() { it('returns expected resolution value', function() { - let resolutionConstraint = createMinMaxResolution(128, 16, false); + const resolutionConstraint = createMinMaxResolution(128, 16, false); expect(resolutionConstraint(150, 0, [100, 100], true)).to.eql(128); expect(resolutionConstraint(130, 0, [100, 100], true)).to.eql(128); diff --git a/test/spec/ol/view.test.js b/test/spec/ol/view.test.js index 3b52a5ba89..6fe4ec1e01 100644 --- a/test/spec/ol/view.test.js +++ b/test/spec/ol/view.test.js @@ -8,7 +8,6 @@ import {createEmpty} from '../../../src/ol/extent.js'; import Circle from '../../../src/ol/geom/Circle.js'; import LineString from '../../../src/ol/geom/LineString.js'; import Point from '../../../src/ol/geom/Point.js'; -import {zoomByDelta} from '../../../src/ol/interaction/Interaction'; describe('ol.View', function() { @@ -989,7 +988,8 @@ describe('ol.View', function() { let view; beforeEach(function() { view = new View({ - resolutions: [512, 256, 128, 64, 32, 16] + resolutions: [1024, 512, 256, 128, 64, 32, 16, 8], + smoothResolutionConstraint: false }); }); @@ -998,30 +998,31 @@ describe('ol.View', function() { expect(view.getZoom()).to.be(undefined); view.setResolution(513); - expect(view.getZoom()).to.roughlyEqual(Math.log(512 / 513) / Math.LN2, 1e-9); + expect(view.getZoom()).to.roughlyEqual(Math.log(1024 / 513) / Math.LN2, 1e-9); view.setResolution(512); - expect(view.getZoom()).to.be(0); + expect(view.getZoom()).to.be(1); view.setResolution(100); - expect(view.getZoom()).to.roughlyEqual(2.35614, 1e-5); + expect(view.getZoom()).to.roughlyEqual(3.35614, 1e-5); view.setResolution(65); - expect(view.getZoom()).to.roughlyEqual(2.97763, 1e-5); + expect(view.getZoom()).to.roughlyEqual(3.97763, 1e-5); view.setResolution(64); - expect(view.getZoom()).to.be(3); + expect(view.getZoom()).to.be(4); view.setResolution(16); - expect(view.getZoom()).to.be(5); + expect(view.getZoom()).to.be(6); view.setResolution(15); - expect(view.getZoom()).to.roughlyEqual(Math.log(512 / 15) / Math.LN2, 1e-9); + expect(view.getZoom()).to.roughlyEqual(Math.log(1024 / 15) / Math.LN2, 1e-9); }); it('works for resolution arrays with variable zoom factors', function() { const view = new View({ - resolutions: [10, 5, 2, 1] + resolutions: [10, 5, 2, 1], + smoothResolutionConstraint: false }); view.setZoom(1); @@ -1046,7 +1047,8 @@ describe('ol.View', function() { it('returns correct zoom levels', function() { const view = new View({ minZoom: 10, - maxZoom: 20 + maxZoom: 20, + smoothResolutionConstraint: false }); view.setZoom(5); @@ -1122,14 +1124,16 @@ describe('ol.View', function() { describe('#getResolutionForZoom', function() { it('returns correct zoom resolution', function() { - const view = new View(); + const view = new View({ + smoothResolutionConstraint: false + }); const max = view.getMaxZoom(); const min = view.getMinZoom(); expect(view.getResolutionForZoom(max)).to.be(view.getMinResolution()); - expect(view.getResolutionForZoom(max + 1)).to.be(view.getMinResolution()); + expect(view.getResolutionForZoom(max + 1)).to.be(view.getMinResolution() / 2); expect(view.getResolutionForZoom(min)).to.be(view.getMaxResolution()); - expect(view.getResolutionForZoom(min - 1)).to.be(view.getMaxResolution()); + expect(view.getResolutionForZoom(min - 1)).to.be(view.getMaxResolution() * 2); }); it('returns correct zoom levels for specifically configured resolutions', function() { @@ -1295,10 +1299,10 @@ describe('ol.View', function() { let size = map.getView().getSizeFromViewport_(); expect(size).to.eql([200, 150]); size = map.getView().getSizeFromViewport_(Math.PI / 2); - expect(size[0]).to.roughlyEqual(150,1e-9); + expect(size[0]).to.roughlyEqual(150, 1e-9); expect(size[1]).to.roughlyEqual(200, 1e-9); size = map.getView().getSizeFromViewport_(Math.PI); - expect(size[0]).to.roughlyEqual(200,1e-9); + expect(size[0]).to.roughlyEqual(200, 1e-9); expect(size[1]).to.roughlyEqual(150, 1e-9); }); }); @@ -1481,7 +1485,7 @@ describe('ol.View', function() { describe('#beginInteraction() and endInteraction()', function() { let view; beforeEach(function() { - view = new View() + view = new View(); }); it('correctly changes the view hint', function() {