diff --git a/examples/localized-openstreetmap.js b/examples/localized-openstreetmap.js index fa78fce8b2..e8053c83d1 100644 --- a/examples/localized-openstreetmap.js +++ b/examples/localized-openstreetmap.js @@ -23,6 +23,7 @@ var map = new ol.Map({ renderers: ol.RendererHints.createFromQueryData(), target: 'map', view: new ol.View2D({ + maxZoom: 18, center: [-172857, 5977746], zoom: 12 }) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index a98eadda99..efd75780ce 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -49,14 +49,14 @@ * @property {ol.Coordinate|undefined} center The view center in map projection. * @property {number|undefined} maxResolution The maximum resolution in map * units per pixel. - * @property {number|undefined} numZoomLevels The number of zoom levels for this - * view. Zoom level 0 uses the `maxResolution`; subsequent zoom levels are + * @property {number|undefined} maxZoom The maximum zoom level for this view. + * Zoom level 0 uses the `maxResolution`; subsequent zoom levels are * calculated by dividing the previous resolution by `zoomFactor`. * @property {ol.ProjectionLike} projection The map projection. * @property {number|undefined} resolution The initial resolution for the view. * @property {Array.|undefined} resolutions The resolutions for this * view. If configured, this is equivalent to specifying `maxResolution` and - * `numZoomLevels`. + * `maxZoom`. * @property {number|undefined} rotation Initial rotation of the view. * @property {number|undefined} zoom Initial zoom level of the view. * @property {number|undefined} zoomFactor Factor to calculate resolutions for diff --git a/src/ol/view2d.js b/src/ol/view2d.js index e6a118a83f..c7b2fc6df2 100644 --- a/src/ol/view2d.js +++ b/src/ol/view2d.js @@ -391,25 +391,25 @@ ol.View2D.createResolutionConstraint_ = function(options) { resolutionConstraint = ol.ResolutionConstraint.createSnapToResolutions( resolutions); } else { - var numZoomLevels, zoomFactor; - if (goog.isDef(options.maxResolution) && - goog.isDef(options.numZoomLevels) && - goog.isDef(options.zoomFactor)) { - maxResolution = options.maxResolution; - numZoomLevels = options.numZoomLevels; - zoomFactor = options.zoomFactor; - } else { + maxResolution = options.maxResolution; + if (!goog.isDef(maxResolution)) { var projectionExtent = ol.projection.createProjection( options.projection, 'EPSG:3857').getExtent(); maxResolution = Math.max( projectionExtent.maxX - projectionExtent.minX, projectionExtent.maxY - projectionExtent.minY) / ol.DEFAULT_TILE_SIZE; - numZoomLevels = 29; + } + var maxZoom = options.maxZoom; + if (!goog.isDef(maxZoom)) { + maxZoom = 28; + } + var zoomFactor = options.zoomFactor; + if (!goog.isDef(zoomFactor)) { zoomFactor = 2; } - minResolution = maxResolution / Math.pow(zoomFactor, numZoomLevels - 1); + minResolution = maxResolution / Math.pow(zoomFactor, maxZoom); resolutionConstraint = ol.ResolutionConstraint.createSnapToPower( - zoomFactor, maxResolution, numZoomLevels - 1); + zoomFactor, maxResolution, maxZoom); } return [resolutionConstraint, maxResolution, minResolution]; }; diff --git a/test/spec/ol/view2d.test.js b/test/spec/ol/view2d.test.js index 95dfab872f..16dc4d499d 100644 --- a/test/spec/ol/view2d.test.js +++ b/test/spec/ol/view2d.test.js @@ -16,12 +16,12 @@ describe('ol.View2D', function() { }); }); - describe('with maxResolution, numZoomLevels, and zoomFactor options', + describe('with maxResolution, maxZoom, and zoomFactor options', function() { it('gives a correct resolution constraint function', function() { var options = { maxResolution: 81, - numZoomLevels: 4, + maxZoom: 3, zoomFactor: 3 }; var parts = ol.View2D.createResolutionConstraint_(options);