UNPKG

1.73 kBJavaScriptView Raw
1goog.require('ol.Map');
2goog.require('ol.View');
3goog.require('ol.layer.Group');
4goog.require('ol.layer.Tile');
5goog.require('ol.proj');
6goog.require('ol.source.OSM');
7goog.require('ol.source.TileJSON');
8
9var map = new ol.Map({
10 layers: [
11 new ol.layer.Tile({
12 source: new ol.source.OSM()
13 }), new ol.layer.Group({
14 layers: [
15 new ol.layer.Tile({
16 source: new ol.source.TileJSON({
17 url: 'https://api.tiles.mapbox.com/v3/mapbox.20110804-hoa-foodinsecurity-3month.json?secure',
18 crossOrigin: 'anonymous'
19 })
20 }),
21 new ol.layer.Tile({
22 source: new ol.source.TileJSON({
23 url: 'https://api.tiles.mapbox.com/v3/mapbox.world-borders-light.json?secure',
24 crossOrigin: 'anonymous'
25 })
26 })
27 ]
28 })
29 ],
30 target: 'map',
31 view: new ol.View({
32 center: ol.proj.fromLonLat([37.40570, 8.81566]),
33 zoom: 4
34 })
35});
36
37function bindInputs(layerid, layer) {
38 var visibilityInput = $(layerid + ' input.visible');
39 visibilityInput.on('change', function() {
40 layer.setVisible(this.checked);
41 });
42 visibilityInput.prop('checked', layer.getVisible());
43
44 var opacityInput = $(layerid + ' input.opacity');
45 opacityInput.on('input change', function() {
46 layer.setOpacity(parseFloat(this.value));
47 });
48 opacityInput.val(String(layer.getOpacity()));
49}
50map.getLayers().forEach(function(layer, i) {
51 bindInputs('#layer' + i, layer);
52 if (layer instanceof ol.layer.Group) {
53 layer.getLayers().forEach(function(sublayer, j) {
54 bindInputs('#layer' + i + j, sublayer);
55 });
56 }
57});
58
59$('#layertree li > span').click(function() {
60 $(this).siblings('fieldset').toggle();
61}).siblings('fieldset').hide();