Newer
Older
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
/**
* Created by gavorhes on 12/4/2015.
*/
var provide_1 = require("../util/provide");
var LayerBaseXyzTile_1 = require("./LayerBaseXyzTile");
var esriToOl = require("../olHelpers/esriToOlStyle");
var nm = provide_1.default('layers');
/**
* Esri tile
* @augments LayerBaseXyzTile
*/
var LayerEsriTile = (function (_super) {
__extends(LayerEsriTile, _super);
/**
* The Esri tile layer
* @param {string} url - url for source
* @param {object} options - config
* @param {string} [options.id] - layer id
* @param {string} [options.name=Unnamed Layer] - layer name
* @param {number} [options.opacity=1] - opacity
* @param {boolean} [options.visible=true] - default visible
* @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28
* @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28
* @param {object} [options.params={}] the get parameters to include to retrieve the layer
* @param {number} [options.zIndex=0] the z index for the layer
* @param {function} [options.loadCallback] function to call on load, context this is the layer object
* @param {boolean} [options.legendCollapse=false] if the legend item should be initially collapsed
* @param {boolean} [options.legendCheckbox=true] if the legend item should have a checkbox for visibility
* @param {boolean} [options.legendContent] additional content to add to the legend
* @param {boolean} [options.useEsriStyle=false] if the map service style should be used
*/
function LayerEsriTile(url, options) {
if (url.search(/\/$/) == -1) {
url += '/';
}
url += 'tile/{z}/{y}/{x}';
_this = _super.call(this, url, options) || this;
_this._useEsriStyle = typeof options.useEsriStyle == 'boolean' ? options.useEsriStyle : false;
if (_this._useEsriStyle) {
_this.addLegendContent();
}
/**
* add additional content to the legend
* @param {string} [additionalContent=''] additional content for legend
*/
LayerEsriTile.prototype.addLegendContent = function (additionalContent) {
if (additionalContent === void 0) { additionalContent = ''; }
if (!this._useEsriStyle) {
_super.prototype.addLegendContent.call(this, additionalContent);
}
else {
var urlCopy = this.url;
var mapServerIndex = urlCopy.toLowerCase().indexOf('mapserver');
if (mapServerIndex > -1) {
urlCopy = urlCopy.slice(0, mapServerIndex + 9);
}
else {
return;
}
if (urlCopy[urlCopy.length - 1] !== '/') {
urlCopy += '/';
}
urlCopy += 'legend?f=pjson&callback=?';
var superAddLegend_1 = _super.prototype.addLegendContent;
$.get(urlCopy, {}, function (d) {
var newHtml = esriToOl.makeMapServiceLegend(d);
}, 'json');
}
};
return LayerEsriTile;
}(LayerBaseXyzTile_1.LayerBaseXyzTile));
exports.LayerEsriTile = LayerEsriTile;
nm.LayerBaseXyzTile = LayerEsriTile;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = LayerEsriTile;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5ZXJFc3JpVGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvTGF5ZXJFc3JpVGlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7R0FFRztBQUNILDJDQUFzQztBQUN0Qyx1REFBb0Q7QUFFcEQscURBQXVEO0FBR3ZELElBQU0sRUFBRSxHQUFHLGlCQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFNN0I7OztHQUdHO0FBQ0g7SUFBbUMsaUNBQWdCO0lBRy9DOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILHVCQUFZLEdBQVcsRUFBRSxPQUE2QjtRQUF0RCxpQkFhQztRQVpHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDZixDQUFDO1FBQ0QsR0FBRyxJQUFJLGtCQUFrQixDQUFDO1FBRTFCLFFBQUEsa0JBQU0sR0FBRyxFQUFFLE9BQU8sQ0FBQyxTQUFDO1FBRXBCLEtBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxPQUFPLENBQUMsWUFBWSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUU3RixFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNyQixLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixDQUFDOztJQUNMLENBQUM7SUFHRDs7O09BR0c7SUFDSCx3Q0FBZ0IsR0FBaEIsVUFBaUIsaUJBQXNCO1FBQXZDLGlCQTBCQztRQTFCZ0Isa0NBQUEsRUFBQSxzQkFBc0I7UUFDbkMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUN0QixpQkFBTSxnQkFBZ0IsWUFBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFFdkIsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoRSxFQUFFLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixNQUFNLENBQUM7WUFDWCxDQUFDO1lBRUQsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDdEMsT0FBTyxJQUFJLEdBQUcsQ0FBQztZQUNuQixDQUFDO1lBRUQsT0FBTyxJQUFJLDJCQUEyQixDQUFDO1lBRXZDLElBQUksZ0JBQWMsR0FBRyxpQkFBTSxnQkFBZ0IsQ0FBQztZQUU1QyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBQyxDQUFDO2dCQUNqQixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLGdCQUFjLENBQUMsSUFBSSxDQUFDLEtBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDZixDQUFDO0lBQ0wsQ0FBQztJQUdMLG9CQUFDO0FBQUQsQ0FBQyxBQXRFRCxDQUFtQyxtQ0FBZ0IsR0FzRWxEO0FBdEVZLHNDQUFhO0FBd0UxQixFQUFFLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDOztBQUNwQyxrQkFBZSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBnYXZvcmhlcyBvbiAxMi80LzIwMTUuXHJcbiAqL1xyXG5pbXBvcnQgcHJvdmlkZSBmcm9tICcuLi91dGlsL3Byb3ZpZGUnO1xyXG5pbXBvcnQge0xheWVyQmFzZVh5elRpbGV9IGZyb20gJy4vTGF5ZXJCYXNlWHl6VGlsZSc7XHJcbmltcG9ydCB7TGF5ZXJCYXNlT3B0aW9uc30gZnJvbSAnLi9MYXllckJhc2UnXHJcbmltcG9ydCAqIGFzIGVzcmlUb09sIGZyb20gJy4uL29sSGVscGVycy9lc3JpVG9PbFN0eWxlJztcclxuXHJcblxyXG5jb25zdCBubSA9IHByb3ZpZGUoJ2xheWVycycpO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXllckVzcmlUaWxlT3B0aW9ucyBleHRlbmRzIExheWVyQmFzZU9wdGlvbnN7XHJcbiAgICB1c2VFc3JpU3R5bGU/OiBib29sZWFuXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFc3JpIHRpbGVcclxuICogQGF1Z21lbnRzIExheWVyQmFzZVh5elRpbGVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXllckVzcmlUaWxlIGV4dGVuZHMgTGF5ZXJCYXNlWHl6VGlsZSB7XHJcbiAgICBfdXNlRXNyaVN0eWxlOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIEVzcmkgdGlsZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIHVybCBmb3Igc291cmNlXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmlkXSAtIGxheWVyIGlkXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubmFtZT1Vbm5hbWVkIExheWVyXSAtIGxheWVyIG5hbWVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5vcGFjaXR5PTFdIC0gb3BhY2l0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy52aXNpYmxlPXRydWVdIC0gZGVmYXVsdCB2aXNpYmxlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWluWm9vbT11bmRlZmluZWRdIC0gbWluIHpvb20gbGV2ZWwsIDAgLSAyOFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm1heFpvb209dW5kZWZpbmVkXSAtIG1heCB6b29tIGxldmVsLCAwIC0gMjhcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9ucy5wYXJhbXM9e31dIHRoZSBnZXQgcGFyYW1ldGVycyB0byBpbmNsdWRlIHRvIHJldHJpZXZlIHRoZSBsYXllclxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnpJbmRleD0wXSB0aGUgeiBpbmRleCBmb3IgdGhlIGxheWVyXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5sb2FkQ2FsbGJhY2tdIGZ1bmN0aW9uIHRvIGNhbGwgb24gbG9hZCwgY29udGV4dCB0aGlzIGlzIHRoZSBsYXllciBvYmplY3RcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubGVnZW5kQ29sbGFwc2U9ZmFsc2VdIGlmIHRoZSBsZWdlbmQgaXRlbSBzaG91bGQgYmUgaW5pdGlhbGx5IGNvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDaGVja2JveD10cnVlXSBpZiB0aGUgbGVnZW5kIGl0ZW0gc2hvdWxkIGhhdmUgYSBjaGVja2JveCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWdlbmRDb250ZW50XSBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYWRkIHRvIHRoZSBsZWdlbmRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudXNlRXNyaVN0eWxlPWZhbHNlXSBpZiB0aGUgbWFwIHNlcnZpY2Ugc3R5bGUgc2hvdWxkIGJlIHVzZWRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG9wdGlvbnM6IExheWVyRXNyaVRpbGVPcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKHVybC5zZWFyY2goL1xcLyQvKSA9PSAtMSkge1xyXG4gICAgICAgICAgICB1cmwgKz0gJy8nO1xyXG4gICAgICAgIH1cclxuICAgICAgICB1cmwgKz0gJ3RpbGUve3p9L3t5fS97eH0nO1xyXG5cclxuICAgICAgICBzdXBlcih1cmwsIG9wdGlvbnMpO1xyXG5cclxuICAgICAgICB0aGlzLl91c2VFc3JpU3R5bGUgPSB0eXBlb2Ygb3B0aW9ucy51c2VFc3JpU3R5bGUgPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy51c2VFc3JpU3R5bGUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3VzZUVzcmlTdHlsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZExlZ2VuZENvbnRlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYWRkIGFkZGl0aW9uYWwgY29udGVudCB0byB0aGUgbGVnZW5kXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2FkZGl0aW9uYWxDb250ZW50PScnXSBhZGRpdGlvbmFsIGNvbnRlbnQgZm9yIGxlZ2VuZFxyXG4gICAgICovXHJcbiAgICBhZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50ID0gJycpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3VzZUVzcmlTdHlsZSkge1xyXG4gICAgICAgICAgICBzdXBlci5hZGRMZWdlbmRDb250ZW50KGFkZGl0aW9uYWxDb250ZW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgdXJsQ29weSA9IHRoaXMudXJsO1xyXG5cclxuICAgICAgICAgICAgbGV0IG1hcFNlcnZlckluZGV4ID0gdXJsQ29weS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ21hcHNlcnZlcicpO1xyXG4gICAgICAgICAgICBpZiAobWFwU2VydmVySW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgdXJsQ29weSA9IHVybENvcHkuc2xpY2UoMCwgbWFwU2VydmVySW5kZXggKyA5KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHVybENvcHlbdXJsQ29weS5sZW5ndGggLSAxXSAhPT0gJy8nKSB7XHJcbiAgICAgICAgICAgICAgICB1cmxDb3B5ICs9ICcvJztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdXJsQ29weSArPSAnbGVnZW5kP2Y9cGpzb24mY2FsbGJhY2s9Pyc7XHJcblxyXG4gICAgICAgICAgICBsZXQgc3VwZXJBZGRMZWdlbmQgPSBzdXBlci5hZGRMZWdlbmRDb250ZW50O1xyXG5cclxuICAgICAgICAgICAgJC5nZXQodXJsQ29weSwge30sIChkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgbmV3SHRtbCA9IGVzcmlUb09sLm1ha2VNYXBTZXJ2aWNlTGVnZW5kKGQpO1xyXG4gICAgICAgICAgICAgICAgc3VwZXJBZGRMZWdlbmQuY2FsbCh0aGlzLCBuZXdIdG1sKTtcclxuICAgICAgICAgICAgfSwgJ2pzb24nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxufVxyXG5cclxubm0uTGF5ZXJCYXNlWHl6VGlsZSA9IExheWVyRXNyaVRpbGU7XHJcbmV4cG9ydCBkZWZhdWx0IExheWVyRXNyaVRpbGU7XHJcblxyXG4iXX0=