12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (factory((global.WhooTS = {})));
- }(this, (function (exports) {
- /**
- * getURL
- *
- * @param {String} baseUrl Base url of the WMS server
- * @param {String} layer Layer name
- * @param {Number} x Tile coordinate x
- * @param {Number} y Tile coordinate y
- * @param {Number} z Tile zoom
- * @param {Object} [options]
- * @param {String} [options.format='image/png']
- * @param {String} [options.service='WMS']
- * @param {String} [options.version='1.1.1']
- * @param {String} [options.request='GetMap']
- * @param {String} [options.srs='EPSG:3857']
- * @param {Number} [options.width='256']
- * @param {Number} [options.height='256']
- * @returns {String} url
- * @example
- * var baseUrl = 'http://geodata.state.nj.us/imagerywms/Natural2015';
- * var layer = 'Natural2015';
- * var url = whoots.getURL(baseUrl, layer, 154308, 197167, 19);
- */
- function getURL(baseUrl, layer, x, y, z, options) {
- options = options || {};
- var url = baseUrl + '?' + [
- 'bbox=' + getTileBBox(x, y, z),
- 'format=' + (options.format || 'image/png'),
- 'service=' + (options.service || 'WMS'),
- 'version=' + (options.version || '1.1.1'),
- 'request=' + (options.request || 'GetMap'),
- 'srs=' + (options.srs || 'EPSG:3857'),
- 'width=' + (options.width || 256),
- 'height=' + (options.height || 256),
- 'layers=' + layer
- ].join('&');
- return url;
- }
- /**
- * getTileBBox
- *
- * @param {Number} x Tile coordinate x
- * @param {Number} y Tile coordinate y
- * @param {Number} z Tile zoom
- * @returns {String} String of the bounding box
- */
- function getTileBBox(x, y, z) {
- // for Google/OSM tile scheme we need to alter the y
- y = (Math.pow(2, z) - y - 1);
- var min = getMercCoords(x * 256, y * 256, z),
- max = getMercCoords((x + 1) * 256, (y + 1) * 256, z);
- return min[0] + ',' + min[1] + ',' + max[0] + ',' + max[1];
- }
- /**
- * getMercCoords
- *
- * @param {Number} x Pixel coordinate x
- * @param {Number} y Pixel coordinate y
- * @param {Number} z Tile zoom
- * @returns {Array} [x, y]
- */
- function getMercCoords(x, y, z) {
- var resolution = (2 * Math.PI * 6378137 / 256) / Math.pow(2, z),
- merc_x = (x * resolution - 2 * Math.PI * 6378137 / 2.0),
- merc_y = (y * resolution - 2 * Math.PI * 6378137 / 2.0);
- return [merc_x, merc_y];
- }
- exports.getURL = getURL;
- exports.getTileBBox = getTileBBox;
- exports.getMercCoords = getMercCoords;
- Object.defineProperty(exports, '__esModule', { value: true });
- })));
|