usMap = {
let width = 1000
let height = 800
let container = DOM.element('div', { style: `width:${width}px;height:${width/2}px` });
yield container
let map = L.map(container).setView([37.8, -96], 4);
let baseLayer = L.tileLayer(tile, {
attribution: openStreetAttr,
minZoom: 1,
maxZoom: 19,
}).addTo(map);
L.geoJson(usStates).addTo(map);
let UsStatesLayer = L.geoJson(usStates, {style: style})
.bindTooltip(function (Layer) {
return Layer.feature.properties.NAME;
}).addTo(map);
var legend = L.control({position: 'bottomright'});
legend.onAdd = function (map) {
var div = L.DomUtil.create('div', 'info legend'),
grades = [20,25,30,35],
labels = [];
for (var i = 0; i < grades.length; i++) {
div.innerHTML +=
'<i style ="background-color:' + getColor(grades[i]) + '"></i> ' +
grades[i] + (grades[i + 1] ? '–' + grades[i + 1] + '<br>' : '+');
}
return div;
};
legend.addTo(map);
var info = L.control();
info.onAdd = function (map) {
this._div = L.DomUtil.create('div', 'info');
this.update();
return this._div;
};
info.update = function (props) {
this._div.innerHTML = '<h4>US Obesity Rate by State</h4>' + (props ?
'<b>' + props.name + '</b><br />' + props.obesity_rate + ' % '
: 'Hover over a state');
};
info.addTo(map);
function highlightFeature(e) {
var layer = e.target;
layer.setStyle({
weight: 5,
color: '#666',
dashArray: '',
fillOpacity: 0.7
});
layer.bringToFront();
info.update(layer.feature.properties);
}
const geojson = L.geoJson(usStates, {
style: style,
onEachFeature: onEachFeature
}).addTo(map);
function resetHighlight(e) {
geojson.resetStyle(e.target);
info.update();
}
function zoomToFeature(e) {
map.fitBounds(e.target.getBounds());
}
function onEachFeature(feature, layer) {
layer.on({
mouseover: highlightFeature,
mouseout: resetHighlight,
click: zoomToFeature
});
}
}