diff --git a/src/lib/browse/LayerControls.svelte b/src/lib/browse/LayerControls.svelte index ef8971419..37072ae8e 100644 --- a/src/lib/browse/LayerControls.svelte +++ b/src/lib/browse/LayerControls.svelte @@ -26,6 +26,7 @@ import RoadSpeedsLayerControl from "./layers/lines/RoadSpeeds.svelte"; import RoadWidthsLayerControl from "./layers/lines/RoadWidths.svelte"; import TramsLayerControl from "./layers/lines/Trams.svelte"; + import BusStopsLayerControl from "./layers/points/BusStops.svelte"; import CriticalIssuesLayerControl from "./layers/points/CriticalIssues.svelte"; import CrossingsLayerControl from "./layers/points/Crossings.svelte"; import CycleParkingLayerControl from "./layers/points/CycleParking.svelte"; @@ -84,6 +85,7 @@ + diff --git a/src/lib/browse/colors.ts b/src/lib/browse/colors.ts index a1d68e818..ade7ab273 100644 --- a/src/lib/browse/colors.ts +++ b/src/lib/browse/colors.ts @@ -20,6 +20,7 @@ export const colors = { cycle_parking: "black", crossings: "green", trams: "black", + bus_stop: "black", // Thanks to https://github.com/cyipt/cyipt-website/issues/23 cycle_paths: { diff --git a/src/lib/browse/layers/points/BusStops.svelte b/src/lib/browse/layers/points/BusStops.svelte new file mode 100644 index 000000000..6246a74c3 --- /dev/null +++ b/src/lib/browse/layers/points/BusStops.svelte @@ -0,0 +1,93 @@ + + + + Bus stops + + +

+ Data from the + Bus Open Data Service + , as of 7 February 2024. To calculate frequency, every + scheduled arrival time per stop is considered, grouped by day of the + week. The total daily count is just the number of scheduled arrivals for + a day. The peak hour frequency is the highest number of buses in any one + hour window. That window might not lined up perfectly on the hour -- a + peak hour might occur from 8:25 to 9:25,for example. +

+

+ There are known limitations with this layer, so please use caution when + using these numbers. Some stops may not be shown at all. Frequency could + be over- or under-counted, due to exceptions to the regular daily + schedule of a service. +

+ +
+
+
+{#if show} +

Peak hourly frequency:

+ +{/if} + + + + +

+ Stop name: {props.stop_name} +

+

+ Peak: {props.peak} + buses during the busiest hour of any day +

+

The peak hour is {props.peak_description}

+

+ Total buses per day: {props.total} + (for {props.total_description}, the busiest day of the week) +

+
+
+
diff --git a/src/lib/maplibre/zorder.ts b/src/lib/maplibre/zorder.ts index 9ea3d44cf..ba9a06e65 100644 --- a/src/lib/maplibre/zorder.ts +++ b/src/lib/maplibre/zorder.ts @@ -94,6 +94,7 @@ const layerZorder = [ "crossings", "vehicle_counts", "stats19", + "bus_stops", // Polygons are bigger than lines, which're bigger than points. When geometry // overlaps, put the smaller thing on top