feat: implement web GIS layout with sidebar, custom UI controls, and modular map feature integration

This commit is contained in:
Syariffullah
2026-06-06 07:35:03 +07:00
parent 08d6d30e02
commit 977dec4e36
11 changed files with 193 additions and 153 deletions
+8 -11
View File
@@ -37,36 +37,33 @@ map.on(L.Draw.Event.DRAWSTOP, function (e) {
isDrawingMode = false;
window.currentDrawMode = null;
window.activeDrawHandler = null;
deactivateAddMode();
window.deactivateAddMode();
}, 200);
});
window.activateDraw = function(type) {
// Toggle: cek dari class button, lebih reliable daripada state variable
const btnJalan = document.getElementById('btnMenuJalan');
const btnParsil = document.getElementById('btnMenuParsil');
const isJalanActive = btnJalan.classList.contains('active');
const isParsilActive = btnParsil.classList.contains('active');
if ((type === 'polyline' && isJalanActive) || (type === 'polygon' && isParsilActive)) {
console.log("-> activateDraw dipanggil untuk tipe:", type);
// Toggle: jika mode yang sama ditekan lagi, batalkan
if (window.currentDrawMode === type) {
console.log("Mode", type, "sudah aktif, membatalkan...");
window.deactivateAddMode();
return;
}
deactivateAddMode();
window.deactivateAddMode();
window.currentDrawMode = type;
console.log("Mengaktifkan mode menggambar:", type);
if (type === 'polyline') {
const handler = new L.Draw.Polyline(map, drawControl.options.draw.polyline);
handler.enable();
window.activeDrawHandler = handler;
btnJalan.classList.add('active');
if (window.cursorTooltip) window.cursorTooltip.textContent = 'Klik untuk menggambar Jalan';
} else if (type === 'polygon') {
const handler = new L.Draw.Polygon(map, drawControl.options.draw.polygon);
handler.enable();
window.activeDrawHandler = handler;
btnParsil.classList.add('active');
if (window.cursorTooltip) window.cursorTooltip.textContent = 'Klik untuk menggambar Parsil';
}
};