diff --git a/.forgejo/workflows/deploy_hosted.yml b/.forgejo/workflows/deploy_hosted.yml
index a1708f7e5a..f5a2e371f9 100644
--- a/.forgejo/workflows/deploy_hosted.yml
+++ b/.forgejo/workflows/deploy_hosted.yml
@@ -47,7 +47,6 @@ jobs:
vitest --run test && npm run clean:tests
shell: bash
-
- name: Build files
run: npm run build
@@ -92,5 +91,3 @@ jobs:
fi
env:
FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
-
-
diff --git a/assets/layers/mobility_hub/Mobil.punkt.jpg b/assets/layers/mobility_hub/Mobil.punkt.jpg
new file mode 100644
index 0000000000..47b59f05c6
Binary files /dev/null and b/assets/layers/mobility_hub/Mobil.punkt.jpg differ
diff --git a/assets/layers/mobility_hub/Mobil.punkt.jpg.license b/assets/layers/mobility_hub/Mobil.punkt.jpg.license
new file mode 100644
index 0000000000..6a3044374d
--- /dev/null
+++ b/assets/layers/mobility_hub/Mobil.punkt.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Michael Glotz-Richter, Referatsleitung nachhaltige Mobilität, Senator für Umwelt, Bau und Verkehr Bremen
+SPDX-License-Identifier: CC-BY-SA-3.0
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/hoppin.jpg b/assets/layers/mobility_hub/hoppin.jpg
new file mode 100644
index 0000000000..ffba87b763
Binary files /dev/null and b/assets/layers/mobility_hub/hoppin.jpg differ
diff --git a/assets/layers/mobility_hub/hoppin.jpg.license b/assets/layers/mobility_hub/hoppin.jpg.license
new file mode 100644
index 0000000000..eb1c253a12
--- /dev/null
+++ b/assets/layers/mobility_hub/hoppin.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: SPQRobin
+SPDX-License-Identifier: CC-BY-SA-4.0
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/hub-gd-sign.jpg b/assets/layers/mobility_hub/hub-gd-sign.jpg
new file mode 100644
index 0000000000..93b6597259
Binary files /dev/null and b/assets/layers/mobility_hub/hub-gd-sign.jpg differ
diff --git a/assets/layers/mobility_hub/hub-gd-sign.jpg.license b/assets/layers/mobility_hub/hub-gd-sign.jpg.license
new file mode 100644
index 0000000000..75299f8845
--- /dev/null
+++ b/assets/layers/mobility_hub/hub-gd-sign.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Robin van der Linde
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/hub-gd.svg b/assets/layers/mobility_hub/hub-gd.svg
new file mode 100644
index 0000000000..6e69e0e4ab
--- /dev/null
+++ b/assets/layers/mobility_hub/hub-gd.svg
@@ -0,0 +1,60 @@
+
+
diff --git a/assets/layers/mobility_hub/hub-gd.svg.license b/assets/layers/mobility_hub/hub-gd.svg.license
new file mode 100644
index 0000000000..b02bde3d7d
--- /dev/null
+++ b/assets/layers/mobility_hub/hub-gd.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: OV-Bureau Groningen Drenthe
+SPDX-License-Identifier: LicenseRef-ALL-RIGHTS-RESERVED
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/hub.svg b/assets/layers/mobility_hub/hub.svg
new file mode 100644
index 0000000000..5b68cc05b8
--- /dev/null
+++ b/assets/layers/mobility_hub/hub.svg
@@ -0,0 +1,55 @@
+
+
+
+
diff --git a/assets/layers/mobility_hub/hub.svg.license b/assets/layers/mobility_hub/hub.svg.license
new file mode 100644
index 0000000000..75299f8845
--- /dev/null
+++ b/assets/layers/mobility_hub/hub.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Robin van der Linde
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/license_info.json b/assets/layers/mobility_hub/license_info.json
new file mode 100644
index 0000000000..a61717e013
--- /dev/null
+++ b/assets/layers/mobility_hub/license_info.json
@@ -0,0 +1,70 @@
+[
+ {
+ "path": "Mobil.punkt.jpg",
+ "license": "CC-BY-SA-3.0",
+ "authors": [
+ "Michael Glotz-Richter, Referatsleitung nachhaltige Mobilität, Senator für Umwelt, Bau und Verkehr Bremen"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Mobil.punkt_in_Bremen.jpg"
+ ]
+ },
+ {
+ "path": "hoppin.jpg",
+ "license": "CC-BY-SA-4.0",
+ "authors": [
+ "SPQRobin"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Hoppinzuil_station_Kapelle-op-den-Bos.jpg"
+ ]
+ },
+ {
+ "path": "hub-gd-sign.jpg",
+ "license": "CC0-1.0",
+ "authors": [
+ "Robin van der Linde"
+ ],
+ "sources": []
+ },
+ {
+ "path": "hub-gd.svg",
+ "license": "ALL-RIGHTS-RESERVED",
+ "authors": [
+ "OV-Bureau Groningen Drenthe"
+ ],
+ "sources": [
+ "https://www.reisviahub.nl/",
+ "https://ovbureau.nl/"
+ ]
+ },
+ {
+ "path": "hub.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "Robin van der Linde"
+ ],
+ "sources": []
+ },
+ {
+ "path": "logo-hoppin.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "original unknown; traced by M!dgard"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Hoppin_logo.svg"
+ ]
+ },
+ {
+ "path": "logo-hub.svg",
+ "license": "ALL-RIGHTS-RESERVED",
+ "authors": [
+ "Mijksenaar"
+ ],
+ "sources": [
+ "https://www.mobiliteitshubs.nl/documenten/211-de-identiteit-voor-hubs",
+ "https://www.zeeland.nl/sites/default/files/2022-07/2022-07-11%20Handboek%20identiteit%20hubs%20V1.pdf"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/logo-hoppin.svg b/assets/layers/mobility_hub/logo-hoppin.svg
new file mode 100644
index 0000000000..8c060c239c
--- /dev/null
+++ b/assets/layers/mobility_hub/logo-hoppin.svg
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/layers/mobility_hub/logo-hoppin.svg.license b/assets/layers/mobility_hub/logo-hoppin.svg.license
new file mode 100644
index 0000000000..ee8b987bb3
--- /dev/null
+++ b/assets/layers/mobility_hub/logo-hoppin.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: original unknown; traced by M!dgard
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/logo-hub.svg b/assets/layers/mobility_hub/logo-hub.svg
new file mode 100644
index 0000000000..ea9f6c8072
--- /dev/null
+++ b/assets/layers/mobility_hub/logo-hub.svg
@@ -0,0 +1,61 @@
+
+
+
+
diff --git a/assets/layers/mobility_hub/logo-hub.svg.license b/assets/layers/mobility_hub/logo-hub.svg.license
new file mode 100644
index 0000000000..8681106e95
--- /dev/null
+++ b/assets/layers/mobility_hub/logo-hub.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Mijksenaar
+SPDX-License-Identifier: LicenseRef-ALL-RIGHTS-RESERVED
\ No newline at end of file
diff --git a/assets/layers/mobility_hub/mobility_hub.json b/assets/layers/mobility_hub/mobility_hub.json
new file mode 100644
index 0000000000..d3d0cc7108
--- /dev/null
+++ b/assets/layers/mobility_hub/mobility_hub.json
@@ -0,0 +1,256 @@
+{
+ "credits": "Robin van der Linde",
+ "minzoom": 8,
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "marker": [
+ {
+ "icon": {
+ "mappings": [
+ {
+ "if": "network=Hoppin",
+ "then": "square_rounded"
+ }
+ ]
+ },
+ "color": "white"
+ },
+ {
+ "icon": {
+ "mappings": [
+ {
+ "if": {
+ "and": [
+ "_country=nl",
+ "network!=Groningen-Drenthe"
+ ]
+ },
+ "then": "./assets/layers/mobility_hub/logo-hub.svg"
+ },
+ {
+ "if": "network=Groningen-Drenthe",
+ "then": "./assets/layers/mobility_hub/hub-gd.svg"
+ },
+ {
+ "if": "network=Hoppin",
+ "then": "./assets/layers/mobility_hub/logo-hoppin.svg"
+ }
+ ],
+ "render": "./assets/layers/mobility_hub/hub.svg"
+ }
+ }
+ ],
+ "anchor": {
+ "render": "bottom",
+ "mappings": [
+ {
+ "if": "network=Groningen-Drenthe",
+ "then": "center"
+ }
+ ]
+ }
+ }
+ ],
+ "tagRenderings": [
+ "images",
+ {
+ "question": {
+ "en": "What is the name of this mobility hub?",
+ "nl": "Wat is de naam van deze mobiliteitshub?"
+ },
+ "id": "name",
+ "render": {
+ "en": "This mobility hub is called {name}",
+ "nl": "Deze mobiliteitshub heet {name}"
+ },
+ "freeform": {
+ "key": "name",
+ "type": "string",
+ "placeholder": {
+ "en": "Name of the mobility hub",
+ "nl": "Naam van de mobiliteitshub"
+ }
+ }
+ },
+ {
+ "question": {
+ "en": "To which network does this mobility hub belong to?",
+ "nl": "Bij welk netwerk hoort deze mobiliteitshub?"
+ },
+ "id": "network",
+ "freeform": {
+ "key": "network",
+ "type": "string",
+ "placeholder": {
+ "en": "Network for this mobility hub",
+ "nl": "Netwerk van deze mobiliteitshub"
+ },
+ "addExtraTags": [
+ "network:wikidata="
+ ]
+ },
+ "render": {
+ "en": "This mobility hub belongs to the network {network}",
+ "nl": "Deze mobiliteitshub hoort bij het netwerk {network}"
+ },
+ "mappings": [
+ {
+ "if": "network=Groningen-Drenthe",
+ "then": {
+ "en": "This mobility hub belongs to the Groningen-Drenthe network",
+ "nl": "Deze mobiliteitshub hoort bij het netwerk Groningen-Drenthe"
+ },
+ "hideInAnswer": "_country!=nl",
+ "icon": "./assets/layers/mobility_hub/hub-gd.svg",
+ "addExtraTags": [
+ "network:wikidata=Q108742233"
+ ]
+ },
+ {
+ "if": "network=Hoppin",
+ "then": {
+ "en": "This mobility hub belongs to the Hoppin network",
+ "nl": "Deze mobiliteitshub hoort bij het Hoppin netwerk"
+ },
+ "hideInAnswer": "_country!=be",
+ "icon": "./assets/layers/mobility_hub/logo-hoppin.svg",
+ "addExtraTags": [
+ "network:wikidata=Q124310711"
+ ]
+ },
+ {
+ "if": "network=Jelbi",
+ "then": {
+ "en": "This mobility hub belongs to the Jelbi network",
+ "nl": "Deze mobiliteitshub hoort bij het Jelbi netwerk"
+ },
+ "hideInAnswer": "_country!=de",
+ "addExtraTags": [
+ "network:wikidata=Q110948933"
+ ]
+ }
+ ]
+ },
+ "website",
+ {
+ "id": "physical_marker",
+ "question": {
+ "en": "What kind of physical marker is used to mark this mobility hub?",
+ "nl": "Wat voor fysieke markering is er voor deze mobiliteitshub?"
+ },
+ "mappings": [
+ {
+ "if": {
+ "and": [
+ "tourism=information",
+ "information=board"
+ ]
+ },
+ "then": {
+ "en": "This mobility hub is marked by a board, containing information about the hub",
+ "nl": "Deze mobiliteitshub is gemarkeerd door een bord, met informatie over de hub"
+ }
+ },
+ {
+ "if": {
+ "and": [
+ "tourism=information",
+ "information=terminal"
+ ]
+ },
+ "then": {
+ "en": "This mobility hub is marked by a sign with an electronic display",
+ "nl": "Deze mobiliteitshub is gemarkeerd door een bord met een elektronisch display"
+ }
+ },
+ {
+ "if": {
+ "and": [
+ "tourism=information",
+ "information=sign"
+ ]
+ },
+ "then": {
+ "en": "This mobility hub is marked by a simple sign showing only basic information like the logo or name",
+ "nl": "Deze mobiliteitshub is gemarkeerd door een eenvoudig bord met alleen simpele informatie zoals het logo of de naam"
+ }
+ }
+ ]
+ }
+ ],
+ "lineRendering": [
+ {
+ "width": 1,
+ "color": {
+ "render": "#00b26b",
+ "mappings": [
+ {
+ "if": "network=Groningen-Drenthe",
+ "then": "#0077db"
+ },
+ {
+ "if": "network=Jelbi",
+ "then": "#f0d722"
+ }
+ ]
+ }
+ }
+ ],
+ "credits:uid": 5093765,
+ "id": "mobility_hub",
+ "name": {
+ "en": "Mobility Hubs",
+ "nl": "Mobiliteitshubs"
+ },
+ "source": {
+ "osmTags": "amenity=mobility_hub"
+ },
+ "description": {
+ "en": "Mobility hubs are places where different kinds of transit meet, making it easy to switch between them. These places are usually part of a larger network or system.",
+ "nl": "Mobiliteitshubs zijn plaatsen waar verschillende soorten vervoer bij elkaar komen, waardoor het makkelijk is om te wisselen van vervoer. Deze plaatsen maken meestal deel uit van een groter netwerk of systeem."
+ },
+ "title": {
+ "render": {
+ "en": "Mobility hub",
+ "nl": "Mobiliteitshub"
+ },
+ "mappings": [
+ {
+ "if": "name~.*",
+ "then": {
+ "en": "Mobility hub {name}",
+ "nl": "Mobiliteitshub {name}"
+ }
+ }
+ ]
+ },
+ "presets": [
+ {
+ "title": {
+ "en": "a mobility hub",
+ "nl": "een mobiliteitshub"
+ },
+ "tags": [
+ "amenity=mobility_hub",
+ "tourism=information"
+ ],
+ "description": {
+ "en": "A mobility hub which is marked by a physical sign, usually with a logo.",
+ "nl": "Een mobiliteitshub die gemarkeerd is door een fysiek bord, meestal met een logo."
+ },
+ "exampleImages": [
+ "./assets/layers/mobility_hub/hub-gd-sign.jpg",
+ "./assets/layers/mobility_hub/hoppin.jpg",
+ "./assets/layers/mobility_hub/Mobil.punkt.jpg"
+ ]
+ }
+ ],
+ "allowMove": {
+ "enableImproveAccuracy": true,
+ "enableRelocation": false
+ }
+}
\ No newline at end of file
diff --git a/assets/themes/transit/transit.json b/assets/themes/transit/transit.json
index 313a6fb06e..ca501b050c 100644
--- a/assets/themes/transit/transit.json
+++ b/assets/themes/transit/transit.json
@@ -41,6 +41,7 @@
"Robin van der Linde"
],
"layers": [
+ "mobility_hub",
"transit_stops",
"transit_routes",
{
@@ -74,4 +75,4 @@
]
}
]
-}
+}
\ No newline at end of file