forked from MapComplete/MapComplete
Merge branch 'develop' into feature/360-view
This commit is contained in:
commit
96878c1d63
39 changed files with 480 additions and 81 deletions
|
@ -54,6 +54,7 @@ jobs:
|
|||
- name: Zipping dist file
|
||||
run: |
|
||||
BRANCH=$(echo ${{ github.ref_name }} | sed 's/\//-/g')
|
||||
rm -rf /tmp/${BRANCH}
|
||||
mv dist /tmp/${BRANCH}
|
||||
cd /tmp
|
||||
zip ${BRANCH}.zip -r ${BRANCH}/*
|
||||
|
@ -72,7 +73,7 @@ jobs:
|
|||
- name: unzipping remote file
|
||||
run: |
|
||||
BRANCH=$(echo ${{ github.ref_name }} | sed 's/\//-/g')
|
||||
ssh hetzner "cd /root/staging && rm -rf ${BRANCH} && unzip ${BRANCH}.zip && rm -rf /root/public/${BRANCH} && mv /root/staging/${BRANCH}/ /root/public/ && rm ${BRANCH}.zip"
|
||||
ssh hetzner "cd /root/staging && rm -rf ${BRANCH} && unzip ${BRANCH}.zip && rm -rf /root/public/${BRANCH} && mv /root/staging/${BRANCH}/ /root/public/ && date --iso > /root/staging/${BRANCH}/date.txt && rm ${BRANCH}.zip"
|
||||
|
||||
- name: Comment on the PR
|
||||
run: |
|
||||
|
|
|
@ -241,6 +241,30 @@
|
|||
}
|
||||
},
|
||||
"opening_hours_24_7",
|
||||
{
|
||||
"builtin": "indoor",
|
||||
"override": {
|
||||
"question": {
|
||||
"en": "Is this ATM located indoors?",
|
||||
"nl": "Bevindt deze geldautomaat zich binnen?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "This ATM is located indoors",
|
||||
"nl": "Deze geldautomaat bevindt zich binnen"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "indoor=no",
|
||||
"then": {
|
||||
"en": "This ATM is located outdoors",
|
||||
"nl": "Deze geldautomaat bevindt zich buiten"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "cash_out",
|
||||
"question": {
|
||||
|
|
|
@ -574,6 +574,29 @@
|
|||
"es": "Diámetro de los acoplamientos: {couplings:diameters}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ref",
|
||||
"question": {
|
||||
"en": "What is the reference number of this hydrant?",
|
||||
"nl": "Wat is het referentienummer van deze brandkraan?"
|
||||
},
|
||||
"questionHint": {
|
||||
"en": "This can usually be found on the hydrant or on a nearby sign.",
|
||||
"nl": "Dit nummer is meestal te vinden op de brandkraan of op een nabijgelegen bord."
|
||||
},
|
||||
"freeform": {
|
||||
"key": "ref",
|
||||
"placeholder": {
|
||||
"en": "Reference number of the hydrant",
|
||||
"nl": "Referentienummer van de brandkraan"
|
||||
},
|
||||
"type": "string"
|
||||
},
|
||||
"render": {
|
||||
"en": "Reference number: {ref}",
|
||||
"nl": "Referentienummer: {ref}"
|
||||
}
|
||||
},
|
||||
"images"
|
||||
],
|
||||
"allowMove": {
|
||||
|
|
|
@ -82,6 +82,26 @@
|
|||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
"id": "utility_pole",
|
||||
"question": {
|
||||
"en": "Is this lamp mounted on a utility pole?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "man_made=utility_pole",
|
||||
"then": {
|
||||
"en": "This lamp is mounted on a utility pole"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "man_made=",
|
||||
"then": {
|
||||
"en": "This lamp is not mounted on a utility pole"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "ref",
|
||||
"render": {
|
||||
|
@ -104,7 +124,10 @@
|
|||
},
|
||||
"freeform": {
|
||||
"key": "ref"
|
||||
}
|
||||
},
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "support",
|
||||
|
@ -194,6 +217,10 @@
|
|||
"cs": "Toto svítidlo se montuje na stěnu pomocí kovové tyče"
|
||||
}
|
||||
}
|
||||
],
|
||||
"condition": "man_made!=utility_pole",
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -206,7 +233,12 @@
|
|||
"ca": "Com està muntat aquest fanal al pal?",
|
||||
"cs": "Jak se tato lampa montuje na sloup?"
|
||||
},
|
||||
"condition": "support=pole",
|
||||
"condition": {
|
||||
"and": [
|
||||
"support=pole",
|
||||
"man_made!=utility_pole"
|
||||
]
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "lamp_mount=straight_mast",
|
||||
|
@ -230,6 +262,9 @@
|
|||
"cs": "Tato lampa je umístěna na konci ohnutého stožáru"
|
||||
}
|
||||
}
|
||||
],
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -376,6 +411,9 @@
|
|||
"cs": "Tato lampa svítí pomocí plynu"
|
||||
}
|
||||
}
|
||||
],
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -434,6 +472,9 @@
|
|||
"cs": "Tato lampa vydává oranžové světlo"
|
||||
}
|
||||
}
|
||||
],
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -482,6 +523,9 @@
|
|||
"es": "Esta lámpara tiene 2 accesorios"
|
||||
}
|
||||
}
|
||||
],
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -539,6 +583,9 @@
|
|||
"cs": "Tato lampa se rozsvítí na základě požadavku (např. pomocí tlačítka)"
|
||||
}
|
||||
}
|
||||
],
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -563,7 +610,10 @@
|
|||
"freeform": {
|
||||
"key": "light:direction",
|
||||
"type": "direction"
|
||||
}
|
||||
},
|
||||
"labels": [
|
||||
"street_lamp_question"
|
||||
]
|
||||
}
|
||||
],
|
||||
"deletion": {},
|
||||
|
|
10
assets/layers/utility_pole/license_info.json
Normal file
10
assets/layers/utility_pole/license_info.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
[
|
||||
{
|
||||
"path": "utility_pole.svg",
|
||||
"license": "CC0-1.0",
|
||||
"authors": [
|
||||
"Robin van der Linde"
|
||||
],
|
||||
"sources": []
|
||||
}
|
||||
]
|
65
assets/layers/utility_pole/utility_pole.json
Normal file
65
assets/layers/utility_pole/utility_pole.json
Normal file
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
"id": "utility_pole",
|
||||
"name": {
|
||||
"en": "Utility Poles"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "man_made=utility_pole"
|
||||
},
|
||||
"title": {
|
||||
"en": "Utility Pole"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing various types of utility poles."
|
||||
},
|
||||
"tagRenderings": [
|
||||
{
|
||||
"id": "street_lamp",
|
||||
"question": {
|
||||
"en": "Does this utility pole have a street lamp mounted on it?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "highway=street_lamp",
|
||||
"then": {
|
||||
"en": "This utility pole has a street lamp mounted on it."
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "highway=",
|
||||
"then": {
|
||||
"en": "This utility pole does not have a street lamp mounted on it."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"presets": [
|
||||
{
|
||||
"tags": [
|
||||
"man_made=utility_pole"
|
||||
],
|
||||
"title": {
|
||||
"en": "a utility pole"
|
||||
}
|
||||
}
|
||||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/utility_pole/utility_pole.svg"
|
||||
}
|
||||
],
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
]
|
||||
}
|
||||
],
|
||||
"minzoom": 18,
|
||||
"allowMove": {
|
||||
"enableImproveAccuracy": true,
|
||||
"enableRelocation": false
|
||||
}
|
||||
}
|
82
assets/layers/utility_pole/utility_pole.svg
Normal file
82
assets/layers/utility_pole/utility_pole.svg
Normal file
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="500"
|
||||
height="500"
|
||||
viewBox="0 0 500 500"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="utility_pole.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="0.46831027"
|
||||
inkscape:cx="25.624038"
|
||||
inkscape:cy="541.30779"
|
||||
inkscape:window-width="1704"
|
||||
inkscape:window-height="996"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6" />
|
||||
<g
|
||||
id="g6"
|
||||
transform="matrix(1.3262599,0,0,1.3262599,150.53051,8.85e-6)">
|
||||
<rect
|
||||
x="62"
|
||||
y="27"
|
||||
width="25"
|
||||
height="350"
|
||||
fill="#000000"
|
||||
id="rect1" />
|
||||
<rect
|
||||
y="0"
|
||||
width="15"
|
||||
height="150"
|
||||
transform="rotate(-90)"
|
||||
fill="#000000"
|
||||
id="rect2"
|
||||
x="-27" />
|
||||
<rect
|
||||
x="4"
|
||||
width="8"
|
||||
height="12"
|
||||
fill="#000000"
|
||||
id="rect3"
|
||||
y="0" />
|
||||
<rect
|
||||
x="15"
|
||||
width="8"
|
||||
height="12"
|
||||
fill="#000000"
|
||||
id="rect4"
|
||||
y="0" />
|
||||
<rect
|
||||
x="127"
|
||||
width="8"
|
||||
height="12"
|
||||
fill="#000000"
|
||||
id="rect5"
|
||||
y="0" />
|
||||
<rect
|
||||
x="138"
|
||||
width="8"
|
||||
height="12"
|
||||
fill="#000000"
|
||||
id="rect6"
|
||||
y="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
2
assets/layers/utility_pole/utility_pole.svg.license
Normal file
2
assets/layers/utility_pole/utility_pole.svg.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Robin van der Linde
|
||||
SPDX-License-Identifier: CC0-1.0
|
|
@ -280,7 +280,11 @@
|
|||
"render": {
|
||||
"en": "This shrine is {religion}"
|
||||
},
|
||||
"condition": "historic!=wayside_cross"
|
||||
"condition": {
|
||||
"and": [
|
||||
"historic!=wayside_cross"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
|
|
|
@ -98,6 +98,35 @@
|
|||
"name": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"builtin": "shops",
|
||||
"override": {
|
||||
"id": "pet_shops",
|
||||
"name": {
|
||||
"en": "Pet stores",
|
||||
"nl": "Dierenwinkels"
|
||||
},
|
||||
"=presets": [
|
||||
{
|
||||
"tags": [
|
||||
"shop=pet"
|
||||
],
|
||||
"title": {
|
||||
"en": "a pet shop",
|
||||
"nl": "een dierenwinkel"
|
||||
}
|
||||
}
|
||||
],
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"shop=pet"
|
||||
]
|
||||
}
|
||||
},
|
||||
"=filter": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"builtin": "shops",
|
||||
"override": {
|
||||
|
|
|
@ -45,6 +45,20 @@
|
|||
],
|
||||
"layers": [
|
||||
"street_lamps",
|
||||
{
|
||||
"builtin": "utility_pole",
|
||||
"override": {
|
||||
"tagRenderings+": [
|
||||
{
|
||||
"builtin": "street_lamps.street_lamp_question",
|
||||
"override": {
|
||||
"condition": "highway=street_lamp"
|
||||
}
|
||||
}
|
||||
],
|
||||
"shownByDefault": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "lit_streets",
|
||||
"name": {
|
||||
|
|
|
@ -15,7 +15,13 @@
|
|||
],
|
||||
"hideFromOverview": true,
|
||||
"layers": [
|
||||
"street_lamps",
|
||||
{
|
||||
"builtin": "street_lamps",
|
||||
"hideTagRenderingsWithLabels": [
|
||||
"utility_pole"
|
||||
],
|
||||
"override": {}
|
||||
},
|
||||
{
|
||||
"id": "assen",
|
||||
"name": "Dataset Assen",
|
||||
|
|
|
@ -755,7 +755,7 @@
|
|||
"name": "Restaurants que accepten gossos"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Botigues amigues dels gossos"
|
||||
}
|
||||
|
@ -873,7 +873,7 @@
|
|||
"street_lighting": {
|
||||
"description": "En aquest mapa pots trobar tot el relacionat amb l'enllumenat públic",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Il·luminació de carrers",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -898,7 +898,7 @@
|
|||
"render": "Il·luminació del carrer"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -1048,12 +1048,12 @@
|
|||
"name": "Restaurace vhodné pro vstup se psy"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Obchody vhodné pro vstup se psy"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"9": {
|
||||
"override": {
|
||||
"name=": "Odpadkové koše se sáčky na exkrementy"
|
||||
}
|
||||
|
@ -1231,7 +1231,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Na této mapě najdete vše o pouličním osvětlení",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Osvětlené ulice",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -1256,7 +1256,7 @@
|
|||
"render": "Osvětlená ulice"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -598,7 +598,7 @@
|
|||
"name": "Hundevenlige madsteder"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "hundevenlig butik"
|
||||
}
|
||||
|
@ -684,7 +684,7 @@
|
|||
"street_lighting": {
|
||||
"description": "På dette kort kan du finde alt om gadebelysning",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Oplyste gader",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -709,7 +709,7 @@
|
|||
"render": "Oplyst gade"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -1034,12 +1034,12 @@
|
|||
"name": "Hundefreundliche Restaurants"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Hundefreundliche Geschäfte"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"9": {
|
||||
"override": {
|
||||
"name=": "Mülleimer mit Spender für Kotbeutel"
|
||||
}
|
||||
|
@ -1212,7 +1212,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Eine Karte für alles zum Thema Straßenbeleuchtung",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Beleuchtete Straßen",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -1237,7 +1237,7 @@
|
|||
"render": "Beleuchtete Straße"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -1073,11 +1073,21 @@
|
|||
}
|
||||
},
|
||||
"6": {
|
||||
"override": {
|
||||
"=presets": {
|
||||
"0": {
|
||||
"title": "a pet shop"
|
||||
}
|
||||
},
|
||||
"name": "Pet stores"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Dog-friendly shops"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"9": {
|
||||
"override": {
|
||||
"name=": "Waste baskets with excrement bag dispensers"
|
||||
}
|
||||
|
@ -1255,7 +1265,7 @@
|
|||
"street_lighting": {
|
||||
"description": "On this map you can find everything about street lighting",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Lit streets",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -1280,7 +1290,7 @@
|
|||
"render": "Lit street"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -1008,7 +1008,7 @@
|
|||
"name": "Restaurantes que admiten perros"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Tiendas que admiten perros"
|
||||
}
|
||||
|
@ -1156,7 +1156,7 @@
|
|||
"street_lighting": {
|
||||
"description": "En este mapa puedes encontrar todo sobre el alumbrado público",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Calles iluminadas",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -1181,7 +1181,7 @@
|
|||
"render": "Calle iluminada"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -834,7 +834,7 @@
|
|||
"name": "Restaurants acceptant les chiens"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Magasins acceptant les chiens"
|
||||
}
|
||||
|
@ -956,7 +956,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Retrouvez tout ce qui touche à l’éclairage de rue sur cette carte",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Rues éclairées",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -981,7 +981,7 @@
|
|||
"render": "Rue éclairée"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -405,7 +405,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Ezen a térképen minden megtalálható, ami a közvilágítással kapcsolatos",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Kivilágított utcák",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -430,7 +430,7 @@
|
|||
"render": "Kivilágított utca"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -471,7 +471,7 @@
|
|||
"name": "Ristoranti che accettano i cani"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Negozi che accettano i cani"
|
||||
}
|
||||
|
@ -540,7 +540,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Su questa mappa puoi trovare tutto ciò che riguarda l'illuminazione stradale",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Strade illuminate",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -565,7 +565,7 @@
|
|||
"render": "Strada illuminata"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -994,7 +994,7 @@
|
|||
"name": "반려견 친화적 식당"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "반려견 친화적 상점"
|
||||
}
|
||||
|
@ -1142,7 +1142,7 @@
|
|||
"street_lighting": {
|
||||
"description": "이 지도에서 가로등에 관한 모든 것을 찾을 수 있습니다",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "조명이 있는 거리",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -1167,7 +1167,7 @@
|
|||
"render": "밝은 거리"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -349,7 +349,7 @@
|
|||
"name": "Hundevennlige spisesteder"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Hundevennlige butikker"
|
||||
}
|
||||
|
@ -414,7 +414,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Alt om gatebelysning",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Belyste gater",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -439,7 +439,7 @@
|
|||
"render": "Belyst gate"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -1093,11 +1093,21 @@
|
|||
}
|
||||
},
|
||||
"6": {
|
||||
"override": {
|
||||
"=presets": {
|
||||
"0": {
|
||||
"title": "een dierenwinkel"
|
||||
}
|
||||
},
|
||||
"name": "Dierenwinkels"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Hondvriendelijke winkels"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"9": {
|
||||
"override": {
|
||||
"name=": "Vuilnisbakken met verdelers voor hondenpoepzakjes"
|
||||
}
|
||||
|
@ -1291,7 +1301,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Op deze kaart vind je alles over straatlantaarns",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Verlichte straten",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -1316,7 +1326,7 @@
|
|||
"render": "Verlichte straat"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -131,7 +131,7 @@
|
|||
},
|
||||
"pets": {
|
||||
"layers": {
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "کُتیاں دی اِجازت دیاں دکاناں"
|
||||
}
|
||||
|
@ -153,7 +153,7 @@
|
|||
},
|
||||
"street_lighting": {
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "روشنی والیاں سڑکاں",
|
||||
"title": {
|
||||
"render": "روشنی والی سڑک"
|
||||
|
|
|
@ -711,7 +711,7 @@
|
|||
"name": "Restauracje przyjazne psom"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Sklepy przyjazne psom"
|
||||
}
|
||||
|
@ -829,7 +829,7 @@
|
|||
"street_lighting": {
|
||||
"description": "Na tej mapie możesz znaleźć wszystko o oświetleniu ulicznym",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "Oświetlone ulice",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -854,7 +854,7 @@
|
|||
"render": "Ulica oświetlona"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
|
@ -514,12 +514,12 @@
|
|||
"name": "Заклади харчування, дружні до собак"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "Магазини, дружні до собак"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"9": {
|
||||
"override": {
|
||||
"name=": "Кошики для сміття з дозаторами для пакетів для екскрементів"
|
||||
}
|
||||
|
|
|
@ -678,7 +678,7 @@
|
|||
"name": "寵物友善餐廳"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"7": {
|
||||
"override": {
|
||||
"name": "寵物友善商家"
|
||||
}
|
||||
|
@ -781,7 +781,7 @@
|
|||
"street_lighting": {
|
||||
"description": "在這份地圖你可以找到任何有關路燈的事情",
|
||||
"layers": {
|
||||
"1": {
|
||||
"2": {
|
||||
"name": "有照明的道路",
|
||||
"tagRenderings": {
|
||||
"lit": {
|
||||
|
@ -806,7 +806,7 @@
|
|||
"render": "照明道路"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"3": {
|
||||
"override": {
|
||||
"tagRenderings+": {
|
||||
"0": {
|
||||
|
|
12
package-lock.json
generated
12
package-lock.json
generated
|
@ -84,6 +84,7 @@
|
|||
"showdown": "^2.1.0",
|
||||
"svelte": "^3.59.2",
|
||||
"svg-path-parser": "^1.1.0",
|
||||
"tag2link": "^2025.3.21",
|
||||
"tailwind-merge": "^1.14.0",
|
||||
"tailwindcss": "^3.4.17",
|
||||
"ts-node": "^10.9.2",
|
||||
|
@ -26406,6 +26407,12 @@
|
|||
"version": "3.2.4",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/tag2link": {
|
||||
"version": "2025.3.21",
|
||||
"resolved": "https://registry.npmjs.org/tag2link/-/tag2link-2025.3.21.tgz",
|
||||
"integrity": "sha512-JvRTQdY/z0vAEFUzL7rhLndNiDnStlurW+1jgXL5FW+GppR2T/dq2lXMEppbFNxJ9C4h5b+ykjcMPH791YeLdA==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/tailwind-merge": {
|
||||
"version": "1.14.0",
|
||||
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz",
|
||||
|
@ -48559,6 +48566,11 @@
|
|||
"symbol-tree": {
|
||||
"version": "3.2.4"
|
||||
},
|
||||
"tag2link": {
|
||||
"version": "2025.3.21",
|
||||
"resolved": "https://registry.npmjs.org/tag2link/-/tag2link-2025.3.21.tgz",
|
||||
"integrity": "sha512-JvRTQdY/z0vAEFUzL7rhLndNiDnStlurW+1jgXL5FW+GppR2T/dq2lXMEppbFNxJ9C4h5b+ykjcMPH791YeLdA=="
|
||||
},
|
||||
"tailwind-merge": {
|
||||
"version": "1.14.0",
|
||||
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz",
|
||||
|
|
|
@ -247,6 +247,7 @@
|
|||
"showdown": "^2.1.0",
|
||||
"svelte": "^3.59.2",
|
||||
"svg-path-parser": "^1.1.0",
|
||||
"tag2link": "^2025.3.21",
|
||||
"tailwind-merge": "^1.14.0",
|
||||
"tailwindcss": "^3.4.17",
|
||||
"ts-node": "^10.9.2",
|
||||
|
|
|
@ -24,7 +24,7 @@ export default abstract class Script {
|
|||
})
|
||||
.catch((e) => {
|
||||
console.log(`ERROR in script ${process.argv[1]}:`, e)
|
||||
// process.exit(1)
|
||||
process.exit(1)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -9,16 +9,12 @@ import {
|
|||
DoesImageExist,
|
||||
PrevalidateTheme,
|
||||
ValidateLayer,
|
||||
ValidateThemeEnsemble,
|
||||
ValidateThemeEnsemble
|
||||
} from "../src/Models/ThemeConfig/Conversion/Validation"
|
||||
import { Translation } from "../src/UI/i18n/Translation"
|
||||
import { PrepareLayer } from "../src/Models/ThemeConfig/Conversion/PrepareLayer"
|
||||
import { PrepareTheme } from "../src/Models/ThemeConfig/Conversion/PrepareTheme"
|
||||
import {
|
||||
Conversion,
|
||||
DesugaringContext,
|
||||
DesugaringStep,
|
||||
} from "../src/Models/ThemeConfig/Conversion/Conversion"
|
||||
import { Conversion, DesugaringContext, DesugaringStep } from "../src/Models/ThemeConfig/Conversion/Conversion"
|
||||
import { Utils } from "../src/Utils"
|
||||
import Script from "./Script"
|
||||
import { AllSharedLayers } from "../src/Customizations/AllSharedLayers"
|
||||
|
@ -654,6 +650,9 @@ class LayerOverviewUtils extends Script {
|
|||
if (sharedLayers.has(fixed.id)) {
|
||||
throw "There are multiple layers with the id " + fixed.id + ", " + sharedLayerPath
|
||||
}
|
||||
if (parsed.context.hasErrors()) {
|
||||
throw "Some layers contain errors"
|
||||
}
|
||||
|
||||
sharedLayers.set(fixed.id, fixed)
|
||||
recompiledLayers.push(fixed.id)
|
||||
|
|
|
@ -20,9 +20,8 @@ npm run download:editor-layer-index &&
|
|||
npm run prep:layeroverview &&
|
||||
npm run generate && # includes a single "refresh:layeroverview". Resetting the files is unnecessary as they are not in there in the first place
|
||||
npm run generate:mapcomplete-changes-theme &&
|
||||
npm run refresh:layeroverview && # run refresh:layeroverview a second time to propagate all calls
|
||||
npm run generate:layeroverview && # run refresh:layeroverview a third time to fix some issues with the favourite layer all calls
|
||||
|
||||
npm run refresh:layeroverview && # a second time to propagate all calls
|
||||
npm run refresh:layeroverview && # a third time to fix some issues with the favourite layer all calls
|
||||
npm run generate:layouts
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<script lang="ts">
|
||||
import { Store, UIEventSource } from "../../Logic/UIEventSource"
|
||||
import SimpleMetaTaggers from "../../Logic/SimpleMetaTagger"
|
||||
import LayerConfig from "../../Models/ThemeConfig/LayerConfig"
|
||||
import Searchbar from "../Base/Searchbar.svelte"
|
||||
import Translations from "../i18n/Translations"
|
||||
import { Utils } from "../../Utils"
|
||||
import { Store, UIEventSource } from "../../../Logic/UIEventSource"
|
||||
import SimpleMetaTaggers from "../../../Logic/SimpleMetaTagger"
|
||||
import LayerConfig from "../../../Models/ThemeConfig/LayerConfig"
|
||||
import Searchbar from "../../Base/Searchbar.svelte"
|
||||
import Translations from "../../i18n/Translations"
|
||||
import { Utils } from "../../../Utils"
|
||||
import TagLink from "./TagLink.svelte"
|
||||
import Tag from "@rgossiaux/svelte-heroicons/solid/Tag"
|
||||
|
||||
export let tags: UIEventSource<Record<string, any>>
|
||||
export let tagKeys = tags.map((tgs) => (tgs === undefined ? [] : Object.keys(tgs)))
|
||||
|
@ -69,7 +71,7 @@
|
|||
{:else if typeof $tags[key] === "object"}
|
||||
<div class="literal-code">{JSON.stringify($tags[key])}</div>
|
||||
{:else}
|
||||
{$tags[key]}
|
||||
<TagLink {tags} {key} />
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -95,7 +97,7 @@
|
|||
<span class="literal-code">{JSON.stringify($tags[key])}</span>
|
||||
<i>{typeof $tags[key]}</i>
|
||||
{:else}
|
||||
{$tags[key]}
|
||||
<TagLink {tags} {key} />
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -123,7 +125,7 @@
|
|||
{:else if $tags[key] === ""}
|
||||
<i>Empty string</i>
|
||||
{:else}
|
||||
{$tags[key]}
|
||||
<TagLink {tags} {key} />
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
46
src/UI/Popup/AllTagsPanel/TagLink.svelte
Normal file
46
src/UI/Popup/AllTagsPanel/TagLink.svelte
Normal file
|
@ -0,0 +1,46 @@
|
|||
<script lang="ts">
|
||||
import { UIEventSource } from "../../../Logic/UIEventSource"
|
||||
import tag2link from "tag2link/index.json"
|
||||
|
||||
export let tags: UIEventSource<Record<string, any>>
|
||||
export let key: string
|
||||
|
||||
const tag2linkData = tag2link as Tag2LinkElement[]
|
||||
|
||||
interface Tag2LinkElement {
|
||||
/**
|
||||
* OSM tag key
|
||||
*/
|
||||
key: string
|
||||
|
||||
/**
|
||||
* URL template or formatter URL: replace `$1` with the tag value
|
||||
*/
|
||||
url: string
|
||||
|
||||
/**
|
||||
* Source of this formatter URL
|
||||
*/
|
||||
source?: string
|
||||
|
||||
/**
|
||||
* Rank or relative importance of this formatter URL.
|
||||
*/
|
||||
rank?: "preferred" | "normal" | "deprecated"
|
||||
}
|
||||
|
||||
const url = tag2linkData.find((item) => item.key === `Key:${key}`)?.url
|
||||
</script>
|
||||
|
||||
{#if url}
|
||||
<a
|
||||
href={url.replace("$1", $tags[key])}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="tag-link"
|
||||
>
|
||||
{$tags[key]}
|
||||
</a>
|
||||
{:else}
|
||||
{$tags[key]}
|
||||
{/if}
|
|
@ -6,7 +6,7 @@ import LogoutButton from "../Base/LogoutButton.svelte"
|
|||
import LoginButton from "../Base/LoginButton.svelte"
|
||||
import ThemeViewState from "../../Models/ThemeViewState"
|
||||
import OrientationDebugPanel from "../Debug/OrientationDebugPanel.svelte"
|
||||
import AllTagsPanel from "../Popup/AllTagsPanel.svelte"
|
||||
import AllTagsPanel from "../Popup/AllTagsPanel/AllTagsPanel.svelte"
|
||||
import { ImmutableStore, UIEventSource } from "../../Logic/UIEventSource"
|
||||
import ClearCaches from "../Popup/ClearCaches.svelte"
|
||||
import Locale from "../i18n/Locale"
|
||||
|
|
|
@ -10,7 +10,7 @@ import { HistogramViz } from "./Popup/HistogramViz"
|
|||
import { UploadToOsmViz } from "./Popup/UploadToOsmViz"
|
||||
import { MultiApplyViz } from "./Popup/MultiApplyViz"
|
||||
import { UIEventSource } from "../Logic/UIEventSource"
|
||||
import AllTagsPanel from "./Popup/AllTagsPanel.svelte"
|
||||
import AllTagsPanel from "./Popup/AllTagsPanel/AllTagsPanel.svelte"
|
||||
import { VariableUiElement } from "./Base/VariableUIElement"
|
||||
import { Translation } from "./i18n/Translation"
|
||||
import Translations from "./i18n/Translations"
|
||||
|
|
|
@ -351,6 +351,16 @@
|
|||
|
||||
})
|
||||
})
|
||||
services.push({
|
||||
name: "Translation service (Weblate)",
|
||||
status: testDownload("https://translate.mapcomplete.org", true).mapD(r => {
|
||||
if (r["success"]) {
|
||||
return "online"
|
||||
}
|
||||
return "offline"
|
||||
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
let all = new UIEventSource<"online" | "degraded" | "offline">("online")
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
import SchemaBasedInput from "./SchemaBasedInput.svelte"
|
||||
import FloatOver from "../Base/FloatOver.svelte"
|
||||
import TagRenderingInput from "./TagRenderingInput.svelte"
|
||||
import AllTagsPanel from "../Popup/AllTagsPanel.svelte"
|
||||
import AllTagsPanel from "../Popup/AllTagsPanel/AllTagsPanel.svelte"
|
||||
import QuestionPreview from "./QuestionPreview.svelte"
|
||||
import ShowConversionMessages from "./ShowConversionMessages.svelte"
|
||||
import RawEditor from "./RawEditor.svelte"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue