OpenRailwayMap-vector integration#132
Open
hiddewie wants to merge 736 commits into
Open
Conversation
Fixes #526 Reverse the left/right signal position if the signal direction is backwards. Display a tooltip in the popup explaining the signal position. Node https://www.openstreetmap.org/node/493675123, http://localhost:8000/#view=18.79/52.4882436/13.3722984&style=signals: Before: <img width="908" height="622" alt="image" src="https://github.com/user-attachments/assets/180b5982-c77e-4e85-b97b-1b9de31097eb" /> After: <img width="684" height="465" alt="image" src="https://github.com/user-attachments/assets/a85123a4-b0cc-42d7-ba6f-3e5bd97944b5" /> With tooltip: <img width="557" height="397" alt="image" src="https://github.com/user-attachments/assets/b6e0fbf0-18ba-4be5-a6e8-b53d8079cb74" /> The cursor shows as a "help" cursor while hovering the label for signal position.
Fixes #575 Always import `railway = platform`. For `public_transport = platform`: - Always import if `train = yes` - Always import if `tram = yes` - Always import if `subway = yes` - Always import if `light_rail = yes` - Else, do not import if any of `bus = yes` or `trolleybus = yes` or `share_taxi = yes` or `ferry = yes`. Also see https://taginfo.openstreetmap.org/tags/public_transport=platform#combinations (https://openrailwaymap.app/#view=18.46/52.5287048/13.3768069) Before: <img width="1099" height="829" alt="image" src="https://github.com/user-attachments/assets/ea1c003d-e516-49c6-a12d-2bff5bf5b0a1" /> After: <img width="1281" height="759" alt="image" src="https://github.com/user-attachments/assets/495a08ce-15e4-4a6c-85dd-d03391061784" />
Translate it to GB instead. Before: <img width="485" height="333" alt="image" src="https://github.com/user-attachments/assets/72097f8b-ad8c-4ec6-9321-2c6c0eeb0aa2" /> After: <img width="485" height="333" alt="image" src="https://github.com/user-attachments/assets/0eadac30-5457-4eee-91ed-3721d7fc522a" />
Fixes #585 Currently only station nodes are joined with stop areas. This PR will also import stations mapped as ways, and allow them to be joined in stop area "bubbles" (https://openrailwaymap.app/#view=16.71/-33.874899/151.208629) Before: <img width="1430" height="1111" alt="image" src="https://github.com/user-attachments/assets/bb98a6fb-8d63-409d-859c-69ab8768eec6" /> After: <img width="1430" height="1111" alt="image" src="https://github.com/user-attachments/assets/a0296165-a273-4102-94be-d6fd18ea4bd8" />
Fixes #554 Documentation in https://wiki.openstreetmap.org/wiki/Relation:public_transport#public_transport.3Dstop_area_group. Hannover Hauptbahnhof (http://localhost:8000/#view=16.12/52.377561/9.743367): <img width="1155" height="727" alt="image" src="https://github.com/user-attachments/assets/be8949fa-57f5-474c-b467-6dff9945ad37" /> Hamburg (http://localhost:8000/#view=15.2/53.552922/10.008825): <img width="1155" height="727" alt="image" src="https://github.com/user-attachments/assets/be7405ba-8cdd-442c-926e-286c54e1642b" /> Leipzig (http://localhost:8000/#view=15.71/51.345353/12.382657): <img width="1155" height="727" alt="image" src="https://github.com/user-attachments/assets/498cbaa9-4356-46b5-8142-873c8da62eb3" /> Magdeburg (http://localhost:8000/#view=17.11/52.13075/11.627597): <img width="1188" height="879" alt="image" src="https://github.com/user-attachments/assets/d1762be1-3461-4535-8a21-2fc3a81de3b9" />
Fixes #310 The derailer and buffer stop receive a slightly dark red color. Derailer and buffer stop and their signals will only be visible from zoom 16. Tested in http://localhost:8000/#view=17.39/51.350645/12.394897&style=signals: <img width="1010" height="700" alt="image" src="https://github.com/user-attachments/assets/9b8c1b63-00a3-4a7d-9963-1192e47b12dc" /> <img width="1010" height="700" alt="image" src="https://github.com/user-attachments/assets/2a294fc0-81af-4bea-a6a5-d9565ad44a64" />
For some reason the halo and hover of the signals became almost black. For the railway lines and text labels this is fine, but for the signals a more clear halo is nicer. (http://localhost:8000/#view=17.22/48.629921/9.343935/-76.9&style=signals): Before: <img width="1586" height="381" alt="image" src="https://github.com/user-attachments/assets/5f68fe35-42d6-4f52-92e3-1c453d3afaf1" /> After: <img width="1586" height="381" alt="image" src="https://github.com/user-attachments/assets/0f866d28-391c-42a0-b4f9-eff723be59c7" />
the Australian community is slowly developping a tagging scheme for signals, this PR adds [NSW - Sydney Metro](https://osm.wiki/Australian_Tagging_Guidelines/Railways#NSW_-_Sydney_Metro), which is the first system with a proper tagging schema. <img width="300" alt="image" src="https://github.com/user-attachments/assets/04d9a46e-b267-4af4-b81d-3b3064c4b987" /> <img width="400" alt="image" src="https://github.com/user-attachments/assets/4d34ce8f-ebfc-456a-940e-06cd5d57c82b" /> Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Hi, I've (finally) created graphics for tram signs in Poland - some of them should appear in a short time in OSM database. (AT-3 and AT-4 signs aren't yet rendered since we still have discussion for slope/incline signs tagging). The city's default switch signs have no standarisation in PL legislation thus I've used the `PL-tram:switch_<city>` template. Wiki: https://wiki.openstreetmap.org/wiki/Pl:OpenRailwayMap/Tagging_in_Poland/Other_lines#Tramwaje --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Fixes #594 This requires the station to have a correctly tagged `stop_area` relation including both the station and the platforms. Some stations become rather long, but this should not really be a problem I think. (http://localhost:8000/#view=17.8/54.51612/13.638059): <img width="1130" height="746" alt="image" src="https://github.com/user-attachments/assets/c5f8a403-00c6-4d51-8929-b0776e22fb7a" /> (http://localhost:8000/#view=16.26/53.016288/13.995449): <img width="1012" height="928" alt="image" src="https://github.com/user-attachments/assets/0bdb21b7-59cc-4c20-a0be-8592c9faed53" /> (http://localhost:8000/#view=16.86/52.498425/13.271625): <img width="1365" height="709" alt="image" src="https://github.com/user-attachments/assets/8a3c0b76-73a4-4b45-b52a-e4705f38b89e" /> Heidelberger Platz looks great (http://localhost:8000/#view=16.95/52.479905/13.312576): <img width="1177" height="1058" alt="image" src="https://github.com/user-attachments/assets/990c2369-efa8-4d7a-af95-ee9893605c07" />
Adds severals well-established signals of the `railway:signal:switch` category which has not been supported yet. **Switch signal W 0 through W 14 (general use)** - [documentation](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Weichensignale_(W)) (and [for W 0](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Allgemein)) - [440 instances](https://overpass-turbo.eu/?w=%22railway%3Asignal%3Aswitch%22%3D%22DE-BOStrab%3Aw%22+global&R) in OSM, [example](https://www.openstreetmap.org/node/13097176655) - Graphics are based on the `BOStrab:f` signal which similarly is usually a "traffic light" with several signal aspects. **Switch signal W 14 as a sign** - [documentation](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Weichensignale_(W)) - [144 instances](https://overpass-turbo.eu/?w=%22railway%3Asignal%3Aswitch%3Astates%22%3D%22DE-BOStrab%3Aw14%22+global&R) in OSM, [example](https://www.openstreetmap.org/node/13097176640) **Switch signals W 0 through W 15 in the city of Karlsruhe** - [documentation](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Weichensignale_(W)_2) - [79 instances](https://overpass-turbo.eu/?w=%22railway%3Asignal%3Aswitch%22%3D%22DE-VBK%3Aw%22+global&R) in OSM, [example](https://www.openstreetmap.org/node/1481190889) **Switch distant signal Wv 0/1 in the city of Karlsruhe** - [documentation](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Weichenvorr%C3%BCcksignal_(Wv)) - [35 instances](https://overpass-turbo.eu/?w=%22railway%3Asignal%3Aswitch%22%3D%22DE-VBK%3Awv%22+global&R) in OSM, [example](https://www.openstreetmap.org/node/4121736593) **Signal contact sign St 1** - [documentation](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Signalkontakt_(St_1)) - [130 instances](https://overpass-turbo.eu/?w=%22railway%3Asignal%3Aswitch%22%3D%22DE-BOStrab%3Ast1%22+global&R) in OSM, [example](https://www.openstreetmap.org/node/1633043598) **Switch contact sign St 2** - [documentation](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Weichenkontakt_(St_2)) - [88 instances](https://overpass-turbo.eu/?w=%22railway%3Asignal%3Aswitch%22%3D%22DE-BOStrab%3Ast2%22+global&R) in OSM, [example](https://www.openstreetmap.org/node/13097176654) --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Fixes #599 Current implementation uses the AWS Terrarium open data set from https://registry.opendata.aws/terrain-tiles/. Hillshading is used until zoom 15, after that will become a bit more blurry. Default disabled. TODO: - [x] Add layers - [x] Tune parameters for a good look (light and shadow and highlight) - [x] Check attribution and licencing - [x] Test with both raster and vector tiles - [x] Make usage of hillshading optional - [x] Test with terrain mode (3D) -- will not be added
<img width="1430" height="1096" alt="image" src="https://github.com/user-attachments/assets/f570663e-a430-4eea-8068-b7c8497bb308" />
See https://wiki.openstreetmap.org/w/index.php?title=OpenRailwayMap/Tagging_in_Belgium&oldid=2907205#Selective_signal_for_Carwash http://localhost:8000/#view=17.34/50.459778/3.947419&style=speed <img width="715" height="999" alt="image" src="https://github.com/user-attachments/assets/0c12274b-4055-40cf-a12b-f0435d3b815a" />
Corrected description and tagging of distant stop icons --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
This PR adds all light-rail signals ([osmwiki](https://osm.wiki/Australian_Tagging_Guidelines/Railway_Signals)), except speed signs and switch signals – I'll add those in a different PR after there's a conclusion to this thread: #595 (comment) <img width="84" height="97" alt="image" src="https://github.com/user-attachments/assets/3814eddd-0142-4b80-9166-b50f595a7e82" /> <img width="138" height="103" alt="image" src="https://github.com/user-attachments/assets/23b61d10-365e-48fb-9302-5610c1323f50" /> <img width="248" height="226" alt="image" src="https://github.com/user-attachments/assets/55b9e9c0-8873-4b57-9ee9-9ddf30e0597d" /> <img width="111" height="297" alt="image" src="https://github.com/user-attachments/assets/6a68688c-3dbd-4d2d-a31d-0a4c2c621d4b" /> <img width="147" height="293" alt="image" src="https://github.com/user-attachments/assets/54abcd08-941f-4b18-bbfd-353e3cf7c571" /> <img width="270" height="311" alt="image" src="https://github.com/user-attachments/assets/20161d68-4296-4d43-88e7-59daa42ab9ba" /> <img width="201" height="286" alt="image" src="https://github.com/user-attachments/assets/1559ba83-92de-43a7-b168-33dcc26ca27f" /> <img width="218" height="330" alt="image" src="https://github.com/user-attachments/assets/25e5b1b7-d847-4389-8acf-718a6a7159a9" /> <img width="1" height="1" alt="image" src="https://github.com/user-attachments/assets/62423241-3987-4ad5-8cd7-dedef3236ced" /> tested [here](http://localhost:8000/#view=14.89/-33.87949/151.20546&style=signals) and [here](http://localhost:8000/#view=13.94/-33.80815/150.99553&style=signals) the signals look a bit weird, but they are actually oblong-shaped ([photo](https://github.com/user-attachments/assets/62423241-3987-4ad5-8cd7-dedef3236ced))
Fixes #611 During #580 the deactivated got lost for these zoom levels. (http://localhost:8000/#view=14.73/49.29694/10.58621&style=signals): <img width="731" height="425" alt="image" src="https://github.com/user-attachments/assets/f52588c0-f1a9-43f0-b081-e5a179f9a6a5" />
Fixes #499 Part of #498 Import tags of the form `railway:position:exact:LINE`, for example `railway:position:exact:L124 = 7.721` and `railway:position:exact:L26/5 = 1.489`. Additionally, the API can search for milestones with a position specific to a line. Documentation: https://wiki.openstreetmap.org/wiki/Key:railway:position:exact Taginfo: https://taginfo.openstreetmap.org/search?q=railway%3Aposition%3Aexact. This is used in China and Belgium (and possibly other countries that I did not find). Overpass query of nodes in Belgium using exact positions for lines: https://overpass-turbo.eu/s/2dSo Brussels (http://localhost:8000/#view=12.99/50.89768/4.42738): <img width="1038" height="684" alt="image" src="https://github.com/user-attachments/assets/20fd60c1-23aa-4a95-a1e5-56d511202ebe" />
Fixes #466 Currently only the infrastructure and electrification layers show disused railway lines. The other styles do not show them at all. ### Testing Bielefeld (http://localhost:8000/#view=12.53/52.02747/8.56201) Infrastructure <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/3f9f3f9c-cfa8-4c3e-b857-cda559b98fbb" /> Speed <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/ce156431-30fe-4d99-9674-4255fa3f7af3" /> Train protection <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/fd3541ae-69eb-4279-9709-b0c3c3de8278" /> Electrification <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/0ea9bb2a-3465-45cd-a467-0b71b7fe169e" /> Gauge <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/6bed66a7-a146-4658-8d18-7b64528e01e2" /> Loading gauge <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/9eb28c82-a890-4191-996e-a0653b38c2ec" /> Track class <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/a199d867-0547-463f-a684-3ebf80e6e7ba" /> Operator <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/856e716a-e55b-4484-92f1-6a731b74da75" />
Fixes #615 (http://localhost:8000/#view=18.11/50.893004/4.314001): Before: <img width="1433" height="852" alt="Image" src="https://github.com/user-attachments/assets/bbc1dc07-8e57-4a72-a9df-1956f6e5f353" /> After: <img width="1433" height="852" alt="image" src="https://github.com/user-attachments/assets/aa6148e2-d074-4bad-a410-9386fe1a7407" />
Allow configuring whether station references or names should be shown on zoom levels 5 to 10. For the infrastructure and operator layers. The default will remain unchanged, showing references which shows many more labels on the map because the references are only a few characters. Names will show for the large stations first, then for the smaller stations. So on low zooms only a few station names of the largest stations of a country will show. The station circles will always show (and overlap), and remain clickable. Fixes #598 (http://localhost:8000/#view=5.81/50.671/6.58): <img width="573" height="490" alt="image" src="https://github.com/user-attachments/assets/d7eca4b8-c7fd-4f2e-bbe9-e6d4591d2524" /> (http://localhost:8000/#view=7.54/50.833/4.928): <img width="1195" height="880" alt="image" src="https://github.com/user-attachments/assets/b80e58c4-abbb-44f2-9ba2-1ae36b299a64" /> Configuration: <img width="990" height="397" alt="image" src="https://github.com/user-attachments/assets/3200fe95-98ad-4b67-8ca4-60f2ddc72147" />
Fixes the dwarf version not showing up <img width="1678" height="673" alt="image" src="https://github.com/user-attachments/assets/43977e49-3887-4ca0-a7c6-67632a07f877" />
<img width="339" height="868" alt="image" src="https://github.com/user-attachments/assets/6d2f8489-66f8-4b08-a047-3773ee1ebd82" /> <img width="339" height="868" alt="image" src="https://github.com/user-attachments/assets/876a98b1-6d84-4518-ab22-0f7ade2e3248" /> Only very few of these still exist on the line between Augsburg and Donauwörth, so I didn't give them much effort. They are in some sense very similar to the Ks system, so I used the same logic here.
Fixes #484 Postgres 18 is released: https://www.postgresql.org/about/news/postgresql-18-released-3142/ PostGIS 3.6 is released: https://gitea.osgeo.org/postgis/postgis/raw/tag/3.6.0/NEWS https://hub.docker.com/r/imresamu/postgis/tags Using the base image `imresamu/postgis:18beta1-3.6.0alpha1-alpine`, the signal feature generation time goes from >2 minutes to 17 seconds 🎉 ~The current tag is a beta (Postgres) + alpha (PostGIS) release, but so far it looks good.~
see the [osmwiki](https://osm.wiki/Australian_Tagging_Guidelines/Railway_Signals#NSW_Other_Signs) page. Unfortunately many signs have tiny text (the New South Wales system is dumb...). Because of this, I've used a simplified icon with less text in a few cases (for example: [original](https://osm.wiki/File:NSW_Railway_Sign_End_Signalled_Authority.svg) vs [icon](https://github.com/k-yle/OpenRailwayMap-vector/blob/922505/symbols/au/nsw/signs/end_signalled_authority.svg)) <img width="136" height="113" alt="Image" src="https://github.com/user-attachments/assets/d8458273-0c25-4c45-afab-7d7362b71e91" /> <img width="96" height="115" alt="Image" src="https://github.com/user-attachments/assets/a819f1da-da3a-4853-b06b-1d06605031e1" /> <img width="141" height="142" alt="Image" src="https://github.com/user-attachments/assets/2d318b05-ebea-4651-92eb-31fd7e178817" /> <img width="117" height="135" alt="Image" src="https://github.com/user-attachments/assets/a5b83ee5-da82-4b73-940e-476b4bc59ad1" /> <br /> <img width="67" height="68" alt="Image" src="https://github.com/user-attachments/assets/627cd7d8-9c1e-47de-a3e4-dc33edd992c7" /> <img width="52" height="64" alt="Image" src="https://github.com/user-attachments/assets/0214beca-45df-434e-9dc6-49faa38c3316" /> <img width="71" height="71" alt="Image" src="https://github.com/user-attachments/assets/b32cf353-8d27-4726-b6e7-326d2825a070" /> <img width="56" height="55" alt="Image" src="https://github.com/user-attachments/assets/5ac1cd8f-931d-4f42-9af0-350e17733f34" /> <img width="53" height="45" alt="Image" src="https://github.com/user-attachments/assets/76dd72b9-6f84-4cf7-9cd5-1f44c199f2fd" /> <img width="75" height="70" alt="Image" src="https://github.com/user-attachments/assets/2b38b989-7c5c-4ad7-b9c5-5dc6e699e475" /> <img width="40" height="26" alt="Image" src="https://github.com/user-attachments/assets/ac057f44-3e11-410d-86e7-f9ec2ae8969f" /> <img width="57" height="49" alt="Image" src="https://github.com/user-attachments/assets/0f16bbd8-b224-4f1c-9999-6f9ca6418c5f" /> <img width="49" height="49" alt="Image" src="https://github.com/user-attachments/assets/54d56d9c-950c-4c16-9448-c3c9e4d6243f" /> <img width="44" height="40" alt="Image" src="https://github.com/user-attachments/assets/5590c552-eb63-4ca2-bf00-287be7da3420" /> <img width="93" height="77" alt="Image" src="https://github.com/user-attachments/assets/116fcdd0-c05b-4ddf-bfdb-06ec514afec7" /> <img width="51" height="53" alt="Image" src="https://github.com/user-attachments/assets/003af980-837f-4ad2-a515-8a6c02e89a82" /> <img width="57" height="62" alt="Image" src="https://github.com/user-attachments/assets/ea96ee0f-03bb-4694-ad68-66d5bbdefe4e" /> Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
Closes #498 Add tests for the OpenRailwayMap Lua Osm2psql import script. Some tests verify the importing logic, giving meaning to OpenStreetMap tags. Some tests verify the importing logic, providing a node/way/relation with certain tags, and verifying the expected rows with values in the Postgres tables.
This PR adds the most common signs for Victoria, Australia ([wiki page](https://wiki.openstreetmap.org/wiki/Australian_Tagging_Guidelines/Railway_Signals/VIC)). The rare one can be added in a different PR, along with signals. <img width="130" height="133" alt="image" src="https://github.com/user-attachments/assets/23ae7599-7d86-417e-b1c1-0db3d6ee2f31" /> <img width="76" height="72" alt="image" src="https://github.com/user-attachments/assets/e3e024c8-149b-4d4b-a234-162d69fcb3ab" /> <img width="110" height="116" alt="image" src="https://github.com/user-attachments/assets/754b7e2d-161e-4efc-b70e-bfdf6553148c" /> <img width="121" height="65" alt="image" src="https://github.com/user-attachments/assets/b2a11d5b-a5ee-4384-be55-b8eb6f9dbea2" /> <img width="142" height="104" alt="image" src="https://github.com/user-attachments/assets/c754a537-2b62-4dd5-90fd-903567f6787e" /> <img width="97" height="78" alt="image" src="https://github.com/user-attachments/assets/552ab82b-0f60-4620-8cc0-36ada1c73e61" /> <img width="108" height="100" alt="image" src="https://github.com/user-attachments/assets/4f768d64-09e2-4886-9b3f-91fdd4b241ac" /> <img width="139" height="134" alt="image" src="https://github.com/user-attachments/assets/c41bed66-316e-4e77-ab9a-630ab853ba52" /> <img width="96" height="94" alt="image" src="https://github.com/user-attachments/assets/c214604c-2030-48a4-8927-d395f3b2422f" />
This adds a German tram signal which occurs only once in OSM. Documentation: https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#St_25 Example: [13645263005](https://www.openstreetmap.org/node/13645263005) <img width="129" height="113" alt="image" src="https://github.com/user-attachments/assets/56162234-9bc9-400b-864c-abf66ab493f5" /> --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
For upgrading Martin to version 1.3.0 and newer. ## Attempt 1 With embedded font stack, generated from Noto Sans from Google Fonts, inspired by https://github.com/osm-americana/fontstack66. Used the https://crates.io/crates/build_pbf_glyphs library to generate protobuf glyphs to not require Martin for rendering the fonts. The above did not work well, and still output text with offsets when different character sets were used (http://localhost:8000/#view=15/35.68273/139.76938): <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/0fce6e26-ac94-4efe-9fd1-1f20d0fd5350" /> ## Attempt 2 Next steps, use the OpenHistorical font implementation as defined in https://github.com/OpenHistoricalMap/map-styles/tree/21595c330860524c69fc0d67e9682ee1639b812f/dist/fonts/OpenHistorical. This font is a combination of the Unifont and Noto Sans. Arabic does not look good (http://localhost:8000/#view=15.97/35.725858/51.197952): before <img width="922" height="582" alt="image" src="https://github.com/user-attachments/assets/3e02166c-27b3-4667-87c0-5843b88dd6d6" /> after <img width="849" height="460" alt="image" src="https://github.com/user-attachments/assets/652f71ea-a5f5-4328-bc6d-9f59c0d9a6d3" /> ## Decision Attempt 1, using the Americana font stack will be used. ## Results http://localhost:8000/#view=15.97/35.725858/51.197952 <img width="922" height="582" alt="image" src="https://github.com/user-attachments/assets/3e02166c-27b3-4667-87c0-5843b88dd6d6" /> http://localhost:8000/#view=15/37.99215/23.72618 <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/9746676a-9492-4af8-9ebe-b8832960c261" /> http://localhost:8000/#view=15/52.37768/4.90422 <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/5cbdf011-f83c-47d9-adbc-f64e37f86076" /> <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/c3a3435c-718a-4baf-9100-8e66e89b9f9d" /> <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/cdcca2fd-2eb4-4f2e-9f4d-ad5e0e0bf91d" /> http://localhost:8000/#view=15/39.86227/116.3698 <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/58b23e5b-e117-4793-acb6-55dde3499ba3" /> <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/dabd6159-08e7-476e-b9b9-49878fb1a793" /> http://localhost:8000/#view=15/35.68273/139.76938 <img width="1191" height="616" alt="image" src="https://github.com/user-attachments/assets/1a5c1995-dbc0-4640-8da7-6b606fd8bacf" /> <img width="1191" height="616" alt="image" src="https://github.com/user-attachments/assets/7961f112-12a4-4f75-ab39-0b924855c67a" /> http://localhost:8000/#view=16.28/37.554766/126.972871 <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/dfdec984-67fb-474d-aad8-ca9b7b2bf45b" /> <img width="977" height="718" alt="image" src="https://github.com/user-attachments/assets/8a28c1c4-7b06-4b35-9cbf-9f1d730da6ed" /> http://localhost:8000/#view=16.33/31.787959/35.203206 <img width="1191" height="616" alt="image" src="https://github.com/user-attachments/assets/f29a9e32-b04a-4305-8eab-553e38262ee6" /> http://localhost:8000/#view=15.84/13.759759/100.525786 <img width="849" height="460" alt="image" src="https://github.com/user-attachments/assets/581a335f-2c94-4149-874d-68912c618a75" />
Followup on #908. Related to #888. The materialized view openrailwaymap_facilities_for_ref_search already contains the merged index for reference searching. <img width="663" height="469" alt="image" src="https://github.com/user-attachments/assets/ab2d0721-037e-45d5-b547-ca35fc8bbad0" />
Followup from #920. <img width="1329" height="246" alt="image" src="https://github.com/user-attachments/assets/19ca9702-90a5-4f22-87de-76453cf4c843" />
For #796 Ensure every table has a primary key defined that is natural, based on OSM type, OSM ID and feature properties. When this primary key will be used for lookup of features using the API, the same OSM feature will always keep the same primary key for lookup, allowing caching the API responses even when the database is re-imported. Some tables import a single row per table per OSM object, and only of a single type. In those cases the OSM id is the primary key, and the OSM type is implicit. Some tables import more than a single row per table per OSM object, or of multiple OSM types. In those cases the the OSM ID and type are imported in `osm_id` and `osm_type` columns, and the column `id` is the primary key. See https://osm2pgsql.org/doc/manual.html#unique-ids For example, a grouped set of stations will have a persistent ID of `node-29030440-light_rail-light_rail-halt`, which can then be used in the API to query the grouped station: <img width="1329" height="246" alt="image" src="https://github.com/user-attachments/assets/5368caf2-9682-4a87-905e-d088b37ee911" />
For #796. If the popup content is loading, and the network or API is slow, a loading icon will be shown. Anything from 50ms loading time is noticable. The loading icon is embedded into the CSS, so no further image latency will occur to show the loading icon. With simulated network latency of 500ms: <img width="428" height="250" alt="image" src="https://github.com/user-attachments/assets/a1bd070f-0773-4cb9-9e34-5bbab0084ce9" />
Part of #796 Train protection layer: <img width="704" height="366" alt="image" src="https://github.com/user-attachments/assets/d3a9bf84-bad7-47f0-9a46-f7284c1381f9" /> <img width="704" height="366" alt="image" src="https://github.com/user-attachments/assets/d2ddb3f2-2352-44e9-9153-0bf10f1b588e" /> Operator layer: <img width="704" height="366" alt="image" src="https://github.com/user-attachments/assets/5505f55d-50b8-40ea-85c1-47f71fc4bf5d" /> <img width="704" height="366" alt="image" src="https://github.com/user-attachments/assets/d96acd25-6221-4b76-93bd-8f8fa70e97d5" />
For #796 <img width="961" height="454" alt="image" src="https://github.com/user-attachments/assets/f196e71a-3b93-417e-9538-45a669ad5149" /> http://localhost:8000/#view=18.55/52.615034/13.469823&style=electrification <img width="1014" height="549" alt="image" src="https://github.com/user-attachments/assets/f9afe402-d393-47c7-83a4-d8b4a5908358" />
For #796 <img width="809" height="351" alt="image" src="https://github.com/user-attachments/assets/525902ba-a471-425c-9e7b-d354736f3f60" />
For #796 <img width="850" height="406" alt="image" src="https://github.com/user-attachments/assets/471b7e9b-3ad2-4894-95aa-db955c53b681" /> <img width="850" height="406" alt="image" src="https://github.com/user-attachments/assets/620a69cd-6647-42c0-b627-d269b8f04874" />
For #796 <img width="465" height="375" alt="image" src="https://github.com/user-attachments/assets/f1378f4f-adf9-4a9e-975a-95dd05519c7a" /> <img width="465" height="375" alt="image" src="https://github.com/user-attachments/assets/bc3ed449-e405-4fa2-bf51-347d90052f4f" /> <img width="515" height="469" alt="image" src="https://github.com/user-attachments/assets/870ce14a-5d82-47ba-ac63-94ced78b5727" />
For #796 Clean up and add test for railway positions.
For #796 <img width="815" height="523" alt="image" src="https://github.com/user-attachments/assets/f84be5bf-8c86-4706-a4c2-81962a1388d0" />
For #796 Includes localized popup content <img width="1156" height="886" alt="image" src="https://github.com/user-attachments/assets/c4afa063-97b0-4a01-8e43-f06da53a79c4" /> <img width="1495" height="761" alt="image" src="https://github.com/user-attachments/assets/867ea75a-031d-4b4a-a182-802d7161fcaa" />
For #796 <img width="1121" height="850" alt="image" src="https://github.com/user-attachments/assets/8997fc58-4c8f-4cfe-bf48-d42971235791" />
Closes #811. This adds the tram signals G 3a, G 5, So 5a, So 11 and So 25 of the city of Dresden. It further replaces the signals So 11/12 of the city of Rostock by the more general signals St 23/24 applicable to all of East Germany, according to a [change](https://wiki.openstreetmap.org/wiki/DE_talk:OpenRailwayMap/Tagging_Trams_in_Germany#Vorfahrt_(gew%C3%A4hren)) of the wiki documentation. Thanks to @jonaes for the documentation and preparation! Signal documentation: [Dresden signals](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#Dresden), [St 23/24](https://wiki.openstreetmap.org/wiki/DE:OpenRailwayMap/Tagging_Trams_in_Germany#St_23) There are still open questions in the issue regarding So 11 and So 25 which should be answered before merging. ### Examples #### G 3a [10062241384](https://www.openstreetmap.org/node/10062241384) <img width="220" height="168" alt="Screenshot 2026-03-02 215942" src="https://github.com/user-attachments/assets/7a43a4d9-1032-463d-b4ba-9a16379ea408" /> #### G 5 [13604032234](https://www.openstreetmap.org/node/13604032234) <img width="212" height="148" alt="Screenshot 2026-03-02 220145" src="https://github.com/user-attachments/assets/aede1c4b-169d-49f2-9e07-29cabe957295" /> #### So 5a [1703088767](https://www.openstreetmap.org/node/1703088767) <img width="200" height="175" alt="Screenshot 2026-03-02 220449" src="https://github.com/user-attachments/assets/22ea1e40-a1f9-4df5-98a1-1a234739e457" /> #### So 11 [13604032252](https://www.openstreetmap.org/node/13604032252) <img width="236" height="208" alt="Screenshot 2026-03-02 223425" src="https://github.com/user-attachments/assets/b9d536cf-a4d2-46bd-8297-c8314e0751eb" /> #### So 25 [9288948889](https://www.openstreetmap.org/node/9288948889) <img width="318" height="387" alt="Screenshot 2026-03-09 220637" src="https://github.com/user-attachments/assets/810df7d9-ce10-4fd0-9775-e8d514e912f7" /> #### St 23/24 [13604032264](https://www.openstreetmap.org/node/13604032264) (St 23), [12514198727](https://www.openstreetmap.org/node/12514198727) (St 24) <img width="244" height="236" alt="Screenshot 2026-03-02 221819" src="https://github.com/user-attachments/assets/3669c273-a054-4e72-a245-c7bd6bf87768" /> [13612313997](https://www.openstreetmap.org/node/13612313997) (St 24 with tram icon), <img width="165" height="153" alt="Screenshot 2026-03-03 180755" src="https://github.com/user-attachments/assets/241150a1-8377-422d-93b7-b98edfa2a2ad" /> --------- Co-authored-by: Hidde Wieringa <hidde@hiddewieringa.nl>
For #796 <img width="850" height="455" alt="image" src="https://github.com/user-attachments/assets/7b1f78d9-89ce-4167-8dfc-a484e686c7e2" />
For #796 When #865 is implemented, the three signal layer views can be merged into one. Here is one incredible signal (https://www.openstreetmap.org/node/5747403095): <img width="1431" height="1113" alt="image" src="https://github.com/user-attachments/assets/e82f44d0-d887-4060-8752-0d5fbd0be5e3" /> <img width="1033" height="481" alt="image" src="https://github.com/user-attachments/assets/657e86bc-2b87-4f0e-a161-d99f78a843ec" /> <img width="1033" height="481" alt="image" src="https://github.com/user-attachments/assets/4df91293-58ff-4c35-9687-afc121bc521a" />
For #796 <img width="642" height="518" alt="image" src="https://github.com/user-attachments/assets/cc30e40b-7c2b-49f5-a6d1-76d0948415cd" />
For #796 <img width="908" height="640" alt="image" src="https://github.com/user-attachments/assets/080bc59a-7d04-4725-ae70-8d7d614233b1" />
For #796 <img width="799" height="592" alt="image" src="https://github.com/user-attachments/assets/58223f55-3ff1-41c7-8201-0a73104248bd" />
For #796 <img width="942" height="608" alt="image" src="https://github.com/user-attachments/assets/ca8fa4aa-c5f7-42e9-895e-a39514e3a3df" />
For #796 This is the last source to be migrated. <img width="942" height="608" alt="image" src="https://github.com/user-attachments/assets/439b20c7-7f3e-4e1a-811c-254e427610fd" />
Closes #796 Some cleanup after all sources have been migrated from tile data to API for full feature information.
Eisenbahnen und Verkehrsbetriebe Elbe-Weser GmbH <img width="850" height="693" alt="image" src="https://github.com/user-attachments/assets/ac51bc57-7c74-413e-8555-425d0cc7abe3" /> SWEG Schienenwege (dark blue) <img width="1248" height="858" alt="image" src="https://github.com/user-attachments/assets/67f3c924-e3a3-44db-9eb9-4f328f68e100" /> Rennsteigbahn GmbH & Co. KG (Note: some of the ways need re-tagging so it won't immediately exactly look like that) <img width="677" height="737" alt="image" src="https://github.com/user-attachments/assets/e8ce4e81-dbee-4797-851f-5117280dd1f8" /> BayernBahn Infra <img width="604" height="792" alt="image" src="https://github.com/user-attachments/assets/a9d1cb08-77b5-4423-a7f3-255973171cc6" />
Related to #945 The OpenHistoricalMap features catalog do not have a view defined, but should still show the popup from the available properties data. <img width="951" height="443" alt="image" src="https://github.com/user-attachments/assets/3d17cc7e-7853-42e7-900f-e1a74ffefab3" />
Extracted from work in #674 by @MatisseBE When the map is pitched, 30 degrees or more, directional features such as signals are shown only for the faced direction. In the pitched view, signals within 75 degrees of the faced direction are shown. The signal direction icon will be hidden in the pitched view, as only the facing signals are visible on the map. First render: <img width="1433" height="992" alt="image" src="https://github.com/user-attachments/assets/c6d8f424-2eaa-4b03-8f44-656765d922dd" /> Codewise there is quite some duplication in the style, because of the different layers. using the same kind of data. With #865 that can be reduced. TODO: - [x] signals with both directions - [x] icons above track when in pitched mode - [x] direction for buffer stop signals - [x] legend
This fixes a bug in #946 (comment) The pitched style was always rendered not checking if the pitch is actually > 30 degrees. ## Without pitch (`pitch <= 30`) **This is fixed by this PR** http://localhost:8000/#view=17.72/49.987131/14.365661/-137.6&style=signals This PR | Previously --- |--- <img width="338" height="855" alt="image" src="https://github.com/user-attachments/assets/ac623a1b-2340-4001-a71f-8fd836782e6f" /> | <img width="338" height="855" alt="image" src="https://github.com/user-attachments/assets/d9b49e3e-9120-49f5-a755-b8d99b9ce432" /> Similar changes are also in the other layers with pitching implemented, e.g. *Electricity* and *Speed* ### With pitch (`pitch > 30`) **This is not changed by this PR** http://localhost:8000/#view=17.72/49.987131/14.365661/-139.6/52&style=signals This PR | Previously --- |--- <img width="338" height="855" alt="image" src="https://github.com/user-attachments/assets/324468d4-e093-4904-a084-b4ae05a5c517" /> | <img width="338" height="855" alt="image" src="https://github.com/user-attachments/assets/2408fba8-3747-49a0-bb03-4c62a683c3e2" />
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!