UNPKG

ol-ext-datatable

Version:
69 lines (58 loc) 1.97 kB
/* Copyright (c) 2016 Jean-Marc VIGLINO, released under the CeCILL-B license (French BSD license) (http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt). */ import ol from 'ol' import ol_control_LayerSwitcher from './LayerSwitcher' /** * @classdesc OpenLayers 3 Layer Switcher Control. * @require layer.getPreview * @require jQuery * * @constructor * @extends {ol_control_LayerSwitcher} * @param {Object=} options Control options. */ var ol_control_LayerSwitcherImage = function(options) { options = options || {}; options.switcherClass="ol-layerswitcher-image"; if (options.mouseover!==false) options.mouseover=true; ol_control_LayerSwitcher.call(this, options); }; ol.inherits(ol_control_LayerSwitcherImage, ol_control_LayerSwitcher); /** Render a list of layer * @param {elt} element to render * @layers {Array{ol.layer}} list of layer to show * @api stable */ ol_control_LayerSwitcherImage.prototype.drawList = function(ul, layers) { var self = this; var setVisibility = function(e) { e.preventDefault(); var l = $(this).data("layer"); self.switchLayerVisibility(l,layers); if (e.type=="touchstart") $(self.element).addClass("ol-collapsed"); }; ul.css("height","auto"); layers.forEach(function(layer) { if (self.displayInLayerSwitcher(layer)) { var prev = layer.getPreview ? layer.getPreview() : ["none"]; var d = $("<li>").addClass("ol-imgcontainer") .data ('layer', layer) .click (setVisibility) .on ("touchstart", setVisibility); if (layer.getVisible()) d.addClass("select"); for (var k=0; k<prev.length; k++) { $("<img>").attr('src', prev[k]) .appendTo(d); } $("<p>").text(layer.get("title") || layer.get("name")).appendTo(d); if (self.testLayerVisibility(layer)) d.addClass("ol-layer-hidden"); d.appendTo(ul); } }); }; /** Disable overflow */ ol_control_LayerSwitcherImage.prototype.overflow = function(){}; export default ol_control_LayerSwitcherImage