document.addEventListener('DOMContentLoaded', async () => { // Peta dengan heatmap const map = GISMap.init('dinsos-map', {$mapLat}, {$mapLng}, 12); // Load semua data const [heatData, petaData] = await Promise.all([ App.fetchJSON('{$appUrl}/dinsos/api/heatmap'), App.fetchJSON('{$appUrl}/admin/api/peta') ]); if(petaData) { const riLayer = GISMap.addRILayer(petaData.rumah_ibadah||[]); const wLayer = GISMap.addWargaLayer(petaData.warga||[]); L.control.layers(GISMap.layers, { 'โช Rumah Ibadah': riLayer, '๐ฅ Warga Miskin': wLayer }, {position:'topright', collapsed:true}).addTo(map); } if(heatData) GISMap.addHeatmap(heatData); // Auto zoom ke seluruh Kota Pontianak GISMap.autoFitBounds(); // Chart per kecamatan const kec = {$jsonKec}; const totals = {$jsonTotals}; const ekstrems = {$jsonEkstrems}; Charts.bar('chart-kecamatan', kec, [ {label:'Total Warga', data:totals}, {label:'Miskin Ekstrem', data:ekstrems} ]); // Chart tren bantuan const bulan = {$jsonBulan}; const jmlBantuan = {$jsonJmlBantuan}; const wargaTerbantu = {$jsonWargaTerbantu}; Charts.line('chart-tren', bulan, [ {label:'Bantuan Disalurkan', data:jmlBantuan}, {label:'Warga Terbantu', data:wargaTerbantu} ]); }); JS; ?>