Conversation
Added [badges](https://github.com/badges/shields). Maintainers feel free to modify or discard changes. [See changes visually](https://github.com/danieldegroot2/OpenRailwayMap-vector/tree/readme-badges?tab=readme-ov-file#openrailwaymap-vector-map-styles) (Scroll up slightly. You might have to (Ctrl+)(Shift+)F5 clear cache to see valid BMC supporters count.) --- I am aware this repository is [possibly being integrated](OpenRailwayMap#132) into the OpenRailwayMap-CartoCSS repository. Check with the maintainers which content should be kept from each repository / how ie. funding might be handled. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Noticed during #734 (comment) For tall icons for the bottom icon of a signal feature, the reference is always offset using the same fixed offset. This will overlap the reference text with the icon. Instead, output the icon offset such that the text label for the reference can be offset by the same value (plus some padding). (http://localhost:8000/#view=18.41/49.010647/8.384991/-19.5&style=signals): <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/c2288181-d5f6-4327-ab5d-0ac441065624" /> (http://localhost:8000/#view=18.08/49.00242/8.394911/-19.5&style=signals) <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/8ab6c7b6-c929-4611-9b9d-beadda7b015b" /> (http://localhost:8000/#view=19/48.9970422/8.4158721/-19.5&style=signals) <img width="1074" height="574" alt="image" src="https://github.com/user-attachments/assets/283ae76b-cfd9-44cc-8129-b91b11545251" />
AKN <img width="361" height="822" alt="image" src="https://github.com/user-attachments/assets/e7a6a3ff-d728-4a5d-b6d0-3228565b315f" /> Deutsche Regionaleisenbahn <img width="1045" height="382" alt="image" src="https://github.com/user-attachments/assets/27d2b859-a6e9-4c4a-8352-299a5a652a73" /> Thüringer Eisenbahn GmbH and Deutsche Regionaleisenbahn <img width="567" height="395" alt="image" src="https://github.com/user-attachments/assets/40323e54-e392-41ab-a14b-5691b1506567" /> Schieneninfrastruktur Ost-Niedersachsen GmbH <img width="703" height="811" alt="image" src="https://github.com/user-attachments/assets/218f9496-b8a5-4688-a214-f0e4a197354b" />
Adds GB stop & fixed distant boards. Distant signals kept together. Stop board placed to allow for a position light (shunt) signal, but below an LC indicator. Only thing of note is that the order would be slightly at issue with ETCS block markers, however I will create an issue and then PR shortly after this is merged, as there are also other order issues to work on.
For stacked signal icons, with multiple icons that have an icon with a position defined, only the first position was removed on the catalog lookup. Found during testing of #734 (comment) (http://localhost:8000/#view=17.65/49.00464/8.411248/-19.5&style=signals): <img width="847" height="596" alt="image" src="https://github.com/user-attachments/assets/8a0731fe-6a35-402f-8e44-83b417428464" />
… lines (#748) Part of #413 Integrate railway routes for stations, platforms, stop positions and railway lines in the popup UI and on the map when clicked. Changes: - [x] Import route details - [x] Add routes in popup for lines - [x] Add routes in popup for platforms - [x] Add routes in popup for stop positions - [x] Add routes in popup for stations - [x] Add display of route on map when clicking route - [x] Add display of route information when clicking route See: - https://wiki.openstreetmap.org/wiki/Relation:route - https://wiki.openstreetmap.org/wiki/Tag:route=train?uselang=en
Fixes #749 The wrong tag for opposite regime signals was used. Related to #541, which fixed this for main signals. Also, add the yellow distant signal marker board Before: <img width="524" height="556" alt="image" src="https://github.com/user-attachments/assets/f794962a-e0aa-47d6-8540-d58059a7ff79" /> After: <img width="433" height="501" alt="image" src="https://github.com/user-attachments/assets/d6d898c1-69ce-4ba5-8dd7-66fdcd811e9b" />
After managing to go through the Podman pain, finally a new MR... <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/0b03a1fa-4340-4eed-9c7b-8d220d6c885a" /> <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/935e9cf6-1e94-4ab0-9509-2a5b674437b4" /> <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/b3572a1c-a153-45e5-a753-50073a1a627f" /> Downside is that F0 only, or signals without states, look weird, so suggestions would be nice: <img width="1389" height="737" alt="image" src="https://github.com/user-attachments/assets/dcd20f24-4bd3-40c2-bc99-7cfad4353513" /> Ref can look weird too on long signals: <img width="485" height="361" alt="image" src="https://github.com/user-attachments/assets/1c43e9d8-1012-484c-b44e-fad8c7cca9f6" />
Followup on #748 Part of #413 Currently the API calls to display routes on the map are very slow, and sometimes time out. ## API Route 18173306, https://www.openstreetmap.org/relation/18173306. Example query ```sql explain analyze SELECT jsonb_build_object( 'type', 'Feature', 'id', osm_id, 'geometry', ST_AsGeoJSON(ST_Transform(way, 4326))::jsonb, 'properties', to_jsonb(row) - 'way' ) as data FROM (SELECT r.osm_id as osm_id, ST_LineMerge(st_collect(l.way)) as way, any_value(r.type) as type, any_value(r.name) as name, any_value(r.ref) as ref, any_value(r.from) as "from", any_value(r.to) as "to", any_value(r.operator) as operator, any_value(r.brand) as brand, any_value(r.color) as color from routes r join route_line rl on rl.route_id = r.osm_id join railway_line l on rl.line_id = l.osm_id where r.osm_id = 18173306 group by r.osm_id) row; ``` Before: ``` +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |QUERY PLAN | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |Subquery Scan on "row" (cost=2484.03..211196.87 rows=1 width=32) (actual time=493.106..530.542 rows=1.00 loops=1) | | Buffers: shared hit=117464 read=55500 | | -> GroupAggregate (cost=2484.03..211183.72 rows=1 width=268) (actual time=490.630..527.912 rows=1.00 loops=1) | | Buffers: shared hit=117461 read=55500 | | -> Gather (cost=2484.03..211111.43 rows=408 width=336) (actual time=488.180..526.951 rows=73.00 loops=1) | | Workers Planned: 2 | | Workers Launched: 2 | | Buffers: shared hit=117461 read=55500 | | -> Parallel Hash Join (cost=1484.03..210070.63 rows=170 width=336) (actual time=351.275..441.764 rows=24.33 loops=3) | | Hash Cond: (l.osm_id = rl.line_id) | | Buffers: shared hit=117461 read=55500 | | -> Parallel Seq Scan on railway_line l (cost=0.00..188076.38 rows=1640738 width=199) (actual time=0.198..193.818 rows=1312590.00 loops=3) | | Buffers: shared hit=116169 read=55500 | | -> Parallel Hash (cost=1481.94..1481.94 rows=167 width=153) (actual time=14.694..14.697 rows=24.33 loops=3) | | Buckets: 1024 Batches: 1 Memory Usage: 40kB | | Buffers: shared hit=1292 | | -> Nested Loop (cost=0.43..1481.94 rows=167 width=153) (actual time=43.639..43.921 rows=73.00 loops=1) | | Buffers: shared hit=1292 | | -> Parallel Seq Scan on routes r (cost=0.00..1472.50 rows=1 width=145) (actual time=43.549..43.795 rows=1.00 loops=1) | | Filter: (osm_id = 18173306) | | Rows Removed by Filter: 25091 | | Buffers: shared hit=1288 | | -> Index Scan using route_line_route_id_idx on route_line rl (cost=0.43..6.60 rows=284 width=16) (actual time=0.055..0.074 rows=73.00 loops=1)| | Index Cond: (route_id = 18173306) | | Index Searches: 1 | | Buffers: shared hit=4 | |Planning: | | Buffers: shared hit=8 | |Planning Time: 0.649 ms | |JIT: | | Functions: 51 | | Options: Inlining false, Optimization false, Expressions true, Deforming true | | Timing: Generation 7.196 ms (Deform 3.479 ms), Inlining 0.000 ms, Optimization 3.535 ms, Emission 75.353 ms, Total 86.085 ms | |Execution Time: 533.884 ms | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ``` After: ``` +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |QUERY PLAN | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |Subquery Scan on "row" (cost=0.86..1882.96 rows=1 width=32) (actual time=6.435..6.554 rows=1.00 loops=1) | | Buffers: shared hit=1559 read=28 | | -> GroupAggregate (cost=0.86..1869.82 rows=1 width=268) (actual time=4.411..4.414 rows=1.00 loops=1) | | Buffers: shared hit=1556 read=28 | | -> Nested Loop (cost=0.86..1797.52 rows=408 width=336) (actual time=3.092..3.775 rows=73.00 loops=1) | | Buffers: shared hit=1556 read=28 | | -> Nested Loop (cost=0.43..1611.09 rows=284 width=153) (actual time=3.048..3.330 rows=73.00 loops=1) | | Buffers: shared hit=1292 | | -> Seq Scan on routes r (cost=0.00..1601.65 rows=1 width=145) (actual time=3.004..3.255 rows=1.00 loops=1) | | Filter: (osm_id = 18173306) | | Rows Removed by Filter: 25091 | | Buffers: shared hit=1288 | | -> Index Scan using route_line_route_id_idx on route_line rl (cost=0.43..6.60 rows=284 width=16) (actual time=0.039..0.054 rows=73.00 loops=1)| | Index Cond: (route_id = 18173306) | | Index Searches: 1 | | Buffers: shared hit=4 | | -> Index Scan using railway_line_osm_id_index on railway_line l (cost=0.43..0.65 rows=1 width=199) (actual time=0.005..0.005 rows=1.00 loops=73) | | Index Cond: (osm_id = rl.line_id) | | Index Searches: 73 | | Buffers: shared hit=264 read=28 | |Planning: | | Buffers: shared hit=30 read=6 | |Planning Time: 1.357 ms | |Execution Time: 6.716 ms | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ```
Problem: milestones and other positions are only rendered from zoom 10 onwards. Between zoom 10 and 13, only the zero-position markers are rendered. From zoom 13 onwards, every position is rendered. The source is queried from zoom 8 onwards, wasting bandwidth and performance on not-shown position markers. Before: <img width="1432" height="168" alt="image" src="https://github.com/user-attachments/assets/29931b09-3d1a-4a8a-ba05-65836582f39b" /> After: <img width="1432" height="168" alt="image" src="https://github.com/user-attachments/assets/c2285639-da31-42a4-b58e-91031cd05f4f" />
* Add Ortsstellbereich sign * Add PZB-Sign (not yet used) * Change font on crossing hint and anouncement sign * Un-cram some signals for a more unified look <img width="1268" height="409" alt="image" src="https://github.com/user-attachments/assets/a5ff0046-6fb2-44f5-83ce-1a143c0b67bf" /> Crammed signals before <img width="1430" height="236" alt="image" src="https://github.com/user-attachments/assets/07027546-7d83-4dc9-b492-901971ed3cfc" /> And after <img width="1430" height="236" alt="image" src="https://github.com/user-attachments/assets/61f0f39f-fc84-4e60-8c35-945284b9b1de" />
edited operators: - East Japan Railway: added synonyms - West Japan Railway: added synonyms - Shikoku Railway: changed order and added synonyms - Hokkaido Railway: changed order - Central Japan Railway: added synonyms - Kyushu Railway: added synonyms - Kintetsu Railway: changed color - Hankyu Corporation: changed order - Tokyu Railways: changed order and color, and added synonyms - Seibu Railways: changed color and added synonyms - Odakyu Electric Railways: changed color - Nagoya Railroad: changed order - Bureau of Transportation Tokyo Metropolitan Government: changed color and added synonyms - Keio Corporation: added synonyms - Tobu Railway: added synonyms - Korail: corrected color and delete synonyms (osm edit completed) - 서해철도: corrected color - 네오트랜스: corrected color and terms (osm edit completed) - 주식회사에스알: changed terms and color (osm edit completed) newly added operators: - Japan Freight Railway Company <img width="590" height="362" alt="스크린샷 2026-01-04 17 35 34" src="https://github.com/user-attachments/assets/7d5c3566-410f-4a17-ae8c-367ed3bf40cb" /> - Osaka Metro <img width="678" height="518" alt="스크린샷 2026-01-04 18 00 43" src="https://github.com/user-attachments/assets/26651598-de3c-4ff2-a63a-f4c6df54fa1a" /> - HAPI-LINE Fukui Railway <img width="1622" height="906" alt="image" src="https://github.com/user-attachments/assets/77b20612-d464-41f6-8ecd-c28654d349f2" /> - Kyoto Tango Railway <img width="1140" height="616" alt="image" src="https://github.com/user-attachments/assets/bc49994f-a540-4ee1-b69d-b17d5b958738" /> - Nankai Electric Railway <img width="1144" height="672" alt="image" src="https://github.com/user-attachments/assets/c4a6202c-6d2b-4ddf-ab61-6cf5776d0183" /> - Keihan Electric Railway <img width="1398" height="700" alt="image" src="https://github.com/user-attachments/assets/1f2192dc-9c15-4d63-aa72-e9e3762e3422" /> - Hanshin Electric Railway <img width="1658" height="926" alt="image" src="https://github.com/user-attachments/assets/069c9f27-30e3-4493-9f48-54ad6c09c9e9" /> - Sanyo Electric Railway <img width="1550" height="826" alt="image" src="https://github.com/user-attachments/assets/e0b8fcc7-4dd9-434d-98d8-e0a15c84bbad" /> - Chizu Express <img width="1096" height="796" alt="image" src="https://github.com/user-attachments/assets/f32c8ee6-49b9-4738-b93e-fd588aff658d" /> - Ibara Railway <img width="1166" height="636" alt="image" src="https://github.com/user-attachments/assets/51042053-55ad-4f68-9d87-f5440ce47eb0" /> - Kita-Osaka Kyuko <img width="1252" height="852" alt="image" src="https://github.com/user-attachments/assets/e48366cd-46e1-4841-af37-1a626930e3e1" /> - Hankai Tramway <img width="1178" height="808" alt="image" src="https://github.com/user-attachments/assets/35c2ad28-bc8d-410d-b781-64c30bbd8ccf" /> - Transportation Bureau City of Nagoya <img width="1262" height="654" alt="image" src="https://github.com/user-attachments/assets/038fddfe-9516-40e5-a4eb-492f445e79a8" /> - Echigo Tokimeki Railway <img width="1558" height="658" alt="image" src="https://github.com/user-attachments/assets/a998bc01-d07c-49c7-8560-bdee34926b4b" /> - Toyama Chihou Tetsudo Inc. <img width="1216" height="594" alt="image" src="https://github.com/user-attachments/assets/11929755-34e6-4edc-b7a4-e3c50089dac6" /> - Hokuetsu Express <img width="1074" height="730" alt="image" src="https://github.com/user-attachments/assets/e573388e-2405-4a39-af96-f15572b29857" /> - Sapporo City Transportation Bureau <img width="1456" height="730" alt="image" src="https://github.com/user-attachments/assets/bbe7e07a-3872-4816-9227-ae04bb300436" /> - Nishi-nippon Railroad <img width="1108" height="750" alt="image" src="https://github.com/user-attachments/assets/4f1569da-40a5-49d8-8857-ae14b412273c" /> - Fukuoka City Transportation Bureau <img width="2222" height="340" alt="image" src="https://github.com/user-attachments/assets/0d562385-0f01-4e84-804f-9d3dc9a532e8" /> - Iyo Railway <img width="1346" height="810" alt="image" src="https://github.com/user-attachments/assets/37c1f4c8-851c-4299-81dd-9e7241514ee2" /> - Tosa Kuroshio Tetsudo <img width="1144" height="576" alt="image" src="https://github.com/user-attachments/assets/46ebc029-b8ac-4d33-af3a-87afeaee0810" /> - Takamatsu-Kotohira Electric Railroad <img width="1324" height="666" alt="image" src="https://github.com/user-attachments/assets/5db4c54c-a34d-4cef-bd64-2baf4ed99a75" /> - Kominato Railway <img width="1444" height="806" alt="image" src="https://github.com/user-attachments/assets/916c37e0-cf2b-45f4-854b-bed1e6fec2e7" /> - IGR Iwate Galaxy Railway <img width="1430" height="516" alt="image" src="https://github.com/user-attachments/assets/760ab0bf-7469-4444-9c8f-2b2ad8c313d4" /> - Konan Railway <img width="1200" height="806" alt="image" src="https://github.com/user-attachments/assets/b9ae22a2-5b25-49e4-832e-e4b809668097" /> - Chichibu Railway <img width="864" height="654" alt="image" src="https://github.com/user-attachments/assets/7cbe2cb0-ab46-4363-8c6c-311d25d27c4a" /> - Sagami Railway <img width="1412" height="664" alt="image" src="https://github.com/user-attachments/assets/d68d32a7-8321-44e2-b669-c9743daf5099" /> - Hokuso Railway <img width="1420" height="742" alt="image" src="https://github.com/user-attachments/assets/c3865763-a10e-41fd-ba4f-86fbc068f3a3" /> - Keisei Electric Railway <img width="1240" height="660" alt="image" src="https://github.com/user-attachments/assets/da5a2cd7-434c-415e-96db-059c29d17c01" /> - Saitama Railway <img width="1156" height="864" alt="image" src="https://github.com/user-attachments/assets/0961e5f4-bf11-441f-a842-0b57c159dab3" /> - Tokyo Tama Intercity Railway <img width="1314" height="710" alt="image" src="https://github.com/user-attachments/assets/9ec18c34-661d-4ab2-9ed6-195ecc8a817e" /> - Tokyo Monorail <img width="1082" height="730" alt="image" src="https://github.com/user-attachments/assets/c0926e08-73bd-473d-b71a-7040ea11b82c" /> - Transportation Bureau City of Yokohama <img width="1360" height="866" alt="image" src="https://github.com/user-attachments/assets/c4a39b87-1667-496b-8249-68aeccc8ea9c" /> - Enoshima Electric Railway <img width="886" height="752" alt="image" src="https://github.com/user-attachments/assets/4cd5cad3-8390-4df6-ae6d-217ebcc18e5d" /> - Tokyo Waterfront Area Rapid Transit <img width="1144" height="920" alt="image" src="https://github.com/user-attachments/assets/297368e7-131b-4d67-8860-0f9aa7825aa8" /> - Metropolitan Intercity Railway <img width="1238" height="664" alt="image" src="https://github.com/user-attachments/assets/fbdd5f48-4494-4176-8cad-dfa98d290871" /> - 서울교통공사 <img width="1290" height="744" alt="image" src="https://github.com/user-attachments/assets/85aeb5d5-6304-4025-a7f4-719c5cc148e0" /> - 공항철도주식회사 <img width="1298" height="640" alt="image" src="https://github.com/user-attachments/assets/6737bcb6-206e-4e27-8fed-5dfe4e22c129" /> - 인천교통공사 <img width="1398" height="878" alt="image" src="https://github.com/user-attachments/assets/2f30996f-acf0-4d0e-b6d6-2c1eed271760" /> - 지티엑스에이운영주식회사 <img width="988" height="774" alt="image" src="https://github.com/user-attachments/assets/fa9abf1a-639e-44d6-b748-6e373db070f4" /> - 로템SRS, 우진메트로 <img width="1488" height="1078" alt="image" src="https://github.com/user-attachments/assets/916d5a7e-ae32-4a6c-9f69-60738b810925" /> <img width="1256" height="644" alt="image" src="https://github.com/user-attachments/assets/0dab2012-4145-45b7-b533-b3ae58686d6a" /> - 우이신설경전철운영(주) <img width="1418" height="724" alt="image" src="https://github.com/user-attachments/assets/dd998df3-c71a-4727-91d5-05fe3fab79f4" /> - 김포골드라인SRS <img width="1566" height="1326" alt="image" src="https://github.com/user-attachments/assets/46287cb3-d2f5-47ca-9536-c58ed3e859f7" /> - 용인에버라인운영(주) <img width="1148" height="956" alt="image" src="https://github.com/user-attachments/assets/88d14b99-6b38-43a8-b43c-bb36b7f9663e" /> - 부산교통공사 <img width="1306" height="786" alt="image" src="https://github.com/user-attachments/assets/34658c8d-24a0-4a0f-b40a-38afe2d3b034" /> - 부산·김해경전철주식회사 <img width="1588" height="876" alt="image" src="https://github.com/user-attachments/assets/4faba6ca-7c2a-45f7-9d33-379662057956" /> - 대구교통공사 <img width="1186" height="590" alt="image" src="https://github.com/user-attachments/assets/a6782fb2-dec2-44da-a3a4-9a4ab25000ff" /> - 대전교통공사 <img width="1330" height="816" alt="image" src="https://github.com/user-attachments/assets/02cdb7d3-7297-4451-9c77-5e640454d1fe" /> --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
## Add values on CBTC Now specific type of CBTC (IL-CBTC and RF-CBTC) can be displayed on OpenRailwayMap. Considering conventional values of this key, legacy values are not removed. ## Add values on ATC Now supports displaying specific type of ATC. (see https://osm.wiki/Key:railway:atc) ## Remove TASC TASC was removed because it's not a train protection system. TASC is just a kind of automation that helps train to stop at right position. ## Change order of KTCS KTCS is an ETCS-compatible protection system, therefore if value of `railway:ktcs` is 1 or 2, corresponding `railway:etcs` value is implied. This means `railway:ktcs` is used in combination with `railway:etcs`. For example, there are railways which are equipped only with ETCS, but none only with KTCS (except metros). This is the reason that `railway:ktcs` should override `railway:etcs`. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Nightly update still fails sometimes because of disk space: https://github.com/hiddewie/OpenRailwayMap-vector/actions/runs/20937798180/job/60164501320#step:12:9. Prune the Docker daemon to retrieve disk space before outputting the database image.
The OSM data has been updated so the search results are returned in a slightly different order.
Part of #413 When a route is rendered, show the stops as well. The popup also includes the name the reference, local reference and whether the stop is entry/exit only. In the future we might change the stop icon based on whether it is entry/exit only. Additionally in the future, we might show the stop names with top priority on the map.
Add funicular, monorail and miniature railway routes to the import. Part of #413 (comment).
Updated colors for various transportation entities and added new entries for US railroads. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Followup of #774 Part of #413. During import of the new route types, the SQL was not updated to allow the new route types. See https://github.com/hiddewie/OpenRailwayMap-vector/actions/runs/21190217967/job/60954740748.
See https://wetten.overheid.nl/BWBR0017707/2026-01-01 Signal 291c (P bord, permissief), and signal 251 (special danger location). See wiki https://wiki.openstreetmap.org/wiki/OpenRailwayMap/Tagging_in_Netherlands#Main_signals (http://localhost:8000/#view=17.4/52.225781/6.858487&style=signals): <img width="651" height="743" alt="image" src="https://github.com/user-attachments/assets/4874c502-0861-4e7c-825a-3e326fc7b2ab" /> (http://localhost:8000/#view=16.44/52.899899/4.80016&style=signals): <img width="438" height="475" alt="image" src="https://github.com/user-attachments/assets/a0ac4c27-c81d-4aab-8602-b818eb1c6ff5" />
Currently UI tests are failing: https://github.com/hiddewie/OpenRailwayMap-vector/actions/runs/21296575618/job/61303682120. Also document how to run them locally. Chrome fails to create an OpenGL context, so all tests fail there. Instead, run all the UI tests (both ARM64 and AMD64) on Firefox.
Part of #413
Part of #780
Optimize the fetching of stations. This query became very slow (order of
seconds runtime) since the addition of the list of routes to the
stations.
## Query 1: station labels
Test query:
```sql
select standard_railway_text_stations(8, 137, 98, '{"lang":"it"}')
```
which translates to
```sql
explain analyze SELECT
ST_AsMVTGeom(way, ST_TileEnvelope(8, 137, 98), extent => 4096, buffer => 64, clip_geom => true) AS way,
id,
osm_id,
osm_type,
feature,
state,
station,
station_size,
railway_ref as label,
name,
COALESCE(name_tags['name:' || (('{"lang":"it"}'::jsonb)->>'lang')::text], name) as localized_name,
count,
uic_ref,
operator,
operator_color,
network,
position,
wikidata,
wikimedia_commons,
wikimedia_commons_file,
image,
mapillary,
wikipedia,
note,
description,
yard_purpose,
yard_hump,
station_routes
FROM railway_text_stations
WHERE way && ST_TileEnvelope(8, 137, 98)
AND name IS NOT NULL;
```
Query plan before:
```
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|QUERY PLAN |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|Subquery Scan on railway_text_stations (cost=64485.10..64522.71 rows=59 width=667) (actual time=1738.058..1738.275 rows=196.00 loops=1) |
| Buffers: shared hit=152441 |
| -> Sort (cost=64485.10..64485.25 rows=59 width=708) (actual time=1738.035..1738.051 rows=196.00 loops=1) |
| Sort Key: (CASE WHEN (gs.state <> 'present'::text) THEN 100 WHEN ((gs.feature = 'station'::text) AND (gs.station = 'light_rail'::text)) THEN 450 WHEN ((gs.feature = 'station'::text) AND (gs.station = 'subway'::text)) THEN 400 WHEN (gs.feature = 'station'::text) THEN 800 WHEN ((gs.feature = 'halt'::text) AND (gs.station = 'light_rail'::text)) THEN 500 WHEN (gs.feature = 'halt'::text) THEN 550 WHEN (gs.feature = 'tram_stop'::text) THEN 300 WHEN (gs.feature = 'service_station'::text) THEN 600 WHEN (gs.feature = 'yard'::text) THEN 700 WHEN (gs.feature = 'junction'::text) THEN 650 WHEN (gs.feature = 'spur_junction'::text) THEN 420 WHEN (gs.feature = 'site'::text) THEN 600 WHEN (gs.feature = 'crossover'::text) THEN 700 ELSE 50 END) DESC NULLS LAST, gs.importance DESC NULLS LAST|
| Sort Method: quicksort Memory: 73kB |
| Buffers: shared hit=152441 |
| -> Merge Left Join (cost=9.56..64483.36 rows=59 width=708) (actual time=10.438..1737.101 rows=196.00 loops=1) |
| Merge Cond: ((gs.operator[1]) = ro.name) |
| Buffers: shared hit=152441 |
| -> Sort (cost=9.29..9.43 rows=59 width=449) (actual time=0.794..0.910 rows=196.00 loops=1) |
| Sort Key: (gs.operator[1]) |
| Sort Method: quicksort Memory: 108kB |
| Buffers: shared hit=43 |
| -> Index Scan using grouped_stations_with_importance_center_index on grouped_stations_with_importance gs (cost=0.28..7.55 rows=59 width=449) (actual time=0.076..0.313 rows=196.00 loops=1) |
| Index Cond: (center && '0103000020110F00000100000005000000A0922B4E777F3541066FF8FE58515141A0922B4E777F35418A4F24C138EA5141B014DB56F6E237418A4F24C138EA5141B014DB56F6E23741066FF8FE58515141A0922B4E777F3541066FF8FE58515141'::geometry) |
| Filter: (name IS NOT NULL) |
| Rows Removed by Filter: 6 |
| Index Searches: 1 |
| Buffers: shared hit=43 |
| -> Index Scan using railway_operator_name on railway_operator ro (cost=0.28..12.68 rows=733 width=31) (actual time=0.022..0.310 rows=453.00 loops=1) |
| Index Searches: 1 |
| Buffers: shared hit=302 |
| SubPlan 1 |
| -> Aggregate (cost=1092.37..1092.38 rows=1 width=32) (actual time=8.842..8.842 rows=1.00 loops=196) |
| Buffers: shared hit=152096 |
| -> Seq Scan on routes r (cost=0.00..1090.16 rows=126 width=64) (actual time=6.826..8.832 rows=1.08 loops=196) |
| Filter: (ARRAY[osm_id] <@ gs.route_ids) |
| Rows Removed by Filter: 25132 |
| Buffers: shared hit=152096 |
|Planning: |
| Buffers: shared hit=3 |
|Planning Time: 0.951 ms |
|Execution Time: 1738.698 ms |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
```
Query plan after:
```
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|QUERY PLAN |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|Subquery Scan on railway_text_stations (cost=118.14..195.27 rows=121 width=813) (actual time=3.527..3.620 rows=84.00 loops=1) |
| Buffers: shared hit=1125 |
| -> Sort (cost=118.14..118.44 rows=121 width=853) (actual time=3.512..3.523 rows=84.00 loops=1) |
| Sort Key: (any_value(CASE WHEN (gs.state <> 'present'::text) THEN 100 WHEN ((gs.feature = 'station'::text) AND (gs.station = 'light_rail'::text)) THEN 450 WHEN ((gs.feature = 'station'::text) AND (gs.station = 'subway'::text)) THEN 400 WHEN (gs.feature = 'station'::text) THEN 800 WHEN ((gs.feature = 'halt'::text) AND (gs.station = 'light_rail'::text)) THEN 500 WHEN (gs.feature = 'halt'::text) THEN 550 WHEN (gs.feature = 'tram_stop'::text) THEN 300 WHEN (gs.feature = 'service_station'::text) THEN 600 WHEN (gs.feature = 'yard'::text) THEN 700 WHEN (gs.feature = 'junction'::text) THEN 650 WHEN (gs.feature = 'spur_junction'::text) THEN 420 WHEN (gs.feature = 'site'::text) THEN 600 WHEN (gs.feature = 'crossover'::text) THEN 700 ELSE 50 END)) DESC NULLS LAST, (any_value(gs.importance)) DESC NULLS LAST|
| Sort Method: quicksort Memory: 53kB |
| Buffers: shared hit=1125 |
| -> HashAggregate (cost=103.35..113.95 rows=121 width=853) (actual time=2.903..3.312 rows=84.00 loops=1) |
| Group Key: gs.id, gs.center |
| Filter: (any_value(gs.name) IS NOT NULL) |
| Batches: 1 Memory Usage: 216kB |
| Buffers: shared hit=1125 |
| -> Nested Loop Left Join (cost=11.93..84.44 rows=122 width=490) (actual time=1.372..2.209 rows=216.00 loops=1) |
| Buffers: shared hit=1125 |
| -> Hash Right Join (cost=11.64..28.01 rows=122 width=434) (actual time=1.345..1.648 rows=216.00 loops=1) |
| Hash Cond: (ro.name = gs.operator[1]) |
| Buffers: shared hit=477 |
| -> Index Scan using railway_operator_name on railway_operator ro (cost=0.28..12.68 rows=733 width=31) (actual time=0.025..0.266 rows=733.00 loops=1) |
| Index Searches: 1 |
| Buffers: shared hit=434 |
| -> Hash (cost=9.84..9.84 rows=122 width=425) (actual time=1.110..1.111 rows=216.00 loops=1) |
| Buckets: 1024 Batches: 1 Memory Usage: 108kB |
| Buffers: shared hit=43 |
| -> Subquery Scan on gs (cost=0.28..9.84 rows=122 width=425) (actual time=0.090..0.564 rows=216.00 loops=1) |
| Buffers: shared hit=43 |
| -> ProjectSet (cost=0.28..8.62 rows=122 width=525) (actual time=0.088..0.513 rows=216.00 loops=1) |
| Buffers: shared hit=43 |
| -> Index Scan using grouped_stations_with_importance_center_index on grouped_stations_with_importance (cost=0.28..7.55 rows=61 width=449) (actual time=0.072..0.211 rows=202.00 loops=1) |
| Index Cond: (center && '0103000020110F00000100000005000000A0922B4E777F3541066FF8FE58515141A0922B4E777F35418A4F24C138EA5141B014DB56F6E237418A4F24C138EA5141B014DB56F6E23741066FF8FE58515141A0922B4E777F3541066FF8FE58515141'::geometry) |
| Index Searches: 1 |
| Buffers: shared hit=43 |
| -> Index Scan using routes_osm_id_idx on routes r (cost=0.29..0.45 rows=1 width=64) (actual time=0.002..0.002 rows=1.00 loops=216) |
| Index Cond: (osm_id = gs.route_id) |
| Index Searches: 216 |
| Buffers: shared hit=648 |
|Planning Time: 1.451 ms |
|Execution Time: 4.138 ms |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
```
Execution time goes from 1.8 seconds to 4ms.
## Query 2: station bubbles
Less impact, because only executed at higher zooms (so much smaller
bounding box and amount of data).
Test query:
```sql
select standard_railway_grouped_stations(13, 7179, 3254)
```
which translates to
```sql
explain analyze SELECT
gs.id,
nullif(array_to_string(osm_ids, U&'\001E'), '') as osm_id,
nullif(array_to_string(osm_types, U&'\001E'), '') as osm_type,
ST_AsMVTGeom(buffered, ST_TileEnvelope(13, 7179, 3254), extent => 4096, buffer => 64, clip_geom => true) AS way,
feature,
state,
station,
railway_ref as label,
gs.name,
uic_ref,
nullif(array_to_string(operator, U&'\001E'), '') as operator,
nullif(array_to_string(network, U&'\001E'), '') as network,
nullif(array_to_string(position, U&'\001E'), '') as position,
COALESCE(
ro.color,
'hsl(' || get_byte(sha256(operator[1]::bytea), 0) || ', 100%, 30%)'
) as operator_color,
(select nullif(array_to_string(array_agg(r.osm_id || U&'\001E' || coalesce(r.color, '') || U&'\001E' || coalesce(r.name, '')), U&'\001D'), '') from routes r where ARRAY[r.osm_id] <@ gs.route_ids) as station_routes,
nullif(array_to_string(wikidata, U&'\001E'), '') as wikidata,
nullif(array_to_string(wikimedia_commons, U&'\001E'), '') as wikimedia_commons,
nullif(array_to_string(wikimedia_commons_file, U&'\001E'), '') as wikimedia_commons_file,
nullif(array_to_string(image, U&'\001E'), '') as image,
nullif(array_to_string(mapillary, U&'\001E'), '') as mapillary,
nullif(array_to_string(wikipedia, U&'\001E'), '') as wikipedia,
nullif(array_to_string(note, U&'\001E'), '') as note,
nullif(array_to_string(description, U&'\001E'), '') as description
FROM grouped_stations_with_importance gs
LEFT JOIN railway_operator ro
ON ro.name = operator[1]
WHERE buffered && ST_TileEnvelope(13, 7179, 3254);
```
Query plan before:
```
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|QUERY PLAN |
+-------------------------------…
Fixes #787 For (grouped) stations that have no `route_ids`, also query `null` values for the routes IDs, to allow a null-join. Now yards and service stations and and junctions are shown again. <img width="860" height="627" alt="image" src="https://github.com/user-attachments/assets/1db4dd54-bb4c-43df-8bde-d4446b34841e" />
Hi there, having again read the instructions of railway signalling and seeing in situ examples of signals, I had to make a (last I hope) rework of signalling (based similarly on German Hp, Hl and Ks systems). It highly influences the tagging of well majority of signals, but in near future I will make adjustments. Some of tagging was simplified, since some signals must appear in combined signals (eg. the next semaphore shows "stop") Minor changes were made to shunting signal (as the sign form didn't render) and missing form of some signals (that forced writing additional line out of template). Thanks in advance --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Before, a single error with the filename of a single file that does not exist. After, all errors are concatenated together into a single large error: ``` Error: Failed to resolve promises: Error: Failed to resolve promises: Error: Failed to resolve promises: Error: ENOENT: no such file or directory, open 'symbols/pl/s6-3-main.svg', Error: Failed to resolve promises: Error: Failed to resolve promises: Error: ENOENT: no such file or directory, open 'symbols/pl/s9-13a-4.svg', Error: Failed to resolve promises: Error: Failed to resolve promises: Error: ENOENT: no such file or directory, open 'symbols/pl/s6-3.svg', Error: ENOENT: no such file or directory, open 'symbols/pl/s9-3.svg' ```
Adds preliminary route indicators. See https://www.railsigns.uk/photos/p_route2.html#pic_priup for some photos, and https://www.railsigns.uk/sect6page5.html for a description. I know that there are a few tagged on the approach to Reading West from Southcote Junction. Though, be aware that they were added using a slightly different tag today, before being changed (see description of commit 689f4b5).
Fixes #1065 The visibility was always set to `none`, for every layer. http://localhost:8000/#view=16.67/51.189027/6.687403/0/3 <img width="864" height="651" alt="image" src="https://github.com/user-attachments/assets/bbb044f6-3f48-401f-82ae-83fd3f6c6c7d" />
Part of #970 Reduce the amount of layers for the high zoom railway track style. Before: 821 layers in style After: 586 layers in style
Currently, Australia has 3 different systems using yellow, which are
hard to distinguish ($`{\color{#b58a00} \blacksquare\color{#ccaa00}
\blacksquare\color{#ffcc00} \blacksquare}`$).
One of these systems is also used in the UK, and the other is also used
in Korea. so we have to play a game a sudoku to keep the colours unique
in all regions 😆
This PR proposes 4 changes:
1. 🇦🇺 TMACS $`{\color{#ffcc00} \blacksquare}`$ → $`{\color{#66cc33}
\blacksquare}`$
2. 🇦🇺 ATMS $`{\color{#0096d4} \blacksquare}`$ → $`{\color{#4fb8af}
\blacksquare}`$
3. 🇦🇺🇰🇷 ATS $`{\color{#b58a00} \blacksquare}`$ → $`{\color{#ff7033}
\blacksquare}`$
4. 🇰🇷 KTCS $`{\color{#c54800} \blacksquare}`$ → $`{\color{#654321}
\blacksquare}`$
---
Full list for each affected country:
AU:
- ATS $`{\color{#b58a00} \blacksquare}`$ → $`{\color{#ff7033}
\blacksquare}`$
- AWS $`{\color{#ccaa00} \blacksquare}`$
- TMACS $`{\color{#ffcc00} \blacksquare}`$ → $`{\color{#66cc33}
\blacksquare}`$
- TOW $`{\color{#884400} \blacksquare}`$
- TPWS $`{\color{#ffc0cb} \blacksquare}`$
- PTC $`{\color{#cc0033} \blacksquare}`$
- CBTC $`{\color{#cc0052} \blacksquare}`$
- ATP $`{\color{#cc00bb} \blacksquare}`$
- ATC $`{\color{#6600cc} \blacksquare}`$
- ETCS-2 $`{\color{#0058cc} \blacksquare}`$
- ETCS-1 $`{\color{#006eff} \blacksquare}`$
- ATMS $`{\color{#0096d4} \blacksquare}`$ → $`{\color{#4fb8af}
\blacksquare}`$
- None $`{\color{#000000} \blacksquare}`$
- Unknown $`{\color{#999999} \blacksquare}`$
KR:
- ATS $`{\color{#b58a00} \blacksquare}`$ → $`{\color{#ff7033}
\blacksquare}`$
- KTCS $`{\color{#c54800} \blacksquare}`$ → $`{\color{#654321}
\blacksquare}`$
- CBTC $`{\color{#cc0052} \blacksquare}`$
- ATC $`{\color{#6600cc} \blacksquare}`$
- ETCS-1 $`{\color{#006eff} \blacksquare}`$
- TVM $`{\color{#66cc33} \blacksquare}`$
- Unknown $`{\color{#999999} \blacksquare}`$
GB (no change):
- AWS $`{\color{#ccaa00} \blacksquare}`$
- TPWS $`{\color{#ffc0cb} \blacksquare}`$
- CBTC $`{\color{#cc0052} \blacksquare}`$
- ATP $`{\color{#cc00bb} \blacksquare}`$
- ETCS-2 $`{\color{#0058cc} \blacksquare}`$
- ETCS-1 $`{\color{#006eff} \blacksquare}`$
- TVM $`{\color{#66cc33} \blacksquare}`$
- None $`{\color{#000000} \blacksquare}`$
- Unknown $`{\color{#999999} \blacksquare}`$
<table>
<tr>
<td></td>
<td>Before</td>
<td>After</td>
</tr>
<tr>
<td>🇦🇺</td>
<td>
<img width="932" height="699" alt="image"
src="https://github.com/user-attachments/assets/b303d91c-c14a-4df7-b2e6-1f6f49b256f4"
/>
<img width="334" height="240" alt="image"
src="https://github.com/user-attachments/assets/0e6daedd-f9ed-40e5-adf1-478c9f6ba475"
/>
</td>
<td>
<img width="985" height="708" alt="image"
src="https://github.com/user-attachments/assets/7f2406d2-0204-4a22-9aa1-63e6644dbd4d"
/>
<img width="393" height="262" alt="image"
src="https://github.com/user-attachments/assets/6f9515d9-6bd9-48dc-8fed-7d5389d988ea"
/>
</td>
</tr>
<tr>
<td>🇰🇷</td>
<td>
<img width="582" height="669" alt="image"
src="https://github.com/user-attachments/assets/a9519fa5-8e33-41e5-a869-b0355fe1fbef"
/>
</td>
<td>
<img width="561" height="713" alt="image"
src="https://github.com/user-attachments/assets/71e923dc-6100-42f4-a266-6a7410fff689"
/></td>
</tr>
<tr>
<td>🇬🇧</td>
<td colspan=2>no change</td>
</tr>
</table>
---
An alterantive idea is to change AWS $`{\color{#ccaa00} \blacksquare}`$
instead of ATS $`{\color{#b58a00} \blacksquare}`$. Then it would impact
AU+GB intead of AU+KR.
OSM data has changed.
…1072) Hi. I would like to add three more metropolitan railway operator in Indonesia, as well as new tagging system for Indonesian railway signals. These tags has been implemented in some stations, like Bandung area and Kertosono. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
For example http://localhost:8000/#view=16.34/52.006429/4.359293, https://www.openstreetmap.org/relation/19784864, https://www.openstreetmap.org/relation/19784824. Tram stops are both stations and stop positions. Before <img width="1213" height="971" alt="image" src="https://github.com/user-attachments/assets/fb1cc992-0f28-4b02-81b2-518521216c6a" /> After <img width="1213" height="971" alt="image" src="https://github.com/user-attachments/assets/ab638a2d-8fb7-469d-b281-be0f12978447" />
Part of #970 Closes #1010 Closes #1064 ## Goal Allow configuring custom map styles alongside the current map style presets. ## Changes ### Map style The map style can be selected for each element on the map. Current list is: - Tracks - Operating sites (stations) - Platforms - Switches - Points of interest - Turntables - Boxes - Substations - Catenaries <img width="1084" height="631" alt="image" src="https://github.com/user-attachments/assets/3aaf1c19-d1ce-4c83-af27-e4603993f139" /> <img width="548" height="717" alt="image" src="https://github.com/user-attachments/assets/3518725b-b64c-4bbc-8e45-451f9ff4f176" /> The style will be expanded in separate pull requests, such as configuring which signals to see, separating different types of points of interest, etc. ### Presets The presets are listed under a button, and work the same way as they used to. Selecting a preset will select the matching style. The preset is no longer stored in the URL. If the styles are shown on the map that match a preset exactly, the preset is considered "active" and shows the active indicator (small colored circle). <img width="915" height="437" alt="image" src="https://github.com/user-attachments/assets/5eacb7ea-6abd-4683-9c09-8ff5c5dac43f" /> <img width="650" height="783" alt="image" src="https://github.com/user-attachments/assets/c2ef8340-3942-491b-b7f5-9ffeb04ab205" /> ### Browser URL The browser URL will contain the selected styles which are different than the defaults. This means that sharing an URL to a map view, will let the other person see the same map. ### Historical view If OpenHistoricalMap is used as a historical railway infrastructure, the date control is always shown. If another style than "usage" is used for the tracks, the lines will be gray because the historical lines do not have speed, electrification, train protection, operator or route information. ### Legend The legend will show all elements of the chosen map style.
Closes: #1028 http://localhost:8000/#view=16.95/56.246804/12.854042 <img width="774" height="599" alt="image" src="https://github.com/user-attachments/assets/be5f3090-c121-4cc1-af56-e96b35e366b0" /> Names and values taken from Taginfo and wiki
Fixes #1076 On http://localhost:8000/#view=17.46/51.5042/-0.107255&stations=none&switches=none&pois=none&turntables=none Before <img width="1632" height="387" alt="image" src="https://github.com/user-attachments/assets/cb75a122-ec0f-4ae4-9069-fe415be74d17" /> After <img width="1632" height="387" alt="image" src="https://github.com/user-attachments/assets/4428d37b-cd6f-4ecd-80d8-3b72b2c6676a" />
Closes #1061 http://localhost:8000/#view=16.07/51.347293/0.737758&switches=none&pois=none&turntables=none <img width="1083" height="658" alt="image" src="https://github.com/user-attachments/assets/d5cc5461-a1dc-429c-926d-efc56ab4ecc8" />
The configured language is configured when the map is loaded, but is not re-configured when the language configuration is updated. This is a regression since migrating to a single style without a dynamic style reloading while the map is loaded. This pull request adds a language control which does not have any UI, but modifies the map style as the language configuration is updated through the settings, or the browser / OS language configuration (`languagechange` browser event).
Currently, when clicking a feature on the map, the properties of the features are retrieved through the OpenRailwayMap API. When the response contains images (Wikidata and Wikimedia commons), the UI makes another request to the API to fetch the image metadata, URL and attribution information. This pull request removes the second roundtrip, and resolves the images from the feature properties directly. A single response is returned that contains the required images for display in the popup. In addition, the image metadata from the Wikimedia response is emitted in the OpenRailwayMap feature API output as well. This is used in the UI, to resize the image before it is fully loaded. The popup will then no longer change in size.
Italian combined and main signals' aspect is very similar: in a certain sense, an Italian combined signal is main signal, but an Italian main signal may or may not be a combined one (because combined signal is like main signal + distant signal). They differ in this: Italian main signals (strictly speaking i.e. main signal not combined with a distant one) can show any of these tree light states: red, green, red-green. Combined signals may show much more then the previous list of three light states. For this reason i fixed Italian combined and main signal tagging scheme very close to each other. In the proposed tagging scheme, main signal states could be combined, for reason of tagging compatibility. In my opinion this is a good compromise. I also fixed an error in the 3 lights combined signal tagging scheme. --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Fixes #805 In the historical view, show the number of routes on a railway line. <img width="1440" height="1114" alt="image" src="https://github.com/user-attachments/assets/a2ee3d6c-3d5f-4abd-a12f-8f283642da89" />
Part of #970 Part of #1092 Move the voltage/frequency, maximum current and power track visualizations into the tracks style menu. The configuration screen for configuring the electrification preset is removed. Existing URLs will remain working and be migrated to the new URL scheme. <img width="1178" height="562" alt="image" src="https://github.com/user-attachments/assets/2ca2a0ab-95e2-46f9-8024-982362f25db9" /> <img width="1012" height="489" alt="image" src="https://github.com/user-attachments/assets/15a06065-b60d-4c88-8455-7f4898e3bfdc" />
Closes #727. http://localhost:8000/#view=11.38/41.9742/-4.4817&stations=none&platforms=none&switches=none&pois=signals&turntables=none&signals=signals&boxes=plain&tracks=passenger_lines <img width="1031" height="715" alt="image" src="https://github.com/user-attachments/assets/8d887eef-26c7-45a1-8cb6-a76c26474d01" /> http://localhost:8000/#view=6.11/40.542/-1.181&stations=none&platforms=none&switches=none&pois=signals&turntables=none&signals=signals&boxes=plain&tracks=passenger_lines <img width="1241" height="985" alt="image" src="https://github.com/user-attachments/assets/010ba48d-d789-44eb-9bb0-a8015cb5d78d" /> http://localhost:8000/#view=9.59/48.8234/2.3294&stations=none&platforms=none&switches=none&pois=signals&turntables=none&signals=signals&boxes=plain&tracks=passenger_lines <img width="1441" height="1109" alt="image" src="https://github.com/user-attachments/assets/2b9a5b61-c1c6-4e55-b93c-dd7956e19972" /> Legend <img width="447" height="554" alt="image" src="https://github.com/user-attachments/assets/e2ac13e1-f720-4381-96e7-4d5b05553cb0" />
Part of #970 Part of #1092 Move the track gauge, loading gauge and track class track visualizations into the tracks style menu. The configuration screen for configuring the track preset is removed. Existing URLs will remain working and be migrated to the new URL scheme. <img width="1439" height="627" alt="image" src="https://github.com/user-attachments/assets/5e530efe-e727-4fb4-b168-e3ed6f3b79be" /> <img width="1440" height="519" alt="image" src="https://github.com/user-attachments/assets/34c7ba4c-ffe1-4eee-8452-f923575035fa" />
Hi! I'm trying here to add some of the Spanish main and shunting signals. There's still a lot of more work to do, but for now this should cover at least the most signal shapes used. --------- Co-authored-by: Alejandro S. <yonseca@yonseca@posteo.net> Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
This prevents the warnings during the import container build: ``` #11 [build-operators 4/4] RUN --mount=type=bind,source=import/sql/operators.sql.js,target=operators.sql.js --mount=type=bind,source=features/operators.yaml,target=operators.yaml node operators.sql.js > /build/operators.sql #11 0.293 (node:1) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///build/operators.sql.js is not specified and it doesn't parse as CommonJS. #11 0.293 Reparsing as ES module because module syntax was detected. This incurs a performance overhead. #11 0.293 To eliminate this warning, add "type": "module" to /build/package.json. #11 0.293 (Use `node --trace-warnings ...` to show where the warning was created) #11 DONE 0.5s #12 [build-signals 4/4] RUN --mount=type=bind,source=import/sql/signal_features.sql.js,target=signal_features.sql.js --mount=type=bind,source=features/signals_railway_signals.yaml,target=signals_railway_signals.yaml --mount=type=bind,source=symbols,target=symbols node signal_features.sql.js > /build/signal_features.sql #12 0.340 (node:1) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///build/signal_features.sql.js is not specified and it doesn't parse as CommonJS. #12 0.340 Reparsing as ES module because module syntax was detected. This incurs a performance overhead. #12 0.340 To eliminate this warning, add "type": "module" to /build/package.json. #12 0.340 (Use `node --trace-warnings ...` to show where the warning was created) #12 ... #13 [build-lua 4/4] RUN --mount=type=bind,source=import/tags.lua.js,target=tags.lua.js --mount=type=bind,source=features/train_protection.yaml,target=train_protection.yaml --mount=type=bind,source=features/signals_railway_signals.yaml,target=signals_railway_signals.yaml --mount=type=bind,source=features/poi.yaml,target=poi.yaml --mount=type=bind,source=features/stations.yaml,target=stations.yaml node tags.lua.js > /build/tags.lua #13 0.303 (node:1) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///build/tags.lua.js is not specified and it doesn't parse as CommonJS. #13 0.303 Reparsing as ES module because module syntax was detected. This incurs a performance overhead. #13 0.303 To eliminate this warning, add "type": "module" to /build/package.json. #13 0.303 (Use `node --trace-warnings ...` to show where the warning was created) #13 DONE 0.9s ```
## 1. Removed '에스알' '에스알' was now integrated to Korail since this September. [Reference](https://www.railjournal.com/passenger/high-speed/korea-approves-korail-sr-merger/) ## 2. Added '우이신설 도시철도' <img width="514" height="672" alt="image" src="https://github.com/user-attachments/assets/66d460dd-67fa-44ba-8aec-b60ebc0f38c0" />
Part of #970 Split the points of interest into functional types. Currently the following types are implemented: - Radio - Facility - Equipment - Operator - Vacancy detection - Electrical equipment - Level crossing - Train protection See `poi.yaml`, https://github.com/hiddewie/OpenRailwayMap-vector/pull/1099/changes#diff-b0935f221e0e5f39aa4cd5edf7f695bc4528d891b1f1e3d56430a8f625885a4c, for the assignment of the places of interest to a functional type. We can easily expand or tweak the types later. The selection of POIs in the UI allows for *multiple selection*. Unlike the other styles, the POIs allow selecting none, any or all of the available types to be viewed. Existing URLs that have the POI query parameter will be converted to the new style and remain working. <img width="957" height="393" alt="image" src="https://github.com/user-attachments/assets/b4972230-78ad-4adf-82f2-d7c5d975ca5d" /> <img width="540" height="362" alt="image" src="https://github.com/user-attachments/assets/344c8cb2-56c8-4932-a23c-53760fe7750a" /> <img width="702" height="596" alt="image" src="https://github.com/user-attachments/assets/0c4d68f7-dc4f-4464-b494-76ef07e12d2e" /><img width="702" height="596" alt="image" src="https://github.com/user-attachments/assets/8da94816-fb3c-4b4f-a350-376c942ef355" />
From 6.1.0; the changelog lists no breaking changes. Among the fixes, style changes with `validate: false` no longer serialize the whole style per call (maplibre/maplibre-gl-js#8260), which made adding layers or setting filters after load take milliseconds each with a style this size. The files are `dist/` of the npm package `maplibre-gl@6.9.0` (integrity `sha512-vFMwMK0Zs+NM/rOMSdtu8bO30DIexhBEVi5KC6f70/XtI+L/K2wC3LsDCAXFZ4s8ik5gAuDugfCNbpllpdJ9bA==`), copied unchanged by the new `proxy/vendor-maplibre.sh`; re-running `proxy/vendor-maplibre.sh 6.9.0` leaves the tree unchanged. Assisted-by: Claude Code --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Ref https://wiki.openstreetmap.org/w/index.php?title=Proposal:Railway:train_protection&diff=0&oldid=3077004 Ref #1093 cc @LaVoiedelaSagesse ### Testing Left, before, right, after. http://localhost:8000/#view=13.73/48.90151/2.19785/0/9&tracks=train_protection&stations=none&platforms=none&switches=none&turntables=none&boxes=plain <img width="1440" height="1110" alt="image" src="https://github.com/user-attachments/assets/3a7e4553-1152-46bb-b258-dd1ec5c8a76b" /> http://localhost:8000/#view=15.93/48.918307/2.192014/0/9&tracks=train_protection&stations=none&platforms=none&switches=none&turntables=none&boxes=plain <img width="1440" height="1110" alt="image" src="https://github.com/user-attachments/assets/f1c4d0a8-0499-40ce-ac6c-1690bb2ab125" /> http://localhost:8000/#view=16.17/48.912244/2.352971/0/9&tracks=train_protection&stations=none&platforms=none&switches=none&turntables=none&boxes=plain <img width="1440" height="1110" alt="image" src="https://github.com/user-attachments/assets/14383660-1df3-4540-ba8c-986af5e0fbc2" /> <img width="638" height="709" alt="image" src="https://github.com/user-attachments/assets/6a31f782-2a10-4454-89c8-6c125aca919e" />
Fixes #1107 http://localhost:8000/#view=14.32/52.50678/13.48892/0/9 <img width="1438" height="682" alt="image" src="https://github.com/user-attachments/assets/747de1a0-7ef7-47b8-8895-2f742437d887" /> (no catenaries visible)
Followup on #1105 with comments from #1093 (reply in thread) and #1105 (comment) Update names, and change KCVB to a more blue color to be closer to SACEM. On http://localhost:8000/#view=15.98/48.90172/2.214873/0/9&tracks=train_protection&stations=none&platforms=none&switches=none&turntables=none Before: <img width="1176" height="454" alt="image" src="https://github.com/user-attachments/assets/ac721019-f616-4ddf-8311-da634edc2fc1" /> After: <img width="1288" height="494" alt="image" src="https://github.com/user-attachments/assets/f63f415b-34f4-4af3-8693-c08f22ce4bdd" />
Last part of #970 <img width="854" height="378" alt="image" src="https://github.com/user-attachments/assets/eb8fbc04-1720-46fa-969e-886b525b3e50" /> <img width="627" height="541" alt="image" src="https://github.com/user-attachments/assets/589fa11b-8f87-4009-804a-61a78c0045d3" /> <img width="627" height="541" alt="image" src="https://github.com/user-attachments/assets/c4767fad-16fc-44da-b088-adbadf9bf0c2" /> <img width="627" height="541" alt="image" src="https://github.com/user-attachments/assets/8c396ab0-a54d-49b5-84ae-3cf456c9626a" />
Fixes #1030 Visible from zoom 14. Near Zermatt, http://localhost:8000/#view=14.56/46.01867/7.75342/0/9 <img width="446" height="668" alt="image" src="https://github.com/user-attachments/assets/8a84a02f-e4e9-4168-89cb-77749ba4b9dc" /> <img width="1308" height="863" alt="image" src="https://github.com/user-attachments/assets/ce7c5c30-1b1c-4845-8a65-14e0b3e55295" /> <img width="920" height="637" alt="image" src="https://github.com/user-attachments/assets/ee17215c-2354-4f25-a759-cc191da4985b" /> http://localhost:8000/#view=17.02/46.004737/7.755599/0/9 <img width="1203" height="794" alt="image" src="https://github.com/user-attachments/assets/441533df-f975-4ef1-89f8-22451eedff11" />
Departure signals with countdown boards in The Netherlands. For example https://youtu.be/w52mm1dY7p8?si=OY8uAWRYw_CyVDe6&t=1658 and https://youtu.be/XXrsIg3BJNU?si=MxJI1h_LrBmU5TDE&t=2255. <img width="871" height="572" alt="image" src="https://github.com/user-attachments/assets/fbdbde25-a080-49fe-bce9-07c86966cbb7" />
…1113) I've reordered the signals to make sure that the speed signals appear under the main signals
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.
Hi!
Over the past years I have been working on a fork of the OpenRailwayMap.
The announcement can be found on the OpenRailwayMap mailing list and on the OpenStreetMap community forum.
The fork has several features, and is actively being developed by me and several more contributors:
At the moment the fork is hosted on https://openrailwaymap.app using Fly.io. This is purely practical, it could be hosted anywhere else.
This pull request is a starter to discuss:
openrailwaymap.org?These are open questions, any response is appreciated!