crimeMap = {
let container = DOM.element('div', { style: `width:${width}px;height:${width/1.6}px` });
yield container;
let map = L.map(container).setView([43.0927993, -89.4171004], 11);
let osmLayer = L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}@2x.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
let selectedCrimes = madCrimes.features.filter((d) => {
if (crimeCategory.length > 0){
return crimeCategory.includes(d.properties.incident) && new Date(d.properties.Occur_date) >= start_date_formatted && new Date(d.properties.Occur_date) <= end_date_formatted
} else if (crimeCategory.length === 0) {
return uniqueCrimes.includes(d.properties.incident) && new Date(d.properties.Occur_date) >= start_date_formatted && new Date(d.properties.Occur_date) <= end_date_formatted
}
})
let crimePoints = selectedCrimes.map(feature =>
feature.geometry.coordinates.slice().reverse().concat([0.1]));
let crimeLayer = heatLayer(crimePoints, {
minOpacity: 0.5,
maxZoom: 18,
max: 1.0,
radius: 8,
blur: 4,
gradient: null
}).addTo(map);
let markers = markerCluster({});
let schoolsLayer = L.geoJson(selectedCrimes, {
onEachFeature: function (feature, layer) {
const d = feature.properties;
layer.bindTooltip(`${d.incident}, ${d.Occur_date}`, {sticky: true});
}
});
markers.addLayer(schoolsLayer);
map.addLayer(markers);
}