Impossible metro track #1
Labels
No labels
claude-wip
map-report
map:is
map:se
needs-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
art/ismap#1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Collection issues for all bits of the Stockholm metro where the track does something that's physically impossible.
Location: z19 / 59.35943 / 17.99794
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
Location: z17 / 59.37458 / 17.97003
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
Location: z18 / 59.40949 / 17.92798
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
Location: z18 / 59.34801 / 18.00293
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
Location: z19 / 59.34942 / 17.98666
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
Location: z19 / 59.35458 / 17.97314
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
impossibly sharp turn
Location: z17 / 59.36004 / 17.97276
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
Location: z17 / 59.33702 / 18.01580
Feature:
transit— class=metro_blue, mode=metroArea: circle r=12 m @ 59.35947, 17.99784
Location: z17 / 59.32983 / 18.04395
Area: circle r=23 m @ 59.33018, 18.04498
Root cause (investigated 2026-07-16): busted source data, not the importer.
All 9 blue-line reports trace to the Trafiklab GTFS
shapes.txtcarrying spatially out-of-order points.importer/gtfs.goorders points by integershape_pt_sequencecorrectly, andse_transitis the raw GTFS reprojected — the jag is already in the source. Example at Solna centrum (blue line 11): sequence 314→315→316 goes SE, snaps ~30 m back NW to within 2 m of the platform, then SE again — exactly the reported geometry.Scope: all 7 metro lines and 26/31 tram lines are
ST_IsSimple = false; each blue line has 9 sharp >120° reversals (= the 9 reports). GTFS shapes are the operator's schedule route-polylines, not surveyed track — inherent, and every Trafiklab feed derives geometry from the same shapes, so there's no cleaner Trafiklab variant.Lantmäteriet Topo 50 — checked, can't replace it. The
kommunikationtheme'sralstrafiklayer isJärnväg(12030) +Museijärnväg(1111) only — notunnelbana, nospårväg. The metro is mostly tunnel, which no surveyed-surface map records: only 2.3% of the metro network runs within 40 m of a Topo 50 railway. (Tunnelbana does exist in Topo 10, the detail tier above Topo 50 — but that's not in the data we can download; an access application is in, though LM legal treats Topo 10 as GDPR/PII-restricted, so it's uncertain and any grant may carry redistribution limits unlike Topo 50's CC0.)OpenStreetMap works.
railway=subwaycovers 90.5% of the network with tunnels mapped (293 waystunnel=yes) and clean geometry at the exact spot that's broken in GTFS.route=subwayrelations carryref+colour(10/11→blue, 13/14→red, 17/18/19→green)+name — richer than the current hardcoded class map.Recommendation: switch metro + tram line geometry to OSM (subway/tram ways grouped by their
route=*relations); keep the GTFS station points (accurate). Decision needed first: OSM is ODbL (share-alike + attribution) whereas every other semap source (Trafiklab / Lantmäteriet CC0, Trafikverket) is permissive — a project-level licensing call, so it is not wired in yet. (If the Topo 10 application is granted under open terms, it would be the better source — surveyed, authoritative, no ODbL.)Full analysis + before/after visual (private): https://claude.ai/code/artifact/ff4df6e0-0609-4d2c-9daf-03eeec70ca36
This is now obsolete because we got Topo 10 data and are drawing the metro lines from there.