Merge branch 'develop' into feature/velopark

This commit is contained in:
Pieter Vander Vennet 2024-02-02 14:40:59 +01:00
commit 8651baee30
14 changed files with 175 additions and 31 deletions

View file

@ -1,7 +1,9 @@
{
"pointRendering": [
{
"location": ["start"],
"location": [
"start"
],
"marker": [
{
"icon": "square"
@ -9,7 +11,6 @@
],
"iconSize": "12,12"
},
{
"location": [
"point",
@ -97,7 +98,8 @@
"en": "A magic carpet (a conveyor belt on the ground)"
}
},
{"if": "aerialway=zip_line",
{
"if": "aerialway=zip_line",
"then": {
"en": "A zip line. (A touristical attraction where adventurous people go down at high speeds) "
}

View file

@ -8,7 +8,8 @@
"description": {
"en": "A charging station",
"nl": "Oplaadpunten",
"de": "Eine Ladestation"
"de": "Eine Ladestation",
"ca": "Una estació de càrrega"
},
"source": {
"osmTags": {
@ -277,7 +278,7 @@
"then": {
"en": "Only customers of the place this station belongs to can use this charging station<br/><span class='subtle'>E.g. a charging station operated by hotel which is only usable by their guests</span>",
"nl": "Enkel <b>klanten van de bijhorende plaats</b> mogen dit oplaadpunt gebruiken<br/><span class='subtle'>Bv. op de parking van een hotel en enkel toegankelijk voor klanten van dit hotel</span>",
"ca": "Sols clientes del lloc al que pertany aquest punt de càrrega poden utilitzar-lo <br/><span class='subtle'>p.e. un punt de càrrega d'un hotel que sols poden utilizar-los els hostes</span>",
"ca": "Sols cliente del lloc al que pertany aquest punt de càrrega poden utilitzar-lo <br/><span class='subtle'>p.e. un punt de càrrega d'un hotel que sols poden utilizar-los els hostes</span>",
"de": "Nur Kunden des Ortes, zu dem diese Station gehört, können diese Ladestation nutzen<br/><span class='subtle'>Z.B. eine von einem Hotel betriebene Ladestation, die nur von dessen Gästen genutzt werden kann</span>"
}
},
@ -2419,14 +2420,16 @@
"question": {
"en": "All vehicle types",
"nl": "Alle voertuigen",
"de": "Ladestationen für alle Fahrzeugtypen"
"de": "Ladestationen für alle Fahrzeugtypen",
"ca": "Tots els tipus de vehicles"
}
},
{
"question": {
"en": "Charging station for bicycles",
"nl": "Oplaadpunten voor fietsen",
"de": "Ladestationen für Fahrräder"
"de": "Ladestationen für Fahrräder",
"ca": "Punt de recàrrega per a bicicletes"
},
"osmTags": "bicycle=yes"
},
@ -2477,7 +2480,8 @@
"question": {
"en": "Has a <div style='display: inline-block'><b><b>Schuko wall plug</b> without ground pin (CEE7/4 type F)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/CEE7_4F.svg'/></div> connector",
"nl": "Heeft een <div style='display: inline-block'><b><b>Schuko stekker</b> zonder aardingspin (CEE7/4 type F)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/CEE7_4F.svg'/></div>",
"de": "Verfügt über einen <div style='display: inline-block'><b><b>Schuko-Stecker</b> ohne Erdungsstift (CEE7/4 Typ F)</b><img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/CEE7_4F.svg'/></div>"
"de": "Verfügt über einen <div style='display: inline-block'><b><b>Schuko-Stecker</b> ohne Erdungsstift (CEE7/4 Typ F)</b><img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/CEE7_4F.svg'/></div>",
"ca": "Té un connector <div style='display: inline-block'><b><b>Schuko</b> sense pin de terra (CEE7/4 tipus F)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/CEE7_4F.svg'/></div>"
},
"osmTags": "socket:schuko~*"
},
@ -2485,7 +2489,8 @@
"question": {
"en": "Has a <div style='display: inline-block'><b><b>European wall plug</b> with ground pin (CEE7/4 type E)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/TypeE.svg'/></div> connector",
"nl": "Heeft een <div style='display: inline-block'><b><b>Europese stekker</b> met aardingspin (CEE7/4 type E)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/TypeE.svg'/></div>",
"de": "Verfügt über einen <div style='display: inline-block'><b><b>europäischen Netzstecker</b> mit Erdungsstift (CEE7/4 Typ E)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/TypeE.svg'/></div> Anschluss"
"de": "Verfügt über einen <div style='display: inline-block'><b><b>europäischen Netzstecker</b> mit Erdungsstift (CEE7/4 Typ E)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/TypeE.svg'/></div> Anschluss",
"ca": "Té un connector <div style='display: inline-block'><b><b>endoll de paret Europeu</b> amb un pin de terra (CEE7/4 tipus F)</b><img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/TypeE.svg'/></div>"
},
"osmTags": "socket:typee~*"
},
@ -2493,7 +2498,8 @@
"question": {
"en": "Has a <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div> connector",
"nl": "Heeft een <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div>",
"de": "Verfügt über einen <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div> Stecker"
"de": "Verfügt über einen <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div> Stecker",
"ca": "Té un connector <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div>"
},
"osmTags": "socket:chademo~*"
},

View file

@ -644,7 +644,9 @@
"disused:shop:={shop}"
]
},
"omitDefaultDeleteReasons": ["disused"],
"omitDefaultDeleteReasons": [
"disused"
],
"nonDeleteMappings": [
{
"if": {

View file

@ -109,9 +109,11 @@
"source": {
"osmTags": {
"and": [
{"or":
[ "piste:type=downhill",
"piste:type=connection"]
{
"or": [
"piste:type=downhill",
"piste:type=connection"
]
},
"area!=yes"
]

View file

@ -81,7 +81,11 @@
{
"=marker": [
{
"icon": "circle:white;./assets/themes/onwheels/entrance.svg"
"icon": "circle",
"color": "white"
},
{
"icon": "./assets/themes/onwheels/entrance.svg"
}
]
}
@ -258,6 +262,7 @@
{
"builtin": "parking_spaces",
"override": {
"id": "parking_spaces_disabled",
"source": {
"osmTags": "parking_space=disabled"
},
@ -412,7 +417,11 @@
{
"=marker": [
{
"icon": "circle:white;./assets/themes/onwheels/elevator.svg"
"icon": "circle",
"color": "white"
},
{
"icon": "./assets/themes/onwheels/elevator.svg"
}
],
"iconSize": "40,40",

View file

@ -24,7 +24,7 @@
"pointRendering": [
{
"=iconSize": "25,25",
"=label":null
"=label": null
}
]
}

View file

@ -186,7 +186,6 @@
"includeMetaData": "Zahrnout metadata (poslední editor, vypočtené hodnoty, ...)",
"licenseInfo": "<h3>Upozornění na autorská práva</h3>Poskytovaná data jsou dostupná pod ODbL. Opětovné použití je zdarma pro jakýkoli účel, ale <ul><li>musí být uveden zdroj <b>© přispěvatelé OpenStreetMap</b><li><li>Jakákoli změna musí být publikována pod stejnou licencí</li>< /ul> Podrobnosti naleznete v úplném <a href='https://www.openstreetmap.org/copyright' target='_blank'>upozornění na autorská práva</a>.",
"noDataLoaded": "Zatím nejsou načtena žádná data. Brzy bude k dispozici ke stažení",
"pdf": {},
"title": "Stáhnout",
"uploadGpx": "Nahrajte svou trasu do OpenStreetMap"
},

View file

@ -217,6 +217,7 @@
},
"enableGeolocationForSafari": "Hast du das Popup zur Abfrage der Geo-Berechtigung nicht erhalten?",
"enableGeolocationForSafariLink": "Erfahre, wie du die Geo-Berechtigung in den Einstellungen aktivieren kannst",
"eraseValue": "Wert löschen",
"error": "Etwas ist schief gelaufen",
"example": "Beispiel",
"examples": "Beispiele",
@ -722,7 +723,8 @@
"fediverse": {
"description": "Eine Fediverse Adresse, häufig @username@server.tld",
"feedback": "Eine Fediverse Adresse besteht aus @username@server.tld oder ist ein Direktlink zu einem Profil",
"invalidHost": "{host} ist kein gültiger hostname"
"invalidHost": "{host} ist kein gültiger hostname",
"onYourServer": "Siehe und folge auf deinem Server"
},
"float": {
"description": "eine Zahl",

View file

@ -1894,6 +1894,32 @@
}
},
"charging_station": {
"description": "Una estació de càrrega",
"filter": {
"0": {
"options": {
"0": {
"question": "Tots els tipus de vehicles"
},
"1": {
"question": "Punt de recàrrega per a bicicletes"
}
}
},
"2": {
"options": {
"1": {
"question": "Té un connector <div style='display: inline-block'><b><b>Schuko</b> sense pin de terra (CEE7/4 tipus F)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/CEE7_4F.svg'/></div>"
},
"2": {
"question": "Té un connector <div style='display: inline-block'><b><b>endoll de paret Europeu</b> amb un pin de terra (CEE7/4 tipus F)</b><img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/TypeE.svg'/></div>"
},
"3": {
"question": "Té un connector <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div>"
}
}
}
},
"tagRenderings": {
"Authentication": {
"mappings": {
@ -2045,7 +2071,7 @@
"then": "Qualsevol persona pot utilitzar aquesta estació de recàrrega (pot ser calgui un pagament)"
},
"2": {
"then": "Sols clientes del lloc al que pertany aquest punt de càrrega poden utilitzar-lo <br/><span class='subtle'>p.e. un punt de càrrega d'un hotel que sols poden utilizar-los els hostes</span>"
"then": "Sols cliente del lloc al que pertany aquest punt de càrrega poden utilitzar-lo <br/><span class='subtle'>p.e. un punt de càrrega d'un hotel que sols poden utilizar-los els hostes</span>"
},
"3": {
"then": "S'ha de sol·licitar una <b>clau</b> per a utilitzar aquest punt de càrrega<br/><span class='subtle'>p.e un punt de càrrega operat per un hotel nomes utilitzable pel seus hostes, els quals reben una clau des de recepció per a desbloquejar el punt de càrrega</span>"

View file

@ -235,6 +235,63 @@
}
}
},
"aerialway": {
"description": "Various forms of transport for passengers and goods that use wires, including cable cars, gondolas, chair lifts, drag lifts, and zip lines. ",
"name": "Aerialways",
"pointRendering": {
"1": {
"label": {
"render": "{name}"
}
}
},
"tagRenderings": {
"length": {
"render": "This aerialway is {_length:km} kilometer long"
},
"type": {
"mappings": {
"0": {
"then": "This is a cable car where the car goes up and down again on the same cable."
},
"1": {
"then": "This is a gondola where the cars go around in continuous circles"
},
"2": {
"then": "An open chairlift with seats to sit on and open to the outside air."
},
"3": {
"then": "An aerialway which has both chairs and gondolas in the same continuous track"
},
"4": {
"then": "A drag lift"
},
"5": {
"then": "A drag lift with T-shaped carriers for two passengers at a time"
},
"6": {
"then": "A drag lift with L-shaped bars for a single passenger at a time"
},
"7": {
"then": "A drag lift with a platter to drag a single passenger at a time"
},
"8": {
"then": "A tow line which which drags skieers"
},
"9": {
"then": "A magic carpet (a conveyor belt on the ground)"
},
"10": {
"then": "A zip line. (A touristical attraction where adventurous people go down at high speeds) "
}
},
"question": "What type of aerialway is this?"
}
},
"title": {
"render": "Aerialway {name}"
}
},
"ambulancestation": {
"description": "An ambulance station is an area for storage of ambulance vehicles, medical equipment, personal protective equipment, and other medical supplies.",
"name": "Map of ambulance stations",
@ -8291,6 +8348,41 @@
"render": "Shower"
}
},
"ski_piste": {
"description": "Ski and snowboard pistes",
"name": "Ski and snowboard pistes",
"tagRenderings": {
"length": {
"render": "This part of the ski piste is {_length:km} kilometer long"
},
"piste_difficulty": {
"mappings": {
"0": {
"then": "Novice (green)"
},
"1": {
"then": "Easy (blue)"
},
"2": {
"then": "Intermediate (red)"
},
"3": {
"then": "Advanced (black)"
},
"4": {
"then": "Expert (orange/double black)"
},
"5": {
"then": "Freeride"
}
},
"question": "What is the difficulty of this piste?"
}
},
"title": {
"render": "Ski piste {name}"
}
},
"slow_roads": {
"description": "All carfree roads",
"name": "Paths, carfree and slow roads",

View file

@ -186,7 +186,6 @@
"includeMetaData": "Dołącz metadane (ostatni edytor, obliczone wartości, ...)",
"licenseInfo": "<h3>Informacja o prawach autorskich</h3>Podane dane są dostępne na licencji ODbL. Ponowne użycie jest darmowe, ale musi być <ul><li>podane źródło <b>© autorzy OpenStreetMap</b> <li><li>Jakakolwiek zmiana musi być opublikowana na tej samej licencji.</li></ul> Proszę przeczytać pełną <a href='https://www.openstreetmap.org/copyright' target='_blank'>informację o prawach autorskich</a> dla szczegółów.",
"noDataLoaded": "Nie załadowano jeszcze żadnych danych. Pobranie będzie wkrótce dostępne",
"pdf": {},
"title": "Pobierz",
"uploadGpx": "Prześlij swój ślad do OpenStreetMap"
},

View file

@ -1311,6 +1311,10 @@
"shortDescription": "Sidewalk mapping",
"title": "Sidewalks"
},
"ski": {
"description": "Everything you need to go skiing",
"title": "Ski pistes and aerialways"
},
"sport_pitches": {
"description": "A sport pitch is an area where sports are played",
"shortDescription": "A map showing sport pitches",

View file

@ -79,7 +79,6 @@ export default class PointRenderingConfig extends WithContextLoader {
}
})
this.marker = (json.marker ?? []).map((m) => new IconConfig(<any>m))
if (json.css !== undefined) {
this.cssDef = this.tr("css", undefined)
@ -199,13 +198,14 @@ export default class PointRenderingConfig extends WithContextLoader {
if (options?.noSize) {
iconAndBadges.SetClass("w-full h-full")
} else {
tags.map((tags) => this.iconSize.GetRenderValue(tags).Subs(tags).txt ?? "[40,40]").map(
(size) => {
const [iconW, iconH] = size.split(",").map((x) => num(x))
iconAndBadges.SetStyle(`width: ${iconW}px; height: ${iconH}px`)
}
)
}
tags.map((tags) => this.iconSize.GetRenderValue(tags).Subs(tags).txt ?? "[40,40]").map(
(size) => {
const [iconW, iconH] = size.split(",").map((x) => num(x))
iconAndBadges.SetStyle(`width: ${iconW}px; height: ${iconH}px`)
}
)
const css = this.cssDef?.GetRenderValue(tags.data)?.txt
const cssClasses = this.cssClasses?.GetRenderValue(tags.data)?.txt

View file

@ -12,6 +12,7 @@
import NextButton from "../../Base/NextButton.svelte"
import ToSvelte from "../../Base/ToSvelte.svelte"
import BaseUIElement from "../../BaseUIElement"
import Combine from "../../Base/Combine"
/**
* This component lists all the presets and allows the user to select one
@ -54,9 +55,9 @@
for (const preset of layer.presets) {
const tags = TagUtils.KVtoProperties(preset.tags ?? [])
const icon: BaseUIElement = layer.mapRendering[0]
.RenderIcon(new ImmutableStore<any>(tags))
.html.SetClass("w-12 h-12 block relative mr-4")
const markers = layer.mapRendering.map((mr, i) => mr.RenderIcon(new ImmutableStore<any>(tags), {noSize: i == 0})
.html.SetClass(i == 0 ? "w-full h-full" : ""))
const icon: BaseUIElement = new Combine(markers.map(m => new Combine([m]).SetClass("absolute top-0 left-0 w-full h-full flex justify-around items-center"))).SetClass("w-12 h-12 block relative mr-4")
const description = preset.description?.FirstSentence()