Transit design. #64

Closed
opened 2026-08-05 11:45:31 +00:00 by art · 6 comments
Owner

This overrides all the previous issues and conversations about specific transit networks in specific cities. I realized that I got bogged down in micromanaging details while the overall design was missing.

Country wide networks:

All train stations should have names. Filter out smaller ones on earlier zoom levels with whatever attribute exists for station size/importance, but all stations should have a name if we have the data.

City wide transit networks:

Attempt to find a national source of transit networks: metro, tram, regional commuter rail, funicular, cable cars, ferries, pretty much everything except buses. If there is a national source of map data for those transit networks, import all transit networks for every city that has them in the country. If there isn't a national source find the sources for the capital and two other biggest cities and import those.

The transit data should attempt to have:

  1. The network lines.
  2. Stops/stations with names.
  3. If there is an iconic symbol for the line (like the T for the Stockholm metro, the underground logotype in London, the U and S all over Germany, etc.), use that symbol instead of a boring circle for stops on that particular line. (warning: Paris symbol is probably too big to fit into anything reasonable, maybe only visible at high zoom, if we ever import France, this will need extra care, start a country-fr.md document, feel free to start country specific documents for countries we don't import yet in case we find out something about them that might be useful in the future). Name the icons something network-specific, not just "commuter-j" or "rail-metro". Btw. the style from pr #50 is wrong and it asks for an icon called "metro" while the icon is called "rail-metro" and should be "stockholm-metro" in our new naming scheme. The icon selection shouldn't be on "mode" since that's just tram/metro, but "unique_icon" or something like that.
  4. Document the transit situation in the country specific files in docs/ even if we can't find anything or it doesn't exist (like in Iceland), write it down.

While implementing this issue, it will make sense to first update whatever documentation needs updating, then delegate to subagents per country because I expect this one to be heavy, at least the first time.

This overrides all the previous issues and conversations about specific transit networks in specific cities. I realized that I got bogged down in micromanaging details while the overall design was missing. ## Country wide networks: All train stations should have names. Filter out smaller ones on earlier zoom levels with whatever attribute exists for station size/importance, but all stations should have a name if we have the data. ## City wide transit networks: Attempt to find a national source of transit networks: metro, tram, regional commuter rail, funicular, cable cars, ferries, pretty much everything except buses. If there is a national source of map data for those transit networks, import all transit networks for every city that has them in the country. If there isn't a national source find the sources for the capital and two other biggest cities and import those. The transit data should attempt to have: 1. The network lines. 2. Stops/stations with names. 3. If there is an iconic symbol for the line (like the T for the Stockholm metro, the underground logotype in London, the U and S all over Germany, etc.), use that symbol instead of a boring circle for stops on that particular line. (warning: Paris symbol is probably too big to fit into anything reasonable, maybe only visible at high zoom, if we ever import France, this will need extra care, start a country-fr.md document, feel free to start country specific documents for countries we don't import yet in case we find out something about them that might be useful in the future). Name the icons something network-specific, not just "commuter-j" or "rail-metro". Btw. the style from pr #50 is wrong and it asks for an icon called "metro" while the icon is called "rail-metro" and should be "stockholm-metro" in our new naming scheme. The icon selection shouldn't be on "mode" since that's just tram/metro, but "unique_icon" or something like that. 4. Document the transit situation in the country specific files in docs/ even if we can't find anything or it doesn't exist (like in Iceland), write it down. While implementing this issue, it will make sense to first update whatever documentation needs updating, then delegate to subagents per country because I expect this one to be heavy, at least the first time.
Author
Owner

Result is in #65#65; the review note is the PR description.

Result is in #65 — https://git.blahonga.org/art/ismap/pulls/65; the review note is the PR description.
Author
Owner

Correction applied on top of #65: the badge icons were wrong. The "metro" icon was Maki's generic rail-metro (a car silhouette with a T-shaped window, not the tunnelbana's T) and the "commuter" icon's J was invisible — a black stroke on a black fill that the sprite pipeline's single-colour tint flattened away. Both are now the real signs from Wikimedia Commons (public domain), in their own colours: the white-disc navy-T for the tunnelbana, the grey-bars black-J for pendeltåg. The sprite pipeline gained a colored icon mode for this (mapsrv/icon.go). Verified in a real browser at z16: T at Ropsten, J at Skogås.

Correction applied on top of #65: the badge icons were wrong. The "metro" icon was Maki's generic rail-metro (a car silhouette with a T-shaped window, not the tunnelbana's T) and the "commuter" icon's J was invisible — a black stroke on a black fill that the sprite pipeline's single-colour tint flattened away. Both are now the real signs from Wikimedia Commons (public domain), in their own colours: the white-disc navy-T for the tunnelbana, the grey-bars black-J for pendeltåg. The sprite pipeline gained a `colored` icon mode for this (mapsrv/icon.go). Verified in a real browser at z16: T at Ropsten, J at Skogås.
Author
Owner

Per-country delegation (the #65 follow-up): first tranche done and verified, committed on night/issue-64-per-country-stops (a867c52). PR pending the push — the SSH agent forward is dead this session; the branch will be pushed and the PR opened once it's refreshed (or the HTTPS fallback is authorized).

What the tranche lands:

  • PL stations: Warszawa (unchanged) + Kraków (ZTP GTFS, 331 poles → 185 stops) + Łódź (ZDiT GTFS, 492 poles → 318), one shared 150 m DBSCAN-by-name collapse. Live: 324 → 827.
  • FI stations: tram stops from Digiroad DR_PYSAKKI (the pysakit product; the shapefile reader gained point support; fetch.go now fetches shapefile siblings). 469 poles → 288 stops (Helsinki/Tampere/Raide-Jokeri). Live: 559 → 847.

The Warsaw metro finding (the research ask, 2026-08-05): no official public machine-readable source exists. ZTM's public exports (gtfs.ztm.waw.pl/last and the anonymous FTP archive) carry no metro routes (0 tram / 2 rail / 3 bus only); the metro schedules exist only on ZTM's credentials-restricted internal endpoint (what the community WarsawGTFS converter reads). City of Warsaw API = entrances only, unnamed; Metro Warszawskie = PDFs; BDOT10k = no stop class; dane.gov.pl/KPD = nothing. The only complete station source is community mkuran.pl/gtfs/warsaw.zip (hand-curated coords, frequency-based schedules) — not imported without the maintainer's sign-off; warszawa-metro badge waits with it.

#63 (commuter reach) and the FI metro stops (HSL GTFS) remain open — this PR does not close #64.

Per-country delegation (the #65 follow-up): first tranche done and verified, committed on `night/issue-64-per-country-stops` (a867c52). PR pending the push — the SSH agent forward is dead this session; the branch will be pushed and the PR opened once it's refreshed (or the HTTPS fallback is authorized). What the tranche lands: - PL `stations`: Warszawa (unchanged) + **Kraków** (ZTP GTFS, 331 poles → 185 stops) + **Łódź** (ZDiT GTFS, 492 poles → 318), one shared 150 m DBSCAN-by-name collapse. Live: 324 → 827. - FI `stations`: **tram stops from Digiroad DR_PYSAKKI** (the `pysakit` product; the shapefile reader gained point support; fetch.go now fetches shapefile siblings). 469 poles → 288 stops (Helsinki/Tampere/Raide-Jokeri). Live: 559 → 847. The Warsaw metro finding (the research ask, 2026-08-05): **no official public machine-readable source exists**. ZTM's public exports (`gtfs.ztm.waw.pl/last` and the anonymous FTP archive) carry no metro routes (0 tram / 2 rail / 3 bus only); the metro schedules exist only on ZTM's credentials-restricted internal endpoint (what the community WarsawGTFS converter reads). City of Warsaw API = entrances only, unnamed; Metro Warszawskie = PDFs; BDOT10k = no stop class; dane.gov.pl/KPD = nothing. The only complete station source is community mkuran.pl/gtfs/warsaw.zip (hand-curated coords, frequency-based schedules) — not imported without the maintainer's sign-off; `warszawa-metro` badge waits with it. #63 (commuter reach) and the FI metro stops (HSL GTFS) remain open — this PR does not close #64.
Author
Owner

Update: branch pushed, PR open — #66 (body is the full note). The metro finding, the three-city PL feed table and the FI DR_PYSAKKI details are all in the PR description.

Update: branch pushed, PR open — https://git.blahonga.org/art/ismap/pulls/66 (body is the full note). The metro finding, the three-city PL feed table and the FI DR_PYSAKKI details are all in the PR description.
Author
Owner

The metro question is answered — and the earlier 'no official source' finding was wrong. BDOT10k's OIKM_P class carries the Warsaw metro entrances (258 in the Warsaw county, named after their station): the Makefile's class list simply never fetched it, which is also the real story behind the old 'BDOT10k has no stop point class' claim. PR #66 now lands the full correction: OIKM_P fetched for all 380 counties, metro entrances → 40 named stations (mode metro, importance 2, badge — public-domain Wikimedia logo, probe-verified), plus the national rail stations from the same class (3 269, finally giving PL the rail rung of the stations contract). Tram stays on the GTFS feeds — OIKM_P's stop type can't separate bus from tram (validated: 91% of all Warsaw stops sit within 75 m of a tram line). Live: PL stations 827 → 4 136; tiles verified.

The metro question is answered — and the earlier 'no official source' finding was wrong. **BDOT10k's OIKM_P class carries the Warsaw metro entrances** (258 in the Warsaw county, named after their station): the Makefile's class list simply never fetched it, which is also the real story behind the old 'BDOT10k has no stop point class' claim. PR #66 now lands the full correction: OIKM_P fetched for all 380 counties, metro entrances → 40 named stations (mode metro, importance 2, badge — public-domain Wikimedia logo, probe-verified), plus the national rail stations from the same class (3 269, finally giving PL the rail rung of the stations contract). Tram stays on the GTFS feeds — OIKM_P's stop type can't separate bus from tram (validated: 91% of all Warsaw stops sit within 75 m of a tram line). Live: PL stations 827 → 4 136; tiles verified.
Author
Owner

The metro question is answered — and the earlier "no official source" finding was wrong. BDOT10k's OIKM_P class carries the Warsaw metro entrances (258 in the Warsaw county, named after their station): the Makefile's class list simply never fetched it, which is also the real story behind the old "BDOT10k has no stop point class" claim. PR #66 now lands the full correction: OIKM_P fetched for all 380 counties, metro entrances → 40 named stations (mode metro, importance 2, warszawa-metro badge — public-domain Wikimedia logo, probe-verified), plus the national rail stations from the same class (3 269, finally giving PL the rail rung of the stations contract). Tram stays on the GTFS feeds — OIKM_P's stop type can't separate bus from tram (validated: 91% of all Warsaw stops sit within 75 m of a tram line). Live: PL stations 827 → 4 136; tiles verified.

The metro question is answered — and the earlier "no official source" finding was wrong. **BDOT10k's OIKM_P class carries the Warsaw metro entrances** (258 in the Warsaw county, named after their station): the Makefile's class list simply never fetched it, which is also the real story behind the old "BDOT10k has no stop point class" claim. PR #66 now lands the full correction: OIKM_P fetched for all 380 counties, metro entrances → 40 named stations (mode metro, importance 2, warszawa-metro badge — public-domain Wikimedia logo, probe-verified), plus the national rail stations from the same class (3 269, finally giving PL the rail rung of the stations contract). Tram stays on the GTFS feeds — OIKM_P's stop type can't separate bus from tram (validated: 91% of all Warsaw stops sit within 75 m of a tram line). Live: PL stations 827 → 4 136; tiles verified.
art closed this issue 2026-08-06 18:59:17 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
art/ismap#64
No description provided.