Improve modularity
This commit is contained in:
@@ -1,28 +0,0 @@
|
|||||||
goog.provide('ol.tilegrid.createXYZ');
|
|
||||||
|
|
||||||
goog.require('ol.Coordinate');
|
|
||||||
goog.require('ol.Projection');
|
|
||||||
goog.require('ol.Size');
|
|
||||||
goog.require('ol.TileGrid');
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {number} maxZoom Maximum zoom.
|
|
||||||
* @return {ol.TileGrid} Tile grid.
|
|
||||||
*/
|
|
||||||
ol.tilegrid.createXYZ = 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 ol.Coordinate(
|
|
||||||
-ol.Projection.EPSG_3857_HALF_SIZE, ol.Projection.EPSG_3857_HALF_SIZE);
|
|
||||||
var tileSize = new ol.Size(256, 256);
|
|
||||||
|
|
||||||
return new ol.TileGrid(resolutions, extent, origin, tileSize);
|
|
||||||
|
|
||||||
};
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
goog.provide('ol.tilelayer.createXYZ');
|
|
||||||
|
|
||||||
goog.require('ol.Layer');
|
|
||||||
goog.require('ol.TileLayer');
|
|
||||||
goog.require('ol.tilestore.createXYZ');
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {number} maxZoom Maximum zoom.
|
|
||||||
* @param {Array.<string>} templates Templates.
|
|
||||||
* @param {string=} opt_attribution Attribution.
|
|
||||||
* @param {string=} opt_crossOrigin Cross origin.
|
|
||||||
* @param {Object.<string, *>=} opt_values Values.
|
|
||||||
* @return {ol.Layer} Layer.
|
|
||||||
*/
|
|
||||||
ol.tilelayer.createXYZ =
|
|
||||||
function(maxZoom, templates, opt_attribution, opt_crossOrigin, opt_values) {
|
|
||||||
var store = ol.tilestore.createXYZ(
|
|
||||||
maxZoom, templates, opt_attribution, opt_crossOrigin);
|
|
||||||
return new ol.TileLayer(store, opt_values);
|
|
||||||
};
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
goog.provide('ol.tilestore.createXYZ');
|
|
||||||
|
|
||||||
goog.require('goog.math');
|
|
||||||
goog.require('ol.Projection');
|
|
||||||
goog.require('ol.TileCoord');
|
|
||||||
goog.require('ol.TileGrid');
|
|
||||||
goog.require('ol.TileStore');
|
|
||||||
goog.require('ol.TileUrlFunction');
|
|
||||||
goog.require('ol.tilegrid.createXYZ');
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {number} maxZoom Maximum zoom.
|
|
||||||
* @param {Array.<string>} templates Templates.
|
|
||||||
* @param {string=} opt_attribution Attribution.
|
|
||||||
* @param {string=} opt_crossOrigin Cross origin.
|
|
||||||
* @return {ol.TileStore} Tile store.
|
|
||||||
*/
|
|
||||||
ol.tilestore.createXYZ =
|
|
||||||
function(maxZoom, templates, opt_attribution, opt_crossOrigin) {
|
|
||||||
|
|
||||||
var projection = ol.Projection.getFromCode('EPSG:3857');
|
|
||||||
var tileGrid = ol.tilegrid.createXYZ(maxZoom);
|
|
||||||
var tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(
|
|
||||||
function(tileCoord) {
|
|
||||||
var n = 1 << tileCoord.z;
|
|
||||||
var y = -tileCoord.y - 1;
|
|
||||||
if (y < 0 || n <= y) {
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
var x = goog.math.modulo(tileCoord.x, n);
|
|
||||||
return new ol.TileCoord(tileCoord.z, x, y);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ol.TileUrlFunction.createFromTemplates(templates));
|
|
||||||
var extent = projection.getExtent();
|
|
||||||
|
|
||||||
return new ol.TileStore(projection, tileGrid, tileUrlFunction, extent,
|
|
||||||
opt_attribution, opt_crossOrigin);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
84
src/ol/tile/xyz.js
Normal file
84
src/ol/tile/xyz.js
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
goog.provide('ol.tilegrid.createXYZ');
|
||||||
|
goog.provide('ol.tilelayer.createXYZ');
|
||||||
|
goog.provide('ol.tilestore.createXYZ');
|
||||||
|
|
||||||
|
goog.require('goog.math');
|
||||||
|
goog.require('ol.Coordinate');
|
||||||
|
goog.require('ol.Layer');
|
||||||
|
goog.require('ol.Projection');
|
||||||
|
goog.require('ol.Size');
|
||||||
|
goog.require('ol.TileCoord');
|
||||||
|
goog.require('ol.TileGrid');
|
||||||
|
goog.require('ol.TileLayer');
|
||||||
|
goog.require('ol.TileStore');
|
||||||
|
goog.require('ol.TileUrlFunction');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {number} maxZoom Maximum zoom.
|
||||||
|
* @return {ol.TileGrid} Tile grid.
|
||||||
|
*/
|
||||||
|
ol.tilegrid.createXYZ = 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 ol.Coordinate(
|
||||||
|
-ol.Projection.EPSG_3857_HALF_SIZE, ol.Projection.EPSG_3857_HALF_SIZE);
|
||||||
|
var tileSize = new ol.Size(256, 256);
|
||||||
|
|
||||||
|
return new ol.TileGrid(resolutions, extent, origin, tileSize);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {number} maxZoom Maximum zoom.
|
||||||
|
* @param {Array.<string>} templates Templates.
|
||||||
|
* @param {string=} opt_attribution Attribution.
|
||||||
|
* @param {string=} opt_crossOrigin Cross origin.
|
||||||
|
* @param {Object.<string, *>=} opt_values Values.
|
||||||
|
* @return {ol.Layer} Layer.
|
||||||
|
*/
|
||||||
|
ol.tilelayer.createXYZ =
|
||||||
|
function(maxZoom, templates, opt_attribution, opt_crossOrigin, opt_values) {
|
||||||
|
var store = ol.tilestore.createXYZ(
|
||||||
|
maxZoom, templates, opt_attribution, opt_crossOrigin);
|
||||||
|
return new ol.TileLayer(store, opt_values);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {number} maxZoom Maximum zoom.
|
||||||
|
* @param {Array.<string>} templates Templates.
|
||||||
|
* @param {string=} opt_attribution Attribution.
|
||||||
|
* @param {string=} opt_crossOrigin Cross origin.
|
||||||
|
* @return {ol.TileStore} Tile store.
|
||||||
|
*/
|
||||||
|
ol.tilestore.createXYZ =
|
||||||
|
function(maxZoom, templates, opt_attribution, opt_crossOrigin) {
|
||||||
|
|
||||||
|
var projection = ol.Projection.getFromCode('EPSG:3857');
|
||||||
|
var tileGrid = ol.tilegrid.createXYZ(maxZoom);
|
||||||
|
var tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(
|
||||||
|
function(tileCoord) {
|
||||||
|
var n = 1 << tileCoord.z;
|
||||||
|
var y = -tileCoord.y - 1;
|
||||||
|
if (y < 0 || n <= y) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
var x = goog.math.modulo(tileCoord.x, n);
|
||||||
|
return new ol.TileCoord(tileCoord.z, x, y);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ol.TileUrlFunction.createFromTemplates(templates));
|
||||||
|
var extent = projection.getExtent();
|
||||||
|
|
||||||
|
return new ol.TileStore(projection, tileGrid, tileUrlFunction, extent,
|
||||||
|
opt_attribution, opt_crossOrigin);
|
||||||
|
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user