| | |
| |
|
| | document.addEventListener('DOMContentLoaded', function() { |
| | const categoryFilter = document.getElementById('category-filter'); |
| | const yearFilter = document.getElementById('year-filter'); |
| | const crimeFilter = document.getElementById('crime-filter'); |
| | const resetButton = document.getElementById('reset-filter'); |
| | const mapContainer = document.getElementById('mapContainer'); |
| | const infoPanel = document.getElementById('infoPanel'); |
| | const closeInfoPanel = document.getElementById('closeInfoPanel'); |
| | const infoPanelBody = document.getElementById('infoPanelBody'); |
| |
|
| | |
| | let map = L.map(mapContainer).setView([-7.275, 112.641], 8); |
| |
|
| | |
| | fetch('/data/geojson/jatim.geojson') |
| | .then(response => response.json()) |
| | .then(data => { |
| | L.geoJSON(data, { |
| | onEachFeature: function(feature, layer) { |
| | layer.on('click', function() { |
| | infoPanelBody.innerHTML = `<h4>${feature.properties.name}</h4><p>${feature.properties.info}</p>`; |
| | infoPanel.style.display = 'block'; |
| | }); |
| | } |
| | }).addTo(map); |
| | }); |
| |
|
| | |
| | closeInfoPanel.addEventListener('click', function() { |
| | infoPanel.style.display = 'none'; |
| | }); |
| |
|
| | |
| | categoryFilter.addEventListener('change', updateMap); |
| | yearFilter.addEventListener('change', updateMap); |
| | crimeFilter.addEventListener('change', updateMap); |
| |
|
| | resetButton.addEventListener('click', function() { |
| | categoryFilter.value = 'all'; |
| | yearFilter.value = 'all'; |
| | crimeFilter.value = 'all'; |
| | updateMap(); |
| | }); |
| |
|
| | function updateMap() { |
| | |
| | |
| | } |
| | }); |