Ik heb een code laten maken voor een html-pagina en daarin staan de cyberincidenten alleen al over het jaar 2025 tot nu toe.
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cyberincidenten Nederland 2025</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<style>
#map { height: 600px; width: 100%; }
body { font-family: Arial, sans-serif; margin: 20px; }
</style>
</head>
<body>
<h1>Cyberincidenten in Nederland - 2025</h1>
<p>Interactieve kaart met gemelde incidenten (bronnen: NCTV, Check Point, Cybercrimeinfo.nl). Klik op markers voor details.</p>
<div id="map"></div>
<script>
// Kaart initialiseren (centrum Nederland)
var map = L.map('map').setView([52.1326, 5.2913], 7);
// Tile layer (OpenStreetMap)
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
// Markers met incidenten (lat, lng, aantal, beschrijving)
var incidents = [
{ lat: 52.3702, lng: 4.8952, count: 8, desc: 'Amsterdam (Gemeente): Datalek boa, ransomware via leveranciers. Hoogste dichtheid.' }, // Noord-Holland
{ lat: 51.9225, lng: 4.4792, count: 6, desc: 'Rotterdam/Den Haag (Zuid-Holland): Meerdere datalekken, zorgsector getroffen.' }, // Zuid-Holland
{ lat: 51.6920, lng: 5.2997, count: 7, desc: 'Eindhoven/Tilburg (Noord-Brabant): DDoS op provincie, ransomware bij gemeenten.' }, // Noord-Brabant
{ lat: 52.5300, lng: 6.0949, count: 4, desc: 'Zwolle (Overijssel): DDoS-aanval op provincie, onderwijsincidenten.' }, // Overijssel
{ lat: 53.2194, lng: 6.5665, count: 3, desc: 'Groningen: DDoS op provincie, lokale hacks.' }, // Groningen
{ lat: 52.7576, lng: 6.5533, count: 2, desc: 'Assen (Drenthe): DDoS-incident provincie.' }, // Drenthe
{ lat: 51.5870, lng: 4.7755, count: 5, desc: 'Breda/Nijmegen: Gemeentelijke aanvallen, retail-doelwit.' }, // Noord-Brabant/Gelderland
{ lat: 51.8145, lng: 5.1233, count: 3, desc: 'Nijmegen (Gelderland): DDoS en ransomware.' } // Gelderland
];
// Markers toevoegen
incidents.forEach(function(incident) {
var color = incident.count > 5 ? 'red' : incident.count > 2 ? 'orange' : 'green';
var marker = L.circleMarker([incident.lat, incident.lng], {
radius: incident.count * 3, // Grootte gebaseerd op aantal
fillColor: color,
color: color,
weight: 2,
opacity: 0.8,
fillOpacity: 0.5
}).addTo(map);
marker.bindPopup('<b>' + incident.count + ' incidenten</b><br>' + incident.desc + '<br><em>2025 meldingen</em>');
});
// Legenda
var legend = L.control({position: 'bottomright'});
legend.onAdd = function(map) {
var div = L.DomUtil.create('div', 'info legend');
div.innerHTML = '<strong>Aantal incidenten</strong><br>' +
'<i style="background:red"></i> >5<br>' +
'<i style="background:orange"></i> 1-5<br>' +
'<i style="background:green"></i> <1';
return div;
};
legend.addTo(map);
</script>
</body>
</html>
Je kunt de html-code selecteren en plakken in een gewoon txt-bestand en het bestand hernoemen bijvoorbeeld als kaart.html
Bij dubbelklikken zie je de kaart in de browser verschijnen,
Opvallend is dat Amsterdam duidelijk landelijk de kroon spant als het over cyberincidenten gaat.