Expand and render OSM aerialways and stations#625
Open
candux wants to merge 2 commits into
Open
Conversation
Before/after behavior: | Feature | Before | After | | --- | --- | --- | | aerialway=cable_car ways | Exported as kind=aerialway | Unchanged | | Other documented aerialway ways | Dropped | All 11 are exported | | kind_detail for aerialway ways | Hardcoded to cable_car | Preserves the source aerialway value | | Explicit station nodes | Dropped | kind=station, kind_detail=aerialway | | Named station areas | Dropped | Point-on-surface POI with name | | Untagged line endpoints | Not inferred | Unchanged | | aerialway=pylon | Dropped | Unchanged | The 11 newly supported line values are gondola, chair_lift, mixed_lift, drag_lift, t-bar, j-bar, platter, rope_tow, magic_carpet, zip_line, and goods. Their minimum zooms are tiered by visual importance. Stations use the existing POI zoom behavior. References: | Subject | Link | | --- | --- | | OSM aerialway values | https://wiki.openstreetmap.org/wiki/Key:aerialway | | OSM station tagging | https://wiki.openstreetmap.org/wiki/Tag:aerialway%3Dstation | | Schauinslandbahn example | https://www.openstreetmap.org/way/4040490 | Tests: | Coverage | Result | | --- | --- | | Existing cable_car and 11 added line values | kind and original kind_detail verified | | Explicit station node | POI schema and min_zoom verified | | Named station area | Point-on-surface name and schema verified | Baden-Wuerttemberg comparison from the same Geofabrik extract: | Metric | Before | After | | --- | ---: | ---: | | Unique aerialway ways | 0 | 345 | | Aerialway stations | 0 | 620 | | Archive size | 664,928,838 bytes | 664,947,675 bytes | | Size increase | | 18,837 bytes (0.0028%) | Schauinslandbahn way 4040490 is now emitted as kind=aerialway and kind_detail=gondola. AI assistance: this change and its tests were prepared with help from OpenAI Codex.
Before/after behavior: | Feature | Before | After | | --- | --- | --- | | roads kind=aerialway | Present for cable cars but not rendered | Rendered with a dashed line | | Aerialway names | Not rendered | Localized line labels | | Aerialway sprite artwork | Present but disabled | Enabled in light and dark manifests | | Aerialway station icon | Not available | Used for station + aerialway POIs | | Railway station icon | train_station | Unchanged | Aerialway lines use the same color, opacity, and zoom-dependent width as rail infrastructure. A longer dash pattern distinguishes them without adding more visual weight. The station icon expression selects aerialway only when kind=station and kind_detail=aerialway. Other stations continue to use train_station. References: | Subject | Link | | --- | --- | | OSM aerialway tagging | https://wiki.openstreetmap.org/wiki/Key:aerialway | | Schauinslandbahn example | https://www.openstreetmap.org/way/4040490 | Verification: | Check | Result | | --- | --- | | Style tests | Passed | | TypeScript | Passed | | Biome | Passed | | Style package build | Passed | | Local Schauinslandbahn rendering | Visually inspected | AI assistance: this change was prepared with help from OpenAI Codex.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Overview
Protomaps currently exports only
aerialway=cable_car. The other documented aerialway line types are discarded, and the bundled styles do not render even the existing cable-car features.For example, the Schauinslandbahn is correctly tagged as
aerialway=gondola, so it is currently missing.This PR expands aerialway extraction, adds explicitly mapped stations, and renders the resulting features in the bundled styles.
Changes
aerialway=cable_carwayskind_detailcable_caraerialwayvalueThe tagging model and documented values are described by the OSM aerialway documentation and aerialway station documentation.
Line types
cable_car,gondola,mixed_liftchair_liftdrag_lift,t-bar,j-bar,platter,rope_towmagic_carpet,zip_line,goodsAll line features use:
Explicit stations use:
Stations retain the existing POI zoom and QRank behavior. The implementation does not infer stations from untagged line endpoints.
Styling
train_stationsprite, unchangedThe data and style commits remain independently usable. Custom styles that already render
kind=aerialwaycan use the expanded data without adopting the bundled style changes.Baden-Württemberg comparison
Both archives were generated from the same Geofabrik extract.
The Schauinslandbahn is emitted as:
and rendered like this

AI assistance: these changes and tests were prepared with help from OpenAI Codex.