Fullstack Portal Created by the HCMR for the Marine Strategy Framework Directive Program in order to cover demands and aspects considering extendability and maintainability
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.4 KiB

2 years ago
function createPie(data, year) {
var charts = L.featureGroup();
let features = data.features.filter(f => {
return f.properties.YR == year;
});
2 years ago
let newData = {};
let moreInfo = {};
features.forEach(f => {
let latlng = f.geometry.coordinates;
2 years ago
for (property in f.properties) {
const mapKey = fisheriesMap.get(property);
const infoKey = fisheriesInfo.get(property);
if (mapKey) {
newData[mapKey] = f.properties[property];
}
if (infoKey) {
moreInfo[infoKey] = f.properties[property];
}
}
2 years ago
    var pieData = {values: Object.values(newData), labels: Object.keys(newData)};
    let chart = new PieChartMarker([latlng[1], latlng[0]], pieData, {
icon: L.divIcon({className: 'leaflet-pie-chart-marker'}),
width: 60,
height: 60,
colors: ['#ff0000', '#00ff00', '#0000ff', '#ff00ff']
});
if (Object.keys(moreInfo).length !== 0) {
const popupContent = objectToTable(moreInfo);
console.debug('more info fisheries: ', moreInfo);
chart.bindPopup(popupContent, {maxHeight: 400}).openPopup();
}
charts.addLayer(chart);
});
return charts;
}
function objectToTable(obj) {
let table = '<table><thead><tr><th>Species</th><th>Value</th></tr></thead><tbody>';
for (let key in obj) {
table += '<tr><td>' + key + '</td><td>' + obj[key] + '</td></tr>';
}
table += '</tbody></table>';
return table;
}