UNPKG

ol-layerlist

Version:

Layer switcher control for OpenLayers v3/v4/v5

156 lines (92 loc) 4.45 kB
# OpenLayers LayerSwitcher Grouped layer list control with group selection checkbox for an OpenLayer map. To be shown in the layer switcher layers should have a `title` property; base layers should have a `type` property set to `base`. Group layers (`ol.layer.Group`) can be used to visually group layers together; a group with a `fold` property set to either `open` or `close` will be displayed with a toggle. See [Examples](#examples) for usage. Compatible with OpenLayers version 3, 4 and 5 (see note in [Install - Parcel, Webpack etc.](#parcel-webpack-etc) regarding installing the appropriate version of `ol-layerswitcher` for OpenLayers). ## Examples The examples demonstrate usage and can be viewed online thanks to [raw.githack.com](http://raw.githack.com/): - [Basic usage](https://raw.githubusercontent.com/munna/ol3-layerswitcher/master/examples/layerswitcher.html) - Create a layer switcher control. Each layer to be displayed in the layer switcher has a `title` property as does each Group; each base map layer has a `type: 'base'` property. `allowSelection` property will enable checkbox to show/hide complete group on map. `fold` property will allow you to collaspe\expand group. `enableOpacitySliders` property on layer will enable slider to manage opacity. The source for all examples can be found in [examples](examples). ## Install ### Browser #### JS Load `ol-layerlist.js` after OpenLayers. The layerswitcher control is available as `LayerSwitcher` or `ol.control.LayerSwitcher`. ```HTML <script src="https://unpkg.com/ol-layerlist@1.1.8"></script> ``` #### CSS ```HTML <link rel="stylesheet" href="https://unpkg.com/ol-layerlist@1.1.8/src/ol-layerlist.css" /> ``` ### Parcel, Webpack etc. NPM package: [ol-layerlist](https://www.npmjs.com/package/ol-layerlist). #### JS Install the package via `npm` npm install ol-layerlist --save :warning: If you're using the [`ol` package](https://www.npmjs.com/package/ol) prior to v5 you'll need to install `ol-layerlist@v1.1.8`. #### CSS ## Tests To run the tests you'll need to install the dependencies via `npm`. In the root of the repository run: npm install Then run the tests by opening [test/index.html](test/index.html) in a browser. ## API <!-- Generated by documentation.js. Update this documentation by updating the source code. --> #### Table of Contents - [LayerSwitcher](#layerswitcher) - [setMap](#setmap) - [showPanel](#showpanel) - [hidePanel](#hidepanel) - [renderPanel](#renderpanel) - [renderPanel](#renderpanel-1) - [forEachRecursive](#foreachrecursive) - [uuid](#uuid) - [toggleFold\_](#togglefold_) ### LayerSwitcher **Extends ol.control.Control** OpenLayers Layer Switcher Control. See [the examples](./examples) for usage. **Parameters** - `opt_options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Control options, extends olx.control.ControlOptions adding: **`tipLabel`** `String` - the button tooltip. #### setMap Set the map instance the control is associated with. **Parameters** - `map` **ol.Map** The map instance. #### showPanel Show the layer panel. #### hidePanel Hide the layer panel. #### renderPanel Re-draw the layer panel to represent the current state of the layers. #### renderPanel **Static** Re-draw the layer panel to represent the current state of the layers. **Parameters** - `map` **ol.Map** The OpenLayers Map instance to render layers for - `panel` **[Element](https://developer.mozilla.org/docs/Web/API/Element)** The DOM Element into which the layer tree will be rendered #### forEachRecursive **Static** Call the supplied function for each layer in the passed layer group recursing nested groups. **Parameters** - `lyr` **ol.layer.Group** The layer group to start iterating from. - `fn` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Callback which will be called for each `ol.layer.Base` found under `lyr`. The signature for `fn` is the same as `ol.Collection#forEach` #### uuid **Static** Generate a UUID Adapted from <http://stackoverflow.com/a/2117523/526860> Returns **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** UUID #### toggleFold\_ Fold/unfold layer group **Parameters** - `lyr` - `li` ## License MIT (c)