64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
import GeoJSON from 'ol/format/GeoJSON.js';
|
|
import VectorLayer from 'ol/layer/Vector.js';
|
|
import VectorSource from 'ol/source/Vector.js';
|
|
|
|
import counties20m from './us-counties-20m.geojson?url';
|
|
import counties5m from './us-counties-5m.geojson?url';
|
|
import schoolDistricts from './us-school-districts.geojson?url';
|
|
|
|
import { Fill, Stroke, Style, Text } from 'ol/style.js';
|
|
|
|
function style(feature){
|
|
return new Style({
|
|
text: new Text({
|
|
text: feature.get('NAME'),
|
|
}),
|
|
fill: new Fill({
|
|
color: 'rgba(255,255,255,0.4)',
|
|
}),
|
|
stroke: new Stroke({
|
|
color: '#3399CC',
|
|
width: 1.25,
|
|
}),
|
|
});
|
|
}
|
|
|
|
const layers = {
|
|
name: "US Census Bureau Data",
|
|
layers: [
|
|
{
|
|
name: "All Counties (2022; low-res)",
|
|
layer: new VectorLayer({
|
|
source: new VectorSource({
|
|
url: counties20m,
|
|
format: new GeoJSON(),
|
|
}),
|
|
style: style,
|
|
}),
|
|
},
|
|
{
|
|
name: "All Counties (2022; medium-res)",
|
|
layer: new VectorLayer({
|
|
source: new VectorSource({
|
|
url: counties5m,
|
|
format: new GeoJSON(),
|
|
}),
|
|
style: style,
|
|
}),
|
|
},
|
|
{
|
|
name: "School Districts (2022; unreasonably large)",
|
|
layer: new VectorLayer({
|
|
source: new VectorSource({
|
|
url: schoolDistricts,
|
|
format: new GeoJSON(),
|
|
// TODO: this probably uses projection 'EPSG:4326'
|
|
}),
|
|
style: style,
|
|
}),
|
|
},
|
|
],
|
|
};
|
|
|
|
export default layers;
|