This map shows all the blinking beacons from OpenStreetMap.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Geodienst (Github Actions) 7ae3ddd1c5
Updating the data via Github action
15 hours ago
.github/workflows Update update_data.yml 1 year ago
LICENSE Create LICENSE 5 years ago Update 1 year ago
data-full.json Updating the data via Github action 15 hours ago
data.json Initial commit 5 years ago
demo.gif Add the demo gif 5 years ago
index.html Change attribution to HTTPS 10 months ago
leaflet.indexedfeaturelayer.js Only update the visible features 5 years ago
leaflet.light.js Add more data and allow the script to process items with several lights 1 year ago
leaflet.rangedmarker.js Render ALL the lighthouses! 5 years ago
test.json More precise parsing of seamark:light tags 5 years ago

Beacon map

This map shows all the blinking beacons from OpenStreetMap.

Demo time

More specifically, it asks the Overpass API for all elements with an seamark:light:sequence or seamark:light:1:sequence attribute, decodes these, and displays them as coloured circles on the map using Leaflet. It also tries to take the seamark:light:range and seamark:light:colour into account.

If you think a lighthouse or beacon is missing, please add or edit it on OpenStreetMap.

Overpass API

The current version uses an extracted dataset, but the code allows for directly querying the Overpass API. However, since a query like the one used here can take multiple minutes to complete it is not very useful do always do live queries. Currently we're updating the data every night.

Useful stuff

The leaflet.indexedfeaturelayer.js file contains an extension on Leaflet's GeoJSON layer that only add layers/features to the map that are (or are about to be) visible. It uses a spatial index to quickly query which features can be removed from the DOM, increasing performance.

leaflet.light.js contains my best guess on how a light sequence will look based on these descriptions. However, it might be inaccurate, and it tries to do its best with the sometimes not entirely consistent data from OSM.


This map is made by the Geodienst because it was a fun idea we wanted to try out. Feel free to fork this map and make your own visualisation of OSM data, or contribute improvements back to us.