/**
* BeNomad BeMap JavaScript API - Layer class
*/
/**
* @classdesc
* Base class for layer.
* @public
* @constructor
* @param options.
*/
bemap.Layer = function(options) {
var opts = options || {};
/**
* @protected
*/
this.native = null;
/**
* @protected
*/
this.map = null;
/**
* @protected
*/
this.visible = true;
/**
* @protected
*/
this.name = opts.name ? opts.name : null;
/**
* @protected
*/
this.base = opts.base ? opts.base : false;
/**
* @type {Boolean}
* @protected
*/
this.transparent = opts.transparent ? opts.transparent : false;
/**
* @protected
*/
this.options = opts;
};
/**
* @classdesc
* Base class for OSM layer.
* @public
* @constructor
* @param options.
*/
bemap.OsmLayer = function(options) {
this.url = options ? options.url : 'false';
bemap.Layer.call(this, options);
};
bemap.inherits(bemap.OsmLayer, bemap.Layer);
/**
* @classdesc
* Base class for WMS layer.
* @public
* @constructor
* @param {Object} options See below the available values.
* @param {String} options.layers Name of layers separated by comma.
* @param {String} options.styles Name of styles separated by comma.
*/
bemap.WmsLayer = function(options) {
var opts = options || {};
this.url = opts.url ? opts.url : 'false';
this.layers = opts.layers ? opts.layers : 'default';
this.styles = opts.styles ? opts.styles : '';
this.format = opts.format ? opts.format : null;
bemap.Layer.call(this, options);
};
bemap.inherits(bemap.WmsLayer, bemap.Layer);
/**
* @classdesc
* Base class for BeMap layer.
* @public
* @constructor
* @param {Object} options See below the available values.
* @param {String} options.geoserver Name of BeMap Geoserver.
* @param {String} options.layers Name of layers separated by comma.
* @param {String} options.styles Name of styles separated by comma.
*/
bemap.BemapLayer = function(options) {
var opts = options || {};
this.url = opts.url ? opts.url : 'false';
this.geoserver = opts.geoserver ? opts.geoserver : undefined;
this.layers = opts.layers ? opts.layers : 'default';
this.styles = opts.styles ? opts.styles : '';
this.format = opts.format ? opts.format : null;
bemap.Layer.call(this, options);
};
bemap.inherits(bemap.BemapLayer, bemap.Layer);
/**
* @classdesc
* Base class for Vector layer.
* @public
* @constructor
* @param options.
*/
bemap.VectorLayer = function(options) {
bemap.Layer.call(this, options);
};
bemap.inherits(bemap.VectorLayer, bemap.Layer);
/**
*
*/
bemap.ClusterLayer = function(options) {
var opts = options || {};
this.distance = opts.distance ? opts.distance : 40;
this.style = opts.style ? opts.style : new bemap.clusterStyle();
bemap.Layer.call(this, options);
};
bemap.inherits(bemap.ClusterLayer, bemap.Layer);
/**
* Remove the layer from the map.
* @return {bemap.Layer} this.
*/
bemap.Layer.prototype.remove = function() {
if (this.map !== null && bemap.inheritsof(this.map, bemap.Map)) {
this.map.removeLayer(this);
}
return this;
};
/**
* Remove all object from the layer.
* @return {bemap.Layer} this.
*/
bemap.Layer.prototype.clear = function() {
if (this.map !== null && this.native !== null) {
this.map.clearLayer(this);
}
return this;
};
/**
* Set the visibility of the layer.
* @param {boolean} visible.
* @return {bemap.Layer} this;
*/
bemap.Layer.prototype.setVisible = function(visible) {
if (this.map !== null && bemap.inheritsof(this.map, bemap.Map)) {
this.map.visibleLayer(this, visible);
this.visible = visible;
}
return this;
};
/**
* Return the visibility of the layer.
* @return {boolean} visible.
*/
bemap.Layer.prototype.isVisible = function() {
return this.visible;
};
/**
*
Set get feature info call back.
* @param {object} options options.
* @param {function} options.beforeCallback callback called at data reception and before display the popup.
* @param {function} options.afterCallback callback called after display the popup.
* @return {bemap.Listener} listener;
*/
bemap.Layer.prototype.onGetFeatureInfo = function(options) {
if (this.map !== null && bemap.inheritsof(this.map, bemap.Map)) {
return this.map.onGetFeatureInfo(this, options);
}
return new bemap.Listener();
};