marvin dccf04349a Use platform nodes + route membership for bus stop clustering
Replaces distance-based clustering with route-membership grouping:
- download_osm.py: collect route_refs per stop node; use platform roles
  for bus stops, stop roles for rail stops
- prepare.py: carry route_refs through to master.gpkg
- render.py: group_by_route_membership() uses union-find to cluster
  same-name stops sharing at least one route into one marker; stops on
  disjoint routes are kept separate. No distance threshold needed.

Results: 786 bus platforms -> 465 markers (was 1610 -> 781).
Veksøvej: 2 platforms sharing routes 2A+5C -> 1 marker.
Peter Bangs Vej: 7 platforms on routes 10/21/22/4A/7A -> 2 markers.
2026-09-14 00:00:28 +02:00
2026-05-10 14:25:40 +02:00
2026-05-10 14:25:40 +02:00

Maps for Jet Lag: The Game

Useful things to know

Overpass Turbo

https://overpass-turbo.eu/

Can be used to query literally any kind of thing from OpenStreetMaps. The wizard can be used to generate API queries in a human-readable-ish way. e.g. you can search for "Railway Route" in italy and it'll make a query for you.

Sometimes the queries miss stuff. The above query won't actually get all the train routes.

If you see that your query misses someting (e.g. a railway), you can go to https://www.openstreetmap.org, find that railway, and inspect it to see what you can search for.

Map base layer

You can use Carto as a base layer in QGIS. Web -> QuickMapServices -> Carto -> Positron

Masking the map

Use the Mask plugin.

Select a polygon using the Select Features by Area or Single Click tool in the toolbar. Set it as the mask in the plugin menu.

You can combine different polygons using e.g. Vector -> Geoprocessing Tools -> Clip

S
Description
No description provided
Readme
28 MiB
Languages
Python 100%