Remove roamingRenderings as feature, overrideAll is easier to use

This commit is contained in:
Pieter Vander Vennet 2021-10-19 02:13:50 +02:00
parent 1fb45ad75a
commit 4153193500
5 changed files with 934 additions and 925 deletions

View file

@ -343,263 +343,265 @@
}, },
"viewpoint" "viewpoint"
], ],
"roamingRenderings": [ "overrideAll": {
{ "tagRenderings+": [
"#": "Access tag", {
"condition": { "id": "Access tag",
"and": [ "condition": {
"tourism!~viewpoint" "and": [
"tourism!~viewpoint"
]
},
"render": {
"nl": "De toegankelijkheid van dit gebied is: {access:description}"
},
"question": {
"nl": "Is dit gebied toegankelijk?"
},
"freeform": {
"key": "access:description",
"addExtraTags": [
"access="
]
},
"mappings": [
{
"if": {
"and": [
"access:description=",
"access=",
"leisure=park"
]
},
"then": {
"nl": "Dit gebied is vrij toegankelijk"
},
"hideInAnswer": true
},
{
"if": {
"and": [
"access:description=",
"access=yes",
"fee="
]
},
"then": {
"nl": "Vrij toegankelijk"
}
},
{
"if": {
"and": [
"access:description=",
"access=no",
"fee="
]
},
"then": {
"nl": "Niet toegankelijk"
}
},
{
"if": {
"and": [
"access:description=",
"access=private",
"fee="
]
},
"then": {
"nl": "Niet toegankelijk, want privégebied"
}
},
{
"if": {
"and": [
"access:description=",
"access=permissive",
"fee="
]
},
"then": {
"nl": "Toegankelijk, ondanks dat het privegebied is"
}
},
{
"if": {
"and": [
"access:description=",
"access=guided",
"fee="
]
},
"then": {
"nl": "Enkel toegankelijk met een gids of tijdens een activiteit"
}
},
{
"if": {
"and": [
"access:description=",
"access=yes",
"fee=yes"
]
},
"then": {
"nl": "Toegankelijk mits betaling"
}
}
] ]
}, },
"render": { {
"nl": "De toegankelijkheid van dit gebied is: {access:description}" "id": "Operator tag",
}, "render": {
"question": { "nl": "Beheer door {operator}"
"nl": "Is dit gebied toegankelijk?"
},
"freeform": {
"key": "access:description",
"addExtraTags": [
"access="
]
},
"mappings": [
{
"if": {
"and": [
"access:description=",
"access=",
"leisure=park"
]
},
"then": {
"nl": "Dit gebied is vrij toegankelijk"
},
"hideInAnswer": true
}, },
{ "question": {
"if": { "nl": "Wie beheert dit gebied?"
"and": [
"access:description=",
"access=yes",
"fee="
]
},
"then": {
"nl": "Vrij toegankelijk"
}
}, },
{ "freeform": {
"if": { "key": "operator"
"and": [
"access:description=",
"access=no",
"fee="
]
},
"then": {
"nl": "Niet toegankelijk"
}
}, },
{ "mappings": [
"if": { {
"and": [ "if": {
"access:description=", "and": [
"access=private", "leisure=park",
"fee=" "operator="
] ]
},
"then": "Beheer door de gemeente",
"hideInAnswer": true
}, },
"then": { {
"nl": "Niet toegankelijk, want privégebied" "if": {
} "and": [
}, "operator=Natuurpunt"
{ ]
"if": { },
"and": [ "then": {
"access:description=", "nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door Natuurpunt"
"access=permissive", }
"fee="
]
}, },
"then": { {
"nl": "Toegankelijk, ondanks dat het privegebied is" "if": {
} "and": [
}, "operator~(n|N)atuurpunt.*"
{ ]
"if": { },
"and": [ "then": {
"access:description=", "nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door {operator}"
"access=guided", },
"fee=" "hideInAnswer": true
]
}, },
"then": { {
"nl": "Enkel toegankelijk met een gids of tijdens een activiteit" "if": {
} "and": [
}, "operator=Agentschap Natuur en Bos"
{ ]
"if": { },
"and": [ "then": {
"access:description=", "nl": "<img src=\"./assets/themes/buurtnatuur/ANB.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door het Agentschap Natuur en Bos"
"access=yes", }
"fee=yes"
]
}, },
"then": { {
"nl": "Toegankelijk mits betaling" "if": {
"and": [
"operator:type=private"
]
},
"then": "Beheer door een privépersoon",
"hideInAnswer": true
},
{
"if": {
"and": [
"operator:type=private",
"operator="
]
},
"then": "Beheer door een privépersoon"
} }
],
"condition": {
"and": [
"leisure!~park",
"tourism!~viewpoint"
]
} }
]
},
{
"#": "Operator tag",
"render": {
"nl": "Beheer door {operator}"
}, },
"question": { {
"nl": "Wie beheert dit gebied?" "id": "Non-editable description {description}",
}, "render": {
"freeform": { "nl": "Extra info: <i>{description}</i>"
"key": "operator"
},
"mappings": [
{
"if": {
"and": [
"leisure=park",
"operator="
]
},
"then": "Beheer door de gemeente",
"hideInAnswer": true
}, },
{ "freeform": {
"if": { "key": "description"
"and": [
"operator=Natuurpunt"
]
},
"then": {
"nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door Natuurpunt"
}
},
{
"if": {
"and": [
"operator~(n|N)atuurpunt.*"
]
},
"then": {
"nl": "<img src=\"./assets/themes/buurtnatuur/Natuurpunt.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door {operator}"
},
"hideInAnswer": true
},
{
"if": {
"and": [
"operator=Agentschap Natuur en Bos"
]
},
"then": {
"nl": "<img src=\"./assets/themes/buurtnatuur/ANB.jpg\" style=\"width:1.5em\">Dit gebied wordt beheerd door het Agentschap Natuur en Bos"
}
},
{
"if": {
"and": [
"operator:type=private"
]
},
"then": "Beheer door een privépersoon",
"hideInAnswer": true
},
{
"if": {
"and": [
"operator:type=private",
"operator="
]
},
"then": "Beheer door een privépersoon"
} }
],
"condition": {
"and": [
"leisure!~park",
"tourism!~viewpoint"
]
}
},
{
"#": "Non-editable description {description}",
"render": {
"nl": "Extra info: <i>{description}</i>"
}, },
"freeform": { {
"key": "description" "id": "Editable description {description:0}",
} "question": "Is er extra info die je kwijt wil?<br/><span class='subtle'>De <i>naam</i> van het gebied wordt in de volgende vraag gesteld</span>",
}, "render": {
{ "nl": "Extra info via buurtnatuur.be: <i>{description:0}</i>"
"#": "Editable description {description:0}", },
"question": "Is er extra info die je kwijt wil?<br/><span class='subtle'>De <i>naam</i> van het gebied wordt in de volgende vraag gesteld</span>", "freeform": {
"render": { "key": "description:0"
"nl": "Extra info via buurtnatuur.be: <i>{description:0}</i>"
},
"freeform": {
"key": "description:0"
}
},
{
"#": "Name:nl-tag",
"render": {
"nl": "Dit gebied heet {name:nl}"
},
"question": {
"nl": "Wat is de Nederlandstalige naam van dit gebied?"
},
"freeform": {
"key": "name:nl"
},
"condition": {
"and": [
"name:nl~*",
"viewpoint!~tourism"
]
}
},
{
"#": "Name tag",
"render": {
"nl": "Dit gebied heet {name}"
},
"question": {
"nl": "Wat is de naam van dit gebied?"
},
"freeform": {
"key": "name",
"addExtraTags": [
"noname="
]
},
"condition": {
"and": [
"name:nl=",
"tourism!~viewpoint"
]
},
"mappings": [
{
"if": {
"and": [
"noname=yes",
"name="
]
},
"then": {
"nl": "Dit gebied heeft geen naam"
}
} }
] },
} {
] "id": "Name:nl-tag",
"render": {
"nl": "Dit gebied heet {name:nl}"
},
"question": {
"nl": "Wat is de Nederlandstalige naam van dit gebied?"
},
"freeform": {
"key": "name:nl"
},
"condition": {
"and": [
"name:nl~*",
"viewpoint!~tourism"
]
}
},
{
"id": "Name tag",
"render": {
"nl": "Dit gebied heet {name}"
},
"question": {
"nl": "Wat is de naam van dit gebied?"
},
"freeform": {
"key": "name",
"addExtraTags": [
"noname="
]
},
"condition": {
"and": [
"name:nl=",
"tourism!~viewpoint"
]
},
"mappings": [
{
"if": {
"and": [
"noname=yes",
"name="
]
},
"then": {
"nl": "Dit gebied heeft geen naam"
}
}
]
}
]
}
} }

View file

@ -1078,66 +1078,70 @@
] ]
} }
], ],
"roamingRenderings": [ "overrideAll": {
{ "tagRenderings+": [
"render": { {
"en": "This place is operated by {operator}", "id": "operator",
"ja": "この場所は{operator}によって運営されます", "render": {
"it": "Questo luogo è gestito da {operator}", "en": "This place is operated by {operator}",
"fr": "Ce site est exploité par {operator}", "ja": "この場所は{operator}によって運営されます",
"de": "Dieser Ort wird betrieben von {operator}" "it": "Questo luogo è gestito da {operator}",
}, "fr": "Ce site est exploité par {operator}",
"question": { "de": "Dieser Ort wird betrieben von {operator}"
"en": "Who operates this place?",
"ja": "この店は誰が経営しているんですか?",
"it": "Chi gestisce questo luogo?",
"fr": "Qui est lexploitant du site ?",
"de": "Wer betreibt diesen Ort?"
},
"freeform": {
"key": "operator"
}
},
{
"question": {
"en": "Does this place have a power supply?",
"ja": "この場所に電源はありますか?",
"it": "Questo luogo fornisce corrente elettrica?",
"fr": "Ce site a-til une source délectricité ?",
"de": "Hat dieser Ort eine Stromversorgung?"
},
"mappings": [
{
"if": {
"and": [
"power_supply=yes"
]
},
"then": {
"en": "This place has a power supply",
"id": "Tempat ini memiliki catu daya",
"ja": "この場所には電源があります",
"it": "Questo luogo fornisce corrente elettrica",
"fr": "Ce site a une source dalimentation",
"de": "Dieser Ort hat eine Stromversorgung"
}
}, },
{ "question": {
"if": { "en": "Who operates this place?",
"and": [ "ja": "この店は誰が経営しているんですか?",
"power_supply=no" "it": "Chi gestisce questo luogo?",
] "fr": "Qui est lexploitant du site ?",
}, "de": "Wer betreibt diesen Ort?"
"then": { },
"en": "This place does not have power supply", "freeform": {
"id": "Tempat ini tidak memiliki sumber listrik", "key": "operator"
"ja": "この場所には電源がありません",
"it": "Questo luogo non fornisce corrente elettrica",
"fr": "Ce site na pas de source dalimentation",
"de": "Dieser Ort hat keine Stromversorgung"
}
} }
] },
} {
] "id": "power_supply",
"question": {
"en": "Does this place have a power supply?",
"ja": "この場所に電源はありますか?",
"it": "Questo luogo fornisce corrente elettrica?",
"fr": "Ce site a-til une source délectricité ?",
"de": "Hat dieser Ort eine Stromversorgung?"
},
"mappings": [
{
"if": {
"and": [
"power_supply=yes"
]
},
"then": {
"en": "This place has a power supply",
"id": "Tempat ini memiliki catu daya",
"ja": "この場所には電源があります",
"it": "Questo luogo fornisce corrente elettrica",
"fr": "Ce site a une source dalimentation",
"de": "Dieser Ort hat eine Stromversorgung"
}
},
{
"if": {
"and": [
"power_supply=no"
]
},
"then": {
"en": "This place does not have power supply",
"id": "Tempat ini tidak memiliki sumber listrik",
"ja": "この場所には電源がありません",
"it": "Questo luogo non fornisce corrente elettrica",
"fr": "Ce site na pas de source dalimentation",
"de": "Dieser Ort hat keine Stromversorgung"
}
}
]
}
]
}
} }

File diff suppressed because it is too large Load diff

View file

@ -43,105 +43,6 @@
"maxZoom": 12, "maxZoom": 12,
"minNeededElements": 200 "minNeededElements": 200
}, },
"roamingRenderings": [
{
"question": {
"nl": "Is deze straat een fietsstraat?",
"en": "Is this street a cyclestreet?",
"ja": "この通りはcyclestreetですか?",
"nb_NO": "Er denne gaten en sykkelvei?",
"de": "Ist diese Straße eine Fahrradstraße?"
},
"mappings": [
{
"if": {
"and": [
"cyclestreet=yes",
"maxspeed=30",
"overtaking:motor_vehicle=no",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat is een fietsstraat (en dus zone 30)",
"en": "This street is a cyclestreet (and has a speed limit of 30 km/h)",
"ja": "cyclestreet(最高速度は30km/h)",
"nb_NO": "Denne gaten er en sykkelvei (og har en fartsgrense på 30 km/t)",
"de": "Diese Straße ist eine Fahrradstraße (mit einer Geschwindigkeitsbegrenzung von 30 km/h)"
}
},
{
"if": {
"and": [
"cyclestreet=yes",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat i een fietsstraat",
"en": "This street is a cyclestreet",
"ja": "この通りはcyclestreetだ",
"nb_NO": "Denne gaten er en sykkelvei",
"de": "Diese Straße ist eine Fahrradstraße"
},
"hideInAnswer": true
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=yes"
]
},
"then": {
"nl": "Deze straat wordt binnenkort een fietsstraat",
"en": "This street will become a cyclstreet soon",
"ja": "この通りはまもなくcyclstreetになるだろう",
"nb_NO": "Denne gaten vil bli sykkelvei ganske snart",
"de": "Diese Straße wird bald eine Fahrradstraße sein"
}
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=",
"overtaking:motor_vehicle="
]
},
"then": {
"nl": "Deze straat is geen fietsstraat",
"en": "This street is not a cyclestreet",
"ja": "この通りはcyclestreetではない",
"nb_NO": "Denne gaten er ikke en sykkelvei",
"it": "Questa strada non è una strada ciclabile",
"de": "Diese Straße ist keine Fahrradstraße"
}
}
]
},
{
"question": {
"nl": "Wanneer wordt deze straat een fietsstraat?",
"en": "When will this street become a cyclestreet?",
"ja": "この通りはいつcyclestreetになるんですか?",
"it": "Questa strada diventerà una strada ciclabile quando?",
"de": "Wann wird diese Straße eine Fahrradstraße?"
},
"render": {
"nl": "Deze straat wordt fietsstraat op {cyclestreet:start_date}",
"en": "This street will become a cyclestreet at {cyclestreet:start_date}",
"ja": "この通りは{cyclestreet:start_date}に、cyclestreetになります",
"it": "Questa strada diventerà una strada ciclabile dal {cyclestreet:start_date}",
"de": "Diese Straße wird am {cyclestreet:start_date} zu einer Fahrradstraße"
},
"condition": "proposed:cyclestreet=yes",
"freeform": {
"type": "date",
"key": "cyclestreet:start_date"
}
}
],
"layers": [ "layers": [
{ {
"id": "fietsstraat", "id": "fietsstraat",
@ -304,6 +205,105 @@
} }
], ],
"overrideAll": { "overrideAll": {
"allowSplit": true "allowSplit": true,
"tagRenderings+": [
{"id": "is_cyclestreet",
"question": {
"nl": "Is deze straat een fietsstraat?",
"en": "Is this street a cyclestreet?",
"ja": "この通りはcyclestreetですか?",
"nb_NO": "Er denne gaten en sykkelvei?",
"de": "Ist diese Straße eine Fahrradstraße?"
},
"mappings": [
{
"if": {
"and": [
"cyclestreet=yes",
"maxspeed=30",
"overtaking:motor_vehicle=no",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat is een fietsstraat (en dus zone 30)",
"en": "This street is a cyclestreet (and has a speed limit of 30 km/h)",
"ja": "cyclestreet(最高速度は30km/h)",
"nb_NO": "Denne gaten er en sykkelvei (og har en fartsgrense på 30 km/t)",
"de": "Diese Straße ist eine Fahrradstraße (mit einer Geschwindigkeitsbegrenzung von 30 km/h)"
}
},
{
"if": {
"and": [
"cyclestreet=yes",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat i een fietsstraat",
"en": "This street is a cyclestreet",
"ja": "この通りはcyclestreetだ",
"nb_NO": "Denne gaten er en sykkelvei",
"de": "Diese Straße ist eine Fahrradstraße"
},
"hideInAnswer": true
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=yes"
]
},
"then": {
"nl": "Deze straat wordt binnenkort een fietsstraat",
"en": "This street will become a cyclstreet soon",
"ja": "この通りはまもなくcyclstreetになるだろう",
"nb_NO": "Denne gaten vil bli sykkelvei ganske snart",
"de": "Diese Straße wird bald eine Fahrradstraße sein"
}
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=",
"overtaking:motor_vehicle="
]
},
"then": {
"nl": "Deze straat is geen fietsstraat",
"en": "This street is not a cyclestreet",
"ja": "この通りはcyclestreetではない",
"nb_NO": "Denne gaten er ikke en sykkelvei",
"it": "Questa strada non è una strada ciclabile",
"de": "Diese Straße ist keine Fahrradstraße"
}
}
]
},
{"id": "future_cyclestreet",
"question": {
"nl": "Wanneer wordt deze straat een fietsstraat?",
"en": "When will this street become a cyclestreet?",
"ja": "この通りはいつcyclestreetになるんですか?",
"it": "Questa strada diventerà una strada ciclabile quando?",
"de": "Wann wird diese Straße eine Fahrradstraße?"
},
"render": {
"nl": "Deze straat wordt fietsstraat op {cyclestreet:start_date}",
"en": "This street will become a cyclestreet at {cyclestreet:start_date}",
"ja": "この通りは{cyclestreet:start_date}に、cyclestreetになります",
"it": "Questa strada diventerà una strada ciclabile dal {cyclestreet:start_date}",
"de": "Diese Straße wird am {cyclestreet:start_date} zu einer Fahrradstraße"
},
"condition": "proposed:cyclestreet=yes",
"freeform": {
"type": "date",
"key": "cyclestreet:start_date"
}
}
]
} }
} }

View file

@ -118,6 +118,9 @@ class LayerOverviewUtils {
if (themeFile["units"] !== undefined) { if (themeFile["units"] !== undefined) {
themeErrorCount.push("The theme " + themeFile.id + " has units defined - these should be defined on the layer instead. (Hint: use overrideAll: { '+units': ... }) ") themeErrorCount.push("The theme " + themeFile.id + " has units defined - these should be defined on the layer instead. (Hint: use overrideAll: { '+units': ... }) ")
} }
if (themeFile["roamingRenderings"] !== undefined) {
themeErrorCount.push("Theme " + themeFile.id + " contains an old 'roamingRenderings'. Use an 'overrideAll' instead")
}
for (const layer of themeFile.layers) { for (const layer of themeFile.layers) {
if (typeof layer === "string") { if (typeof layer === "string") {
if (!knownLayerIds.has(layer)) { if (!knownLayerIds.has(layer)) {
@ -213,4 +216,4 @@ class LayerOverviewUtils {
} }
} }
new LayerOverviewUtils().main(process.argv) new LayerOverviewUtils().main(process.argv)