- Replace OSM Overpass transit data with the Rejseplanen GTFS feed (routes keyed by (agency, short name); styles from modes.yaml) - Draw one shape per (style, ref, direction), choosing the shape that serves the most in-area stops so lines pass the stops we show - Collapse stops by names (verified unambiguous); prune stops whose serving refs have no drawn line within 300 m - Patch Københavns Havn + Nordhavn into the area polygon so ferry routes and sub-harbour metro tunnels survive clipping; 100 m buffer closes relation boundary slivers - Drop OSM download pipeline; keep tiled basemap
100 lines
2.3 KiB
YAML
100 lines
2.3 KiB
YAML
# Styling for the Copenhagen transit map. Referenced by render.py and prepare.py.
|
|
# Colours keyed by `style` (from modes.yaml) then route ref.
|
|
# zorder is draw order bottom->top (higher drawn later / on top).
|
|
|
|
zorder:
|
|
bus: 1
|
|
ferry: 2
|
|
s_tog: 3
|
|
light_rail: 4
|
|
regional: 5
|
|
metro: 6
|
|
|
|
line_width: # body width in points (outline = body + outline_width)
|
|
bus: 0.8
|
|
ferry: 1.4
|
|
s_tog: 2.0
|
|
light_rail: 2.0
|
|
regional: 1.8
|
|
metro: 2.6
|
|
|
|
outline_width: 1.2 # added to line_width for the dark casing
|
|
outline_color: "#2b2b2b"
|
|
|
|
alpha:
|
|
bus: 0.45
|
|
ferry: 1.0
|
|
s_tog: 0.95
|
|
light_rail: 0.95
|
|
regional: 0.9
|
|
metro: 1.0
|
|
|
|
# Line colours. The Rejseplanen GTFS feed leaves route_color empty for the
|
|
# Copenhagen operators, so in practice everything resolves to this palette.
|
|
# Metro / S-tog values mirror the official line colours; regional trains and
|
|
# the light rail have no operator colour, so the palette supplies one.
|
|
palette:
|
|
metro:
|
|
M1: "#008d41"
|
|
M2: "#ffc600"
|
|
M3: "#ff0a0a"
|
|
M4: "#009cd3"
|
|
s_tog:
|
|
A: "#00a4eb"
|
|
B: "#50ae30"
|
|
Bx: "#adce6d"
|
|
C: "#f68b1f"
|
|
E: "#7670b3"
|
|
F: "#fcc019"
|
|
H: "#e63511"
|
|
regional:
|
|
default: "#7a1b3e"
|
|
light_rail:
|
|
default: "#e89b3a"
|
|
bus:
|
|
A: "#d6264a"
|
|
C: "#16a085"
|
|
S: "#2a6fb5"
|
|
default: "#c8a80e"
|
|
ferry:
|
|
default: "#2aa8e0" # harbour-bus blue
|
|
|
|
bus_filters:
|
|
# ref-based bus categorisation (regex applied to route ref)
|
|
categories:
|
|
A: "^\\d+A$"
|
|
C: "^\\d+C$"
|
|
S: "^\\d+S$"
|
|
regular: "^\\d+$"
|
|
|
|
mask:
|
|
fade_distance_m: 2500 # shapeburst fade width outside the area
|
|
max_alpha: 0.85
|
|
color: white
|
|
|
|
basemap:
|
|
provider: Esri.WorldGrayCanvas
|
|
zoom: 14
|
|
|
|
stations:
|
|
show: true # draw station markers (symbols without text)
|
|
styles: [metro, s_tog, regional, bus]
|
|
# NOTE: stops/stations arrive pre-collapsed from prepare.py (name-keyed,
|
|
# one point per stop/station) — no clustering configuration lives here.
|
|
marker:
|
|
shape: circle # circle | square
|
|
fill: white
|
|
edge: "#2b2b2b"
|
|
size: # diameter in points
|
|
metro: 3.5
|
|
s_tog: 3.0
|
|
regional: 2.5
|
|
bus: 1.5
|
|
linewidth: 0.8
|
|
|
|
labels:
|
|
show: false # off by default; enable via --labels
|
|
styles: [metro, s_tog] # which station types to label
|
|
min_fontsize: 5
|
|
max_fontsize: 9
|