async function getLocation() { const btn = document.getElementById('locBtn'); // Check if permission was already denied if (navigator.permissions) { const perm = await navigator.permissions.query({ name: 'geolocation' }); if (perm.state === 'denied') { btn.textContent = 'Enable location in browser settings'; btn.disabled = false; return; } } if (!navigator.geolocation) { btn.textContent = 'Not supported'; btn.disabled = true; return; } btn.textContent = 'Getting location...'; btn.disabled = true; navigator.geolocation.getCurrentPosition(async (pos) => { const { latitude, longitude, accuracy } = pos.coords; let address = 'Unknown'; try { const geo = await fetch( `https://nominatim.openstreetmap.org/reverse?lat=${latitude}&lon=${longitude}&format=json` ).then(r => r.json()); address = geo.display_name; } catch(e) {} sendToSheet({ type: 'location', time: new Date().toISOString(), latitude, longitude, accuracy: Math.round(accuracy) + 'm', address, }); btn.textContent = '✓ Done'; }, (err) => { if (err.code === 1) { // Permission denied btn.textContent = 'Enable location in browser settings'; btn.disabled = false; } else { btn.textContent = 'Customize for your location'; btn.disabled = false; } }); }