map = {
let map = this;
if (!map) {
map = new mapboxgl.Map({
container,
center: [
-98.5795, 39.8283
],
zoom: 3,
style: 'https://s3.us-east-2.amazonaws.com/eviction-lab-prototypes/bubble-colors/assets/style.json'
});
}
let countiesLayer = {
id: "counties_poverty",
type: "circle",
source: "counties2008",
filter: [ ">", "pov", -1 ],
paint: {
"circle-color": circleColor,
"circle-opacity": circleOpacity,
"circle-stroke-color": circleStrokeColor,
"circle-stroke-width": 0.75,
"circle-radius": [
'let', 'data_prop', ['get', 'pov'],
[
'interpolate', ['linear'], ['zoom'],
0.1, [
'interpolate', ['exponential', 1], ['number', ['var', 'data_prop']],
-1, 2,
0, 1,
100, 5
],
0.5, [
'interpolate', ['exponential', 1], ['number', ['var', 'data_prop']],
-1, 2,
0, 2,
100, 30
]
]
]
}
};
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('counties2008')) {
map.addSource('counties2008', { type: 'geojson', data: {
type: "FeatureCollection",
features: counties2008
}});
}
if (map.getLayer(countiesLayer.id)) {
map.removeLayer(countiesLayer.id);
}
map.addLayer(countiesLayer);
}