UNPKG

1.27 kBJavaScriptView Raw
1goog.require('ol.Map');
2goog.require('ol.View');
3goog.require('ol.layer.Tile');
4goog.require('ol.source.BingMaps');
5
6
7var styles = [
8 'Road',
9 'RoadOnDemand',
10 'Aerial',
11 'AerialWithLabels',
12 'collinsBart',
13 'ordnanceSurvey'
14];
15var layers = [];
16var i, ii;
17for (i = 0, ii = styles.length; i < ii; ++i) {
18 layers.push(new ol.layer.Tile({
19 visible: false,
20 preload: Infinity,
21 source: new ol.source.BingMaps({
22 key: 'As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5',
23 imagerySet: styles[i]
24 // use maxZoom 19 to see stretched tiles instead of the BingMaps
25 // "no photos at this zoom level" tiles
26 // maxZoom: 19
27 })
28 }));
29}
30var map = new ol.Map({
31 layers: layers,
32 // Improve user experience by loading tiles while dragging/zooming. Will make
33 // zooming choppy on mobile or slow devices.
34 loadTilesWhileInteracting: true,
35 target: 'map',
36 view: new ol.View({
37 center: [-6655.5402445057125, 6709968.258934638],
38 zoom: 13
39 })
40});
41
42var select = document.getElementById('layer-select');
43function onChange() {
44 var style = select.value;
45 for (var i = 0, ii = layers.length; i < ii; ++i) {
46 layers[i].setVisible(styles[i] === style);
47 }
48}
49select.addEventListener('change', onChange);
50onChange();