Files
UAS_WEBGIS_IhyaUlumuddinHar…/final/frontend/js/modules/draw.js
T
2026-06-13 11:24:58 +07:00

32 lines
1.6 KiB
JavaScript

export const setupDrawControls = (map, onGeometryCreated) => {
const drawControl = new L.Control.Draw({
draw: { marker: true, polyline: true, polygon: true, circle: false, circlemarker: false, rectangle: false }
});
map.addControl(drawControl);
map.on(L.Draw.Event.CREATED, function (event) {
const layer = event.layer;
const type = event.layerType;
// Peta draw default tipe: marker -> spbu, polyline -> jalan, polygon -> kavling
let customType = type;
if(type === 'marker') customType = 'spbu';
if(type === 'polyline') customType = 'jalan';
if(type === 'polygon') customType = 'kavling';
if(window.currentDrawType) customType = window.currentDrawType; // Untuk P2/P3
onGeometryCreated(customType, layer.toGeoJSON().geometry, layer);
});
// Custom Menu Handlers
const markerDrawer = new L.Draw.Marker(map, drawControl.options.draw.marker);
const polylineDrawer = new L.Draw.Polyline(map, drawControl.options.draw.polyline);
const polygonDrawer = new L.Draw.Polygon(map, drawControl.options.draw.polygon);
document.getElementById('btn-draw-spbu')?.addEventListener('click', () => { window.currentDrawType='spbu'; markerDrawer.enable(); });
document.getElementById('btn-draw-jalan')?.addEventListener('click', () => { window.currentDrawType='jalan'; polylineDrawer.enable(); });
document.getElementById('btn-draw-kavling')?.addEventListener('click', () => { window.currentDrawType='kavling'; polygonDrawer.enable(); });
return drawControl;
};