diff --git a/examples/mapbox-vector-tiles.js b/examples/mapbox-vector-tiles.js index c3cf5f1f5b..2f5ea4f352 100644 --- a/examples/mapbox-vector-tiles.js +++ b/examples/mapbox-vector-tiles.js @@ -1,4 +1,5 @@ /* eslint-disable openlayers-internal/no-unused-requires */ + goog.require('ol.Map'); goog.require('ol.View'); goog.require('ol.format.MVT'); @@ -9,6 +10,7 @@ goog.require('ol.style.Icon'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); goog.require('ol.style.Text'); +goog.require('ol.tilegrid'); var key = 'pk.eyJ1IjoiYWhvY2V2YXIiLCJhIjoiRk1kMWZaSSJ9.E5BkluenyWQMsBLsuByrmg'; diff --git a/examples/osm-vector-tiles.js b/examples/osm-vector-tiles.js index bef1e300e1..db47ac2054 100644 --- a/examples/osm-vector-tiles.js +++ b/examples/osm-vector-tiles.js @@ -7,6 +7,7 @@ goog.require('ol.source.VectorTile'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); +goog.require('ol.tilegrid'); var format = new ol.format.TopoJSON(); diff --git a/examples/vector-esri-edit.js b/examples/vector-esri-edit.js index 1f723ec2ea..71eae1c9db 100644 --- a/examples/vector-esri-edit.js +++ b/examples/vector-esri-edit.js @@ -11,6 +11,7 @@ goog.require('ol.loadingstrategy'); goog.require('ol.proj'); goog.require('ol.source.Vector'); goog.require('ol.source.XYZ'); +goog.require('ol.tilegrid'); var serviceUrl = 'http://services.arcgis.com/rOo16HdIMeOBI4Mb/arcgis/rest/' + diff --git a/examples/vector-esri.js b/examples/vector-esri.js index 4eb5ce0250..28a56a55fb 100644 --- a/examples/vector-esri.js +++ b/examples/vector-esri.js @@ -10,6 +10,7 @@ goog.require('ol.source.XYZ'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); +goog.require('ol.tilegrid'); var serviceUrl = 'http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/' + diff --git a/examples/vector-osm.js b/examples/vector-osm.js index 5849220877..b81a1f3bf2 100644 --- a/examples/vector-osm.js +++ b/examples/vector-osm.js @@ -12,6 +12,7 @@ goog.require('ol.style.Circle'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); +goog.require('ol.tilegrid'); var styles = { 'amenity': { diff --git a/src/ol/attribution.js b/src/ol/attribution.js index ffd96e29ac..2297b075f3 100644 --- a/src/ol/attribution.js +++ b/src/ol/attribution.js @@ -2,6 +2,7 @@ goog.provide('ol.Attribution'); goog.require('ol.TileRange'); goog.require('ol.math'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/source/bingmaps.js b/src/ol/source/bingmaps.js index 7b53cc9c7f..74b0628024 100644 --- a/src/ol/source/bingmaps.js +++ b/src/ol/source/bingmaps.js @@ -8,6 +8,7 @@ goog.require('ol.proj'); goog.require('ol.source.State'); goog.require('ol.source.TileImage'); goog.require('ol.tilecoord'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/source/tile.js b/src/ol/source/tile.js index 54e43bf76b..01179cf590 100644 --- a/src/ol/source/tile.js +++ b/src/ol/source/tile.js @@ -1,14 +1,15 @@ goog.provide('ol.source.Tile'); goog.provide('ol.source.TileEvent'); -goog.require('ol.events.Event'); goog.require('ol'); goog.require('ol.TileCache'); goog.require('ol.TileState'); +goog.require('ol.events.Event'); goog.require('ol.proj'); goog.require('ol.size'); goog.require('ol.source.Source'); goog.require('ol.tilecoord'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/source/tileimage.js b/src/ol/source/tileimage.js index d5abe6337f..d9f7d72c3d 100644 --- a/src/ol/source/tileimage.js +++ b/src/ol/source/tileimage.js @@ -8,6 +8,7 @@ goog.require('ol.events.EventType'); goog.require('ol.proj'); goog.require('ol.reproj.Tile'); goog.require('ol.source.UrlTile'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/source/tilejson.js b/src/ol/source/tilejson.js index f65c5437ee..18f6fbdbca 100644 --- a/src/ol/source/tilejson.js +++ b/src/ol/source/tilejson.js @@ -14,6 +14,7 @@ goog.require('ol.net'); goog.require('ol.proj'); goog.require('ol.source.State'); goog.require('ol.source.TileImage'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/source/tileutfgrid.js b/src/ol/source/tileutfgrid.js index aba70e5ef8..c11c500345 100644 --- a/src/ol/source/tileutfgrid.js +++ b/src/ol/source/tileutfgrid.js @@ -12,6 +12,7 @@ goog.require('ol.net'); goog.require('ol.proj'); goog.require('ol.source.State'); goog.require('ol.source.Tile'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/source/xyz.js b/src/ol/source/xyz.js index 0bf11bdbcb..a0f31bddda 100644 --- a/src/ol/source/xyz.js +++ b/src/ol/source/xyz.js @@ -1,6 +1,7 @@ goog.provide('ol.source.XYZ'); goog.require('ol.source.TileImage'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/tilecoord.js b/src/ol/tilecoord.js index 60da04b7ec..913f93f697 100644 --- a/src/ol/tilecoord.js +++ b/src/ol/tilecoord.js @@ -1,6 +1,7 @@ goog.provide('ol.tilecoord'); goog.require('ol.extent'); +goog.require('ol.tilegrid'); /** diff --git a/src/ol/tilegrid/index.js b/src/ol/tilegrid/index.js new file mode 100644 index 0000000000..5c8f50ab73 --- /dev/null +++ b/src/ol/tilegrid/index.js @@ -0,0 +1,133 @@ +goog.provide('ol.tilegrid'); + +goog.require('ol.extent.Corner'); +goog.require('ol.obj'); +goog.require('ol.proj'); +goog.require('ol.proj.METERS_PER_UNIT'); +goog.require('ol.proj.Units'); +goog.require('ol.tilegrid.TileGrid'); + + +/** + * @param {ol.proj.Projection} projection Projection. + * @return {!ol.tilegrid.TileGrid} Default tile grid for the passed projection. + */ +ol.tilegrid.getForProjection = function(projection) { + var tileGrid = projection.getDefaultTileGrid(); + if (!tileGrid) { + tileGrid = ol.tilegrid.createForProjection(projection); + projection.setDefaultTileGrid(tileGrid); + } + return tileGrid; +}; + + +/** + * @param {ol.Extent} extent Extent. + * @param {number=} opt_maxZoom Maximum zoom level (default is + * ol.DEFAULT_MAX_ZOOM). + * @param {number|ol.Size=} opt_tileSize Tile size (default uses + * ol.DEFAULT_TILE_SIZE). + * @param {ol.extent.Corner=} opt_corner Extent corner (default is + * ol.extent.Corner.TOP_LEFT). + * @return {!ol.tilegrid.TileGrid} TileGrid instance. + */ +ol.tilegrid.createForExtent = function(extent, opt_maxZoom, opt_tileSize, opt_corner) { + var corner = opt_corner !== undefined ? + opt_corner : ol.extent.Corner.TOP_LEFT; + + var resolutions = ol.tilegrid.resolutionsFromExtent( + extent, opt_maxZoom, opt_tileSize); + + return new ol.tilegrid.TileGrid({ + extent: extent, + origin: ol.extent.getCorner(extent, corner), + resolutions: resolutions, + tileSize: opt_tileSize + }); +}; + + +/** + * Creates a tile grid with a standard XYZ tiling scheme. + * @param {olx.tilegrid.XYZOptions=} opt_options Tile grid options. + * @return {ol.tilegrid.TileGrid} Tile grid instance. + * @api + */ +ol.tilegrid.createXYZ = function(opt_options) { + var options = /** @type {olx.tilegrid.TileGridOptions} */ ({}); + ol.obj.assign(options, opt_options !== undefined ? + opt_options : /** @type {olx.tilegrid.XYZOptions} */ ({})); + if (options.extent === undefined) { + options.extent = ol.proj.get('EPSG:3857').getExtent(); + } + options.resolutions = ol.tilegrid.resolutionsFromExtent( + options.extent, options.maxZoom, options.tileSize); + delete options.maxZoom; + + return new ol.tilegrid.TileGrid(options); +}; + + +/** + * Create a resolutions array from an extent. A zoom factor of 2 is assumed. + * @param {ol.Extent} extent Extent. + * @param {number=} opt_maxZoom Maximum zoom level (default is + * ol.DEFAULT_MAX_ZOOM). + * @param {number|ol.Size=} opt_tileSize Tile size (default uses + * ol.DEFAULT_TILE_SIZE). + * @return {!Array.} Resolutions array. + */ +ol.tilegrid.resolutionsFromExtent = function(extent, opt_maxZoom, opt_tileSize) { + var maxZoom = opt_maxZoom !== undefined ? + opt_maxZoom : ol.DEFAULT_MAX_ZOOM; + + var height = ol.extent.getHeight(extent); + var width = ol.extent.getWidth(extent); + + var tileSize = ol.size.toSize(opt_tileSize !== undefined ? + opt_tileSize : ol.DEFAULT_TILE_SIZE); + var maxResolution = Math.max( + width / tileSize[0], height / tileSize[1]); + + var length = maxZoom + 1; + var resolutions = new Array(length); + for (var z = 0; z < length; ++z) { + resolutions[z] = maxResolution / Math.pow(2, z); + } + return resolutions; +}; + + +/** + * @param {ol.ProjectionLike} projection Projection. + * @param {number=} opt_maxZoom Maximum zoom level (default is + * ol.DEFAULT_MAX_ZOOM). + * @param {ol.Size=} opt_tileSize Tile size (default uses ol.DEFAULT_TILE_SIZE). + * @param {ol.extent.Corner=} opt_corner Extent corner (default is + * ol.extent.Corner.BOTTOM_LEFT). + * @return {!ol.tilegrid.TileGrid} TileGrid instance. + */ +ol.tilegrid.createForProjection = function(projection, opt_maxZoom, opt_tileSize, opt_corner) { + var extent = ol.tilegrid.extentFromProjection(projection); + return ol.tilegrid.createForExtent( + extent, opt_maxZoom, opt_tileSize, opt_corner); +}; + + +/** + * Generate a tile grid extent from a projection. If the projection has an + * extent, it is used. If not, a global extent is assumed. + * @param {ol.ProjectionLike} projection Projection. + * @return {ol.Extent} Extent. + */ +ol.tilegrid.extentFromProjection = function(projection) { + projection = ol.proj.get(projection); + var extent = projection.getExtent(); + if (!extent) { + var half = 180 * ol.proj.METERS_PER_UNIT[ol.proj.Units.DEGREES] / + projection.getMetersPerUnit(); + extent = ol.extent.createOrUpdate(-half, -half, half, half); + } + return extent; +}; diff --git a/src/ol/tilegrid.jsdoc b/src/ol/tilegrid/index.jsdoc similarity index 100% rename from src/ol/tilegrid.jsdoc rename to src/ol/tilegrid/index.jsdoc diff --git a/src/ol/tilegrid/tilegrid.js b/src/ol/tilegrid/tilegrid.js index 033031f166..9971bdbdd3 100644 --- a/src/ol/tilegrid/tilegrid.js +++ b/src/ol/tilegrid/tilegrid.js @@ -4,12 +4,7 @@ goog.require('ol'); goog.require('ol.TileRange'); goog.require('ol.array'); goog.require('ol.extent'); -goog.require('ol.extent.Corner'); goog.require('ol.math'); -goog.require('ol.obj'); -goog.require('ol.proj'); -goog.require('ol.proj.METERS_PER_UNIT'); -goog.require('ol.proj.Units'); goog.require('ol.size'); goog.require('ol.tilecoord'); @@ -507,128 +502,3 @@ ol.tilegrid.TileGrid.prototype.calculateTileRanges_ = function(extent) { } this.fullTileRanges_ = fullTileRanges; }; - - -/** - * @param {ol.proj.Projection} projection Projection. - * @return {!ol.tilegrid.TileGrid} Default tile grid for the passed projection. - */ -ol.tilegrid.getForProjection = function(projection) { - var tileGrid = projection.getDefaultTileGrid(); - if (!tileGrid) { - tileGrid = ol.tilegrid.createForProjection(projection); - projection.setDefaultTileGrid(tileGrid); - } - return tileGrid; -}; - - -/** - * @param {ol.Extent} extent Extent. - * @param {number=} opt_maxZoom Maximum zoom level (default is - * ol.DEFAULT_MAX_ZOOM). - * @param {number|ol.Size=} opt_tileSize Tile size (default uses - * ol.DEFAULT_TILE_SIZE). - * @param {ol.extent.Corner=} opt_corner Extent corner (default is - * ol.extent.Corner.TOP_LEFT). - * @return {!ol.tilegrid.TileGrid} TileGrid instance. - */ -ol.tilegrid.createForExtent = function(extent, opt_maxZoom, opt_tileSize, opt_corner) { - var corner = opt_corner !== undefined ? - opt_corner : ol.extent.Corner.TOP_LEFT; - - var resolutions = ol.tilegrid.resolutionsFromExtent( - extent, opt_maxZoom, opt_tileSize); - - return new ol.tilegrid.TileGrid({ - extent: extent, - origin: ol.extent.getCorner(extent, corner), - resolutions: resolutions, - tileSize: opt_tileSize - }); -}; - - -/** - * Creates a tile grid with a standard XYZ tiling scheme. - * @param {olx.tilegrid.XYZOptions=} opt_options Tile grid options. - * @return {ol.tilegrid.TileGrid} Tile grid instance. - * @api - */ -ol.tilegrid.createXYZ = function(opt_options) { - var options = /** @type {olx.tilegrid.TileGridOptions} */ ({}); - ol.obj.assign(options, opt_options !== undefined ? - opt_options : /** @type {olx.tilegrid.XYZOptions} */ ({})); - if (options.extent === undefined) { - options.extent = ol.proj.get('EPSG:3857').getExtent(); - } - options.resolutions = ol.tilegrid.resolutionsFromExtent( - options.extent, options.maxZoom, options.tileSize); - delete options.maxZoom; - - return new ol.tilegrid.TileGrid(options); -}; - - -/** - * Create a resolutions array from an extent. A zoom factor of 2 is assumed. - * @param {ol.Extent} extent Extent. - * @param {number=} opt_maxZoom Maximum zoom level (default is - * ol.DEFAULT_MAX_ZOOM). - * @param {number|ol.Size=} opt_tileSize Tile size (default uses - * ol.DEFAULT_TILE_SIZE). - * @return {!Array.} Resolutions array. - */ -ol.tilegrid.resolutionsFromExtent = function(extent, opt_maxZoom, opt_tileSize) { - var maxZoom = opt_maxZoom !== undefined ? - opt_maxZoom : ol.DEFAULT_MAX_ZOOM; - - var height = ol.extent.getHeight(extent); - var width = ol.extent.getWidth(extent); - - var tileSize = ol.size.toSize(opt_tileSize !== undefined ? - opt_tileSize : ol.DEFAULT_TILE_SIZE); - var maxResolution = Math.max( - width / tileSize[0], height / tileSize[1]); - - var length = maxZoom + 1; - var resolutions = new Array(length); - for (var z = 0; z < length; ++z) { - resolutions[z] = maxResolution / Math.pow(2, z); - } - return resolutions; -}; - - -/** - * @param {ol.ProjectionLike} projection Projection. - * @param {number=} opt_maxZoom Maximum zoom level (default is - * ol.DEFAULT_MAX_ZOOM). - * @param {ol.Size=} opt_tileSize Tile size (default uses ol.DEFAULT_TILE_SIZE). - * @param {ol.extent.Corner=} opt_corner Extent corner (default is - * ol.extent.Corner.BOTTOM_LEFT). - * @return {!ol.tilegrid.TileGrid} TileGrid instance. - */ -ol.tilegrid.createForProjection = function(projection, opt_maxZoom, opt_tileSize, opt_corner) { - var extent = ol.tilegrid.extentFromProjection(projection); - return ol.tilegrid.createForExtent( - extent, opt_maxZoom, opt_tileSize, opt_corner); -}; - - -/** - * Generate a tile grid extent from a projection. If the projection has an - * extent, it is used. If not, a global extent is assumed. - * @param {ol.ProjectionLike} projection Projection. - * @return {ol.Extent} Extent. - */ -ol.tilegrid.extentFromProjection = function(projection) { - projection = ol.proj.get(projection); - var extent = projection.getExtent(); - if (!extent) { - var half = 180 * ol.proj.METERS_PER_UNIT[ol.proj.Units.DEGREES] / - projection.getMetersPerUnit(); - extent = ol.extent.createOrUpdate(-half, -half, half, half); - } - return extent; -}; diff --git a/test/spec/ol/renderer/canvas/vectortilelayer.test.js b/test/spec/ol/renderer/canvas/vectortilelayer.test.js index 377ef7dfd2..7c3de22187 100644 --- a/test/spec/ol/renderer/canvas/vectortilelayer.test.js +++ b/test/spec/ol/renderer/canvas/vectortilelayer.test.js @@ -13,6 +13,7 @@ goog.require('ol.renderer.canvas.VectorTileLayer'); goog.require('ol.source.VectorTile'); goog.require('ol.style.Style'); goog.require('ol.style.Text'); +goog.require('ol.tilegrid'); describe('ol.renderer.canvas.VectorTileLayer', function() { diff --git a/test/spec/ol/reproj/tile.test.js b/test/spec/ol/reproj/tile.test.js index 76e2f6e9ed..ffdde87d49 100644 --- a/test/spec/ol/reproj/tile.test.js +++ b/test/spec/ol/reproj/tile.test.js @@ -4,6 +4,7 @@ goog.require('ol.ImageTile'); goog.require('ol.events'); goog.require('ol.proj'); goog.require('ol.reproj.Tile'); +goog.require('ol.tilegrid'); describe('ol.reproj.Tile', function() { diff --git a/test/spec/ol/source/tileimage.test.js b/test/spec/ol/source/tileimage.test.js index fd4aac2dbf..eda13462f1 100644 --- a/test/spec/ol/source/tileimage.test.js +++ b/test/spec/ol/source/tileimage.test.js @@ -7,6 +7,7 @@ goog.require('ol.proj'); goog.require('ol.proj.Projection'); goog.require('ol.reproj.Tile'); goog.require('ol.source.TileImage'); +goog.require('ol.tilegrid'); describe('ol.source.TileImage', function() { diff --git a/test/spec/ol/source/tilewms.test.js b/test/spec/ol/source/tilewms.test.js index 4c1b055ac1..72f986e95a 100644 --- a/test/spec/ol/source/tilewms.test.js +++ b/test/spec/ol/source/tilewms.test.js @@ -1,8 +1,9 @@ goog.provide('ol.test.source.TileWMS'); goog.require('ol.ImageTile'); -goog.require('ol.source.TileWMS'); goog.require('ol.proj'); +goog.require('ol.source.TileWMS'); +goog.require('ol.tilegrid'); goog.require('ol.tilegrid.TileGrid'); diff --git a/test/spec/ol/source/urltile.test.js b/test/spec/ol/source/urltile.test.js index f73a3a3f5c..a94617c79f 100644 --- a/test/spec/ol/source/urltile.test.js +++ b/test/spec/ol/source/urltile.test.js @@ -2,6 +2,7 @@ goog.provide('ol.test.source.UrlTile'); goog.require('ol.proj'); goog.require('ol.source.UrlTile'); +goog.require('ol.tilegrid'); describe('ol.source.UrlTile', function() { diff --git a/test/spec/ol/source/vectortile.test.js b/test/spec/ol/source/vectortile.test.js index 63235df52e..b634c7a69c 100644 --- a/test/spec/ol/source/vectortile.test.js +++ b/test/spec/ol/source/vectortile.test.js @@ -4,6 +4,7 @@ goog.require('ol.VectorTile'); goog.require('ol.format.MVT'); goog.require('ol.proj'); goog.require('ol.source.VectorTile'); +goog.require('ol.tilegrid'); describe('ol.source.VectorTile', function() { diff --git a/test/spec/ol/source/xyz.test.js b/test/spec/ol/source/xyz.test.js index 13858edec2..47cd1c1643 100644 --- a/test/spec/ol/source/xyz.test.js +++ b/test/spec/ol/source/xyz.test.js @@ -4,6 +4,7 @@ goog.require('ol.source.Tile'); goog.require('ol.source.TileImage'); goog.require('ol.source.UrlTile'); goog.require('ol.source.XYZ'); +goog.require('ol.tilegrid'); describe('ol.source.XYZ', function() { diff --git a/test/spec/ol/tilegrid/tilegrid.test.js b/test/spec/ol/tilegrid/tilegrid.test.js index 9d37e41432..d0b811ef9e 100644 --- a/test/spec/ol/tilegrid/tilegrid.test.js +++ b/test/spec/ol/tilegrid/tilegrid.test.js @@ -1,11 +1,12 @@ goog.provide('ol.test.TileGrid'); +goog.require('ol.TileRange'); goog.require('ol.extent'); goog.require('ol.proj'); -goog.require('ol.proj.METERS_PER_UNIT'); goog.require('ol.proj.EPSG3857'); +goog.require('ol.proj.METERS_PER_UNIT'); goog.require('ol.proj.Projection'); -goog.require('ol.TileRange'); +goog.require('ol.tilegrid'); goog.require('ol.tilegrid.TileGrid'); diff --git a/test/spec/ol/tileurlfunction.test.js b/test/spec/ol/tileurlfunction.test.js index c4696755d6..d4f1019ff1 100644 --- a/test/spec/ol/tileurlfunction.test.js +++ b/test/spec/ol/tileurlfunction.test.js @@ -1,6 +1,7 @@ goog.provide('ol.test.TileUrlFunction'); goog.require('ol.TileUrlFunction'); +goog.require('ol.tilegrid'); goog.require('ol.tilegrid.TileGrid'); diff --git a/test_rendering/spec/ol/layer/image.test.js b/test_rendering/spec/ol/layer/image.test.js index f5d655ecc2..60757d6b2d 100644 --- a/test_rendering/spec/ol/layer/image.test.js +++ b/test_rendering/spec/ol/layer/image.test.js @@ -6,6 +6,7 @@ goog.require('ol.layer.Image'); goog.require('ol.obj'); goog.require('ol.proj'); goog.require('ol.source.ImageStatic'); +goog.require('ol.tilegrid'); describe('ol.rendering.layer.Image', function() { diff --git a/test_rendering/spec/ol/layer/vectortile.test.js b/test_rendering/spec/ol/layer/vectortile.test.js index 77b24d38d3..215ccc44b4 100644 --- a/test_rendering/spec/ol/layer/vectortile.test.js +++ b/test_rendering/spec/ol/layer/vectortile.test.js @@ -6,6 +6,7 @@ goog.require('ol.format.MVT'); goog.require('ol.layer.VectorTile'); goog.require('ol.obj'); goog.require('ol.source.VectorTile'); +goog.require('ol.tilegrid'); describe('ol.rendering.layer.VectorTile', function() { diff --git a/test_rendering/spec/ol/reproj/image.test.js b/test_rendering/spec/ol/reproj/image.test.js index 08069072a2..62a7f9223a 100644 --- a/test_rendering/spec/ol/reproj/image.test.js +++ b/test_rendering/spec/ol/reproj/image.test.js @@ -5,6 +5,7 @@ goog.require('ol.proj'); goog.require('ol.proj.EPSG3857'); goog.require('ol.reproj.Image'); goog.require('ol.source.ImageStatic'); +goog.require('ol.tilegrid'); describe('ol.rendering.reproj.Image', function() { diff --git a/test_rendering/spec/ol/reproj/tile.test.js b/test_rendering/spec/ol/reproj/tile.test.js index 06129029b7..cce2b29035 100644 --- a/test_rendering/spec/ol/reproj/tile.test.js +++ b/test_rendering/spec/ol/reproj/tile.test.js @@ -1,10 +1,11 @@ goog.provide('ol.test.rendering.reproj.Tile'); +goog.require('ol.TileState'); goog.require('ol.events'); goog.require('ol.proj'); goog.require('ol.reproj.Tile'); goog.require('ol.source.XYZ'); -goog.require('ol.TileState'); +goog.require('ol.tilegrid'); describe('ol.rendering.reproj.Tile', function() {