const LINKS = [ { label: 'Google Maps', url: 'https://www.google.com/maps/search/?api=1&query={lat},{lon}', }, { label: 'Apple Maps', url: 'https://maps.apple.com/?q={lat},{lon}&t=m', }, { label: 'Default app', url: 'geo:{lat},{lon}', }, { label: 'OpenStreetMap', url: 'https://www.openstreetmap.org/?mlat={lat}&mlon={lon}&zoom=15&layers=M', }, ]; const latlon = location.hash.substring(1); const [lat, lon] = latlon.split(','); const heading = document.getElementById('heading'); // TODO: listen on hashChange if (isNaN(lat) || isNaN(lon)) { heading.textContent = 'not yet implemented'; } else { const linkList = document.getElementById('links'); document.getElementById('instructions').hidden = false; document.title = 'Open location'; for (const link of LINKS) { const li = document.createElement('li'); const a = document.createElement('a'); a.href = link.url.replace('{lat}', lat).replace('{lon}', lon); a.textContent = link.label; li.appendChild(a); linkList.appendChild(li); } }