map = {
let map = this;
const mapboxStyle = FileAttachment("os_night.json").url();
if (!map) {
map = new mapboxgl.Map({
container,
center: [0.05, 51.459],
zoom: 12,
pitch: 45,
style:
'https://s3.us-east-2.amazonaws.com/eviction-lab-prototypes/bubble-colors/assets/style.json'
});
}
yield new Promise(resolve => {
if (map.loaded()) resolve(map);
else map.on('load', () => resolve(map));
});
let bgLayer = map.setPaintProperty('background', 'background-color', bgColor);
if (!map.getSource('lsom')) {
map.addSource('lsom', {
type: 'vector',
tiles: [
'https://maps.london.gov.uk/lsom/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER=lsom:solar_buildings_fid&STYLE=&TILEMATRIX=MyEPSG:900913:16&TILEMATRIXSET=MyEPSG:900913&FORMAT=application/x-protobuf;type=mapbox-vector&TILECOL={x}&TILEROW={y}'
],
tileSize: 512
});
}
let buildingsLayer = {
id: "solar_buildings_fid",
type: "fill",
source: "lsom",
'source-layer': 'lsom:solar_buildings_fid',
layout: {
visibility: "visible"
},
paint: {
'fill-color': 'Red'
}
};
if (map.getLayer(buildingsLayer.id)) {
map.removeLayer(buildingsLayer.id);
}
map.addLayer(buildingsLayer);
}