diff --git a/src/ol/tilegrid.js b/src/ol/tilegrid.js index fe29122c81..6df3de6ce2 100644 --- a/src/ol/tilegrid.js +++ b/src/ol/tilegrid.js @@ -4,6 +4,7 @@ goog.require('goog.array'); goog.require('goog.asserts'); goog.require('goog.math.Size'); goog.require('ol.Extent'); +goog.require('ol.Projection'); goog.require('ol.TileBounds'); goog.require('ol.TileCoord'); @@ -85,6 +86,28 @@ ol.TileGrid = }; +/** + * @param {number} maxZoom Maximum zoom. + * @return {ol.TileGrid} Tile grid. + */ +ol.TileGrid.createOpenStreetMap = function(maxZoom) { + + var resolutions = new Array(maxZoom + 1); + var z; + for (z = 0; z <= maxZoom; ++z) { + resolutions[z] = ol.Projection.EPSG_3857_HALF_SIZE / (128 << z); + } + + var extent = ol.Projection.EPSG_3857_EXTENT; + var origin = new goog.math.Coordinate( + -ol.Projection.EPSG_3857_HALF_SIZE, ol.Projection.EPSG_3857_HALF_SIZE); + var tileSize = new goog.math.Size(256, 256); + + return new ol.TileGrid(resolutions, extent, origin, true, true, tileSize); + +}; + + /** * @param {ol.TileCoord} tileCoord Tile coordinate. * @param {function(number, ol.TileBounds): boolean} callback Callback.