mobility-toolbox-js
Version:
Toolbox for JavaScript applications in the domains of mobility and logistics.
40 lines (39 loc) • 1.24 kB
JavaScript
import debounce from 'lodash.debounce';
import OLLayer from 'ol/layer/Layer';
import LayerRenderer from 'ol/renderer/Layer';
import defineDeprecatedProperties from '../utils/defineDeprecatedProperties';
let deprecated = () => { };
if (typeof window !== 'undefined' &&
new URLSearchParams(window.location.search).get('deprecated')) {
deprecated = debounce((message) => {
// eslint-disable-next-line no-console
console.warn(message);
}, 1000);
}
class EmptyLayerRenderer extends LayerRenderer {
prepareFrame() {
return true;
}
renderFrame() {
return null;
}
}
/**
* An OpenLayers layer here only for backward compatibility v2.
* @deprecated Use an OpenLayers Layer instead.
*/
class Layer extends OLLayer {
constructor(options) {
super(options);
defineDeprecatedProperties(this, options);
deprecated('Layer is deprecated. Use an OpenLayers Layer instead.');
}
clone(newOptions) {
return new Layer(Object.assign(Object.assign({}, (this.get('options') || {})), (newOptions || {})));
}
// ol does not like when it returns null.
createRenderer() {
return new EmptyLayerRenderer(this);
}
}
export default Layer;