From e12b13cd8da1d9a12be5f34b65e1b6898001f674 Mon Sep 17 00:00:00 2001 From: marvin Date: Sun, 13 Sep 2026 22:50:41 +0200 Subject: [PATCH] Fix stop markers rendering below lines All station and bus stop markers now use zorder = max(line zorders) + 1, ensuring they always render on top of every transit line layer. --- copenhagen/scripts/render.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/copenhagen/scripts/render.py b/copenhagen/scripts/render.py index 762b6ea..9292ccf 100644 --- a/copenhagen/scripts/render.py +++ b/copenhagen/scripts/render.py @@ -192,13 +192,13 @@ def plot_stations(ax, stations, styling, active_styles): pts_by_style.setdefault(s, []).append((r.geometry.x, r.geometry.y)) zord = styling["zorder"] + top_z = max(zord.values()) + 1 # all markers above all lines for s in sorted(pts_by_style, key=lambda k: zord.get(k, 0)): pts = pts_by_style[s] sz = sizes.get(s, 3.0) - z = zord.get(s, 5) + 0.5 ax.scatter([p[0] for p in pts], [p[1] for p in pts], s=sz ** 2, marker=marker, c=fill, edgecolors=edge, - linewidths=lw, zorder=z, alpha=1.0) + linewidths=lw, zorder=top_z, alpha=1.0) def plot_bus_stops(ax, stops, styling, active_styles): @@ -220,10 +220,9 @@ def plot_bus_stops(ax, stops, styling, active_styles): lw = mk.get("linewidth", 0.8) shape = mk.get("shape", "circle") marker = "o" if shape == "circle" else "s" - z = styling["zorder"].get("bus", 1) + 0.5 - + top_z = max(styling["zorder"].values()) + 1 ax.scatter(bus.geometry.x, bus.geometry.y, s=sz ** 2, marker=marker, - c=fill, edgecolors=edge, linewidths=lw, zorder=z, alpha=0.8) + c=fill, edgecolors=edge, linewidths=lw, zorder=top_z, alpha=0.8) def label_stations(ax, stations, styling, active_styles):