diff --git a/index.html b/index.html
index d348196..37c7014 100644
--- a/index.html
+++ b/index.html
@@ -3909,21 +3909,37 @@
});
}
- // Tool buttons
- const toolButtons = {
- select: document.getElementById('selectTool'),
- split: document.getElementById('splitTool'),
- draw: document.getElementById('drawTool'),
- reshape: document.getElementById('reshapeTool'),
- smooth: document.getElementById('smoothTool'),
- geocache: document.getElementById('geocacheTool')
- };
+ // Tool buttons - initialize later after DOM is ready
+ let toolButtons = {};
+
+ // Initialize tool buttons after DOM elements exist
+ function initializeToolButtons() {
+ toolButtons = {
+ select: document.getElementById('selectTool'),
+ split: document.getElementById('splitTool'),
+ draw: document.getElementById('drawTool'),
+ reshape: document.getElementById('reshapeTool'),
+ smooth: document.getElementById('smoothTool'),
+ geocache: document.getElementById('geocacheTool')
+ };
+
+ // Tool button event listeners
+ Object.keys(toolButtons).forEach(tool => {
+ if (toolButtons[tool]) {
+ toolButtons[tool].addEventListener('click', () => setTool(tool));
+ } else {
+ console.warn(`Tool button not found: ${tool}`);
+ }
+ });
+ }
// Set active tool
function setTool(tool) {
currentTool = tool;
Object.keys(toolButtons).forEach(t => {
- toolButtons[t].classList.toggle('active', t === tool);
+ if (toolButtons[t]) {
+ toolButtons[t].classList.toggle('active', t === tool);
+ }
});
// Cancel any drawing in progress
@@ -3932,8 +3948,10 @@
}
// Show/hide tool-specific controls
- document.getElementById('reshapeControls').style.display = tool === 'reshape' ? 'block' : 'none';
- document.getElementById('smoothControls').style.display = tool === 'smooth' ? 'block' : 'none';
+ const reshapeControls = document.getElementById('reshapeControls');
+ const smoothControls = document.getElementById('smoothControls');
+ if (reshapeControls) reshapeControls.style.display = tool === 'reshape' ? 'block' : 'none';
+ if (smoothControls) smoothControls.style.display = tool === 'smooth' ? 'block' : 'none';
// Update cursor
const container = map.getContainer();
@@ -3953,10 +3971,10 @@
}
}
- // Tool button event listeners
- Object.keys(toolButtons).forEach(tool => {
- toolButtons[tool].addEventListener('click', () => setTool(tool));
- });
+ // Initialize tool buttons when DOM is ready
+ setTimeout(() => {
+ initializeToolButtons();
+ }, 100);
// Track class
class Track {