Add share icon, reordering of questions and icons, add urinal to toilet
This commit is contained in:
parent
a261577ef3
commit
4018e6710b
12 changed files with 416 additions and 395 deletions
|
@ -100,7 +100,7 @@ export default class LayerConfig {
|
|||
}
|
||||
|
||||
this.tagRenderings = trs(json.tagRenderings).concat(roamingRenderings);
|
||||
this.titleIcons = trs(json.titleIcons ?? ["wikipedialink","osmlink"]);
|
||||
this.titleIcons = trs(json.titleIcons ?? ["wikipedialink","osmlink", "sharelink"]);
|
||||
|
||||
|
||||
function tr(key, deflt) {
|
||||
|
|
|
@ -15,6 +15,8 @@ import * as maps from "../assets/layers/maps/maps.json"
|
|||
import * as information_boards from "../assets/layers/information_board/information_board.json"
|
||||
import * as direction from "../assets/layers/direction/direction.json"
|
||||
import * as surveillance_camera from "../assets/layers/surveillance_cameras/surveillance_cameras.json"
|
||||
import * as toilets from "../assets/layers/toilets/toilets.json"
|
||||
|
||||
import LayerConfig from "./JSON/LayerConfig";
|
||||
|
||||
export default class SharedLayers {
|
||||
|
@ -41,6 +43,7 @@ export default class SharedLayers {
|
|||
new LayerConfig(maps,[], "shared_layers"),
|
||||
new LayerConfig(direction,[], "shared_layers"),
|
||||
new LayerConfig(information_boards,[], "shared_layers"),
|
||||
new LayerConfig(toilets,[], "shared_layers"),
|
||||
new LayerConfig(surveillance_camera,[], "shared_layers")
|
||||
];
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import * as questions from "../assets/questions/questions.json";
|
||||
import TagRenderingConfig from "./JSON/TagRenderingConfig";
|
||||
import * as questions from "../assets/tagRenderings/questions.json";
|
||||
import * as icons from "../assets/tagRenderings/icons.json";
|
||||
|
||||
export default class SharedTagRenderings {
|
||||
|
||||
|
@ -7,13 +8,24 @@ export default class SharedTagRenderings {
|
|||
|
||||
private static generatedSharedFields() {
|
||||
const dict = {}
|
||||
for (const key in questions) {
|
||||
|
||||
|
||||
function add(key, store){
|
||||
try {
|
||||
dict[key] = new TagRenderingConfig(questions[key])
|
||||
dict[key] = new TagRenderingConfig(store[key])
|
||||
} catch (e) {
|
||||
console.error("COULD NOT PARSE", key, " FROM QUESTIONS:", e)
|
||||
console.error("BUG: could not parse", key, " from questions.json or icons.json", e)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (const key in questions) {
|
||||
add(key, questions);
|
||||
}
|
||||
for (const key in icons) {
|
||||
add(key, icons);
|
||||
}
|
||||
|
||||
return dict;
|
||||
}
|
||||
|
||||
|
|
|
@ -260,3 +260,6 @@ Shower icon (used in 'bike_cleaning.svg'):
|
|||
https://commons.wikimedia.org/wiki/File:Shower_symbol.svg
|
||||
|
||||
Bench icons from StreetComplete: https://github.com/westnordost/StreetComplete/tree/v25.0-beta1/res/graphics/quest%20icons, GPLv3.0
|
||||
|
||||
|
||||
Urinal icon: https://thenounproject.com/term/urinal/1307984/
|
2
State.ts
2
State.ts
|
@ -23,7 +23,7 @@ export default class State {
|
|||
// The singleton of the global state
|
||||
public static state: State;
|
||||
|
||||
public static vNumber = "0.2.0";
|
||||
public static vNumber = "0.2.1d";
|
||||
|
||||
// The user journey states thresholds when a new feature gets unlocked
|
||||
public static userJourney = {
|
||||
|
|
|
@ -9,6 +9,7 @@ import {FixedUiElement} from "./Base/FixedUiElement";
|
|||
import Locale from "../UI/i18n/Locale";
|
||||
import {ImageUploadFlow} from "./Image/ImageUploadFlow";
|
||||
import {Translation} from "./i18n/Translation";
|
||||
import State from "../State";
|
||||
|
||||
export class SubstitutedTranslation extends UIElement {
|
||||
private readonly tags: UIEventSource<any>;
|
||||
|
@ -183,7 +184,41 @@ export default class SpecialVisualizations {
|
|||
return new VariableUiElement(source.map(data => data[neededValue] ?? "Loading..."));
|
||||
}
|
||||
},
|
||||
{
|
||||
funcName: "share_link",
|
||||
docs: "Creates a link that (attempts to) open the native 'share'-screen",
|
||||
example: "{share_link()} to share the current page, {share_link(<some_url>)} to share the given url",
|
||||
args: [
|
||||
{
|
||||
name: "url",
|
||||
doc: "The url to share",
|
||||
defaultValue: "{current_url()}"
|
||||
}
|
||||
],
|
||||
constr: (tagSource: UIEventSource<any>, args) => {
|
||||
if (navigator.share !== undefined) {
|
||||
return new FixedUiElement("").onClick(() => {
|
||||
|
||||
let name = tagSource["name"]
|
||||
let title= State.state.layoutToUse.data.title.txt
|
||||
if(name === undefined){
|
||||
name = title
|
||||
}else{
|
||||
name = `${name} (${title})`
|
||||
}
|
||||
|
||||
navigator.share({
|
||||
url: args[0] ?? window.location.href,
|
||||
title: name,
|
||||
text: State.state.layoutToUse.data.shortDescription.txt
|
||||
})
|
||||
})
|
||||
} else {
|
||||
return new FixedUiElement("")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
static HelpMessage: UIElement = SpecialVisualizations.GenHelpMessage();
|
||||
|
|
|
@ -1,2 +1,305 @@
|
|||
{
|
||||
"id": "toilets",
|
||||
"name": {
|
||||
"en": "Toilets",
|
||||
"de": "Toiletten",
|
||||
"fr": "Toilettes"
|
||||
},
|
||||
"overpassTags": "amenity=toilets",
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Toilet",
|
||||
"de": "Toilette",
|
||||
"fr": "Toilettes"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"render": "./assets/layers/toilets/toilets.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "wheelchair=yes",
|
||||
"then": "./assets/layers/toilets/wheelchair.svg"
|
||||
},
|
||||
{
|
||||
"if": "toilets:position=urinals",
|
||||
"then": "./assets/layers/toilets/urinal.svg"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"render": "#0000ff"
|
||||
},
|
||||
"minzoom": 12,
|
||||
"wayHandling": 2,
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "Toilet",
|
||||
"de": "Toilette",
|
||||
"fr": "Toilettes"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=toilets"
|
||||
],
|
||||
"description": {
|
||||
"en": "A publicly accessible toilet or restroom",
|
||||
"de": "Eine öffentlich zugängliche Toilette",
|
||||
"fr": "Des toilettes"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"en": "Toilets with wheelchair accessible toilet",
|
||||
"de": "Toiletten mit rollstuhlgerechter Toilette",
|
||||
"fr": "Toilettes accessible aux personnes à mobilité réduite"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=toilets",
|
||||
"wheelchair=yes"
|
||||
],
|
||||
"description": {
|
||||
"en": "A restroom which has at least one wheelchair-accessible toilet",
|
||||
"de": "Eine Toilettenanlage mit mindestens einer rollstuhlgerechten Toilette",
|
||||
"fr": "Toilettes avec au moins un WC accessible aux personnes à mobilité réduite"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
"question": {
|
||||
"en": "Are these toilets publicly accessible?",
|
||||
"de": "Sind diese Toiletten öffentlich zugänglich?",
|
||||
"fr": "Ces toilettes sont-elles accessibles publiquement ?"
|
||||
},
|
||||
"render": {
|
||||
"en": "Access is {access}",
|
||||
"de": "Zugang ist {access}",
|
||||
"fr": "L'accès est {access}"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "access",
|
||||
"addExtraTags": [
|
||||
"fixme=the tag access was filled out by the user and might need refinement"
|
||||
]
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "access=yes",
|
||||
"then": {
|
||||
"en": "Public access",
|
||||
"de": "Öffentlicher Zugang",
|
||||
"fr": "Accès publique"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "access=customers",
|
||||
"then": {
|
||||
"en": "Only access to customers",
|
||||
"de": "Nur Zugang für Kunden",
|
||||
"fr": "Accès réservé aux clients"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "access=no",
|
||||
"then": {
|
||||
"en": "Not accessible",
|
||||
"de": "Nicht zugänglich",
|
||||
"fr": "WC privés"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "access=key",
|
||||
"then": {
|
||||
"en": "Accessible, but one has to ask a key to enter",
|
||||
"de": "Zugänglich, aber man muss einen Schlüssel für die Eingabe verlangen",
|
||||
"fr": "Accessible, mais vous devez demander la clé"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Are these toilets free to use?",
|
||||
"de": "Können diese Toiletten kostenlos benutzt werden?",
|
||||
"fr": "Ces toilettes sont-elles payantes"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "These are paid toilets",
|
||||
"de": "Dies sind bezahlte Toiletten",
|
||||
"fr": "Toilettes payantes"
|
||||
},
|
||||
"if": "fee=yes"
|
||||
},
|
||||
{
|
||||
"if": "fee=no",
|
||||
"then": {
|
||||
"en": "Free to use",
|
||||
"de": "Kostenlose Nutzung",
|
||||
"fr": "Toilettes gratuites"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "How much does one have to pay for these toilets?",
|
||||
"de": "Wie viel muss man für diese Toiletten bezahlen?",
|
||||
"fr": "Quel est le prix d'accès de ces toilettes ?"
|
||||
},
|
||||
"render": {
|
||||
"en": "The fee is {charge}",
|
||||
"de": "Die Gebühr beträgt {charge}",
|
||||
"fr": "Le prix est {charge}"
|
||||
},
|
||||
"condition": "fee=yes",
|
||||
"freeform": {
|
||||
"key": "charge",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Is there a dedicated toilet for wheelchair users",
|
||||
"de": "Gibt es eine Toilette für Rollstuhlfahrer?",
|
||||
"fr": "Un WC réservé aux personnes à mobilité réduite est-il présent ?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "There is a dedicated toilet for wheelchair users",
|
||||
"de": "Es gibt eine Toilette für Rollstuhlfahrer",
|
||||
"fr": "Il y a un WC réservé pour les personnes à mobilité réduite"
|
||||
},
|
||||
"if": "wheelchair=yes"
|
||||
},
|
||||
{
|
||||
"if": "wheelchair=no",
|
||||
"then": {
|
||||
"en": "No wheelchair access",
|
||||
"de": "Kein Zugang für Rollstuhlfahrer",
|
||||
"fr": "Non accessible aux personnes à mobilité réduite"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Which kind of toilets are this?",
|
||||
"de": "Welche Art von Toiletten sind das?",
|
||||
"fr": "De quel type sont ces toilettes ?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "toilets:position=seated",
|
||||
"then": {
|
||||
"en": "There are only seated toilets",
|
||||
"de": "Es gibt nur Sitztoiletten",
|
||||
"fr": "Il y a uniquement des WC assis"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "toilets:position=urinals",
|
||||
"then": {
|
||||
"en": "There are only urinals here",
|
||||
"de": "Hier gibt es nur Pissoirs",
|
||||
"fr": "Il y a uniquement des urinoirs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "toilets:position=squat",
|
||||
"then": {
|
||||
"en": "There are only squat toilets here",
|
||||
"de": "Es gibt hier nur Hocktoiletten.",
|
||||
"fr": "Il y a uniquement des WC turques"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "toilets:position=seated;urinals",
|
||||
"then": {
|
||||
"en": "Both seated toilets and urinals are available here",
|
||||
"de": "Sowohl Sitztoiletten als auch Pissoirs sind hier verfügbar",
|
||||
"fr": "Il y a des WC assis et des urinoirs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Is a changing table (to change diapers) available?",
|
||||
"de": "Ist ein Wickeltisch (zum Wechseln der Windeln) vorhanden?",
|
||||
"fr": "Ces WC disposent-ils d'une table à langer ?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "A changing table is available",
|
||||
"de": "Ein Wickeltisch ist verfügbar",
|
||||
"fr": "Une table à langer est disponible"
|
||||
},
|
||||
"if": "changing_table=yes"
|
||||
},
|
||||
{
|
||||
"if": "changing_table=no",
|
||||
"then": {
|
||||
"en": "No changing table is available",
|
||||
"de": "Es ist kein Wickeltisch verfügbar",
|
||||
"fr": "Aucune table à langer"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Where is the changing table located?",
|
||||
"de": "Wo befindet sich der Wickeltisch?",
|
||||
"fr": "Où se situe la table à langer ?"
|
||||
},
|
||||
"render": {
|
||||
"en": "The changing table is located at {changing_table:location}",
|
||||
"de": "Die Wickeltabelle befindet sich in {changing_table:location}",
|
||||
"fr": "Emplacement de la table à langer : {changing_table:location}"
|
||||
},
|
||||
"condition": "changing_table=yes",
|
||||
"freeform": {
|
||||
"key": "changing_table:location"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "The changing table is in the toilet for women. ",
|
||||
"de": "Der Wickeltisch befindet sich in der Damentoilette. ",
|
||||
"fr": "La table à langer se situe dans les WC pour femmes. "
|
||||
},
|
||||
"if": "changing_table:location=female_toilet"
|
||||
},
|
||||
{
|
||||
"then": {
|
||||
"en": "The changing table is in the toilet for men. ",
|
||||
"de": "Der Wickeltisch befindet sich in der Herrentoilette. ",
|
||||
"fr": "La table à langer se situe dans les WC pour hommes. "
|
||||
},
|
||||
"if": "changing_table:location=male_toilet"
|
||||
},
|
||||
{
|
||||
"if": "changing_table:location=wheelchair_toilet",
|
||||
"then": {
|
||||
"en": "The changing table is in the toilet for wheelchair users. ",
|
||||
"de": "Der Wickeltisch befindet sich in der Toilette für Rollstuhlfahrer. ",
|
||||
"fr": "La table à langer se situe dans les WC pour personnes à mobilité réduite. "
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "changing_table:location=dedicated_room",
|
||||
"then": {
|
||||
"en": "The changing table is in a dedicated room. ",
|
||||
"de": "Der Wickeltisch befindet sich in einem eigenen Raum. ",
|
||||
"fr": "La table à langer se situe dans un espace dédié. "
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -5,84 +5,49 @@
|
|||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 100.18594 100.18594"
|
||||
enable-background="new 0 0 100 100"
|
||||
xml:space="preserve"
|
||||
id="svg22"
|
||||
sodipodi:docname="noun_Urinal_1307984.svg"
|
||||
width="100.18594"
|
||||
height="100.18594"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
|
||||
width="100.18594"
|
||||
id="svg22"
|
||||
xml:space="preserve"
|
||||
enable-background="new 0 0 100 100"
|
||||
viewBox="0 0 100.18594 100.18594"
|
||||
y="0px"
|
||||
x="0px"
|
||||
version="1.1"><metadata
|
||||
id="metadata28"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs26" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1043"
|
||||
id="namedview24"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.776"
|
||||
inkscape:cx="-24.614037"
|
||||
inkscape:cy="81.446444"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="bg"
|
||||
transform="translate(0,0.0919838)"><circle
|
||||
style="fill:#55bd00;fill-opacity:1;stroke:none;stroke-width:5.08555174;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98823529"
|
||||
id="path845"
|
||||
cx="50.092972"
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs26" /><g
|
||||
transform="translate(0,0.0919838)"
|
||||
id="layer1"><circle
|
||||
r="50.092972"
|
||||
cy="50.000988"
|
||||
r="50.092972" /></g><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="fg"
|
||||
transform="translate(0,0.0919838)"><g
|
||||
id="g849"
|
||||
transform="matrix(1.0774227,0,0,1,-6.5327497,-2.3834746)"><circle
|
||||
cx="45.222931"
|
||||
cy="20.633209"
|
||||
cx="50.092972"
|
||||
id="path845"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:5.08555174;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.98823529" /></g><g
|
||||
transform="translate(0,0.0919838)"
|
||||
id="layer2"><g
|
||||
transform="matrix(1.0774227,0,0,1,-6.5327497,-2.3834746)"
|
||||
id="g849"><circle
|
||||
id="circle2"
|
||||
r="6.8829999"
|
||||
id="circle2" /></g><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4"
|
||||
cy="20.633209"
|
||||
cx="45.222931" fill="#734a08ff"/></g><path
|
||||
style="stroke-width:1.03798974" fill="#734a08ff"
|
||||
d="m 63.360093,62.535796 0.744233,-1.506117 c 0.03247,-0.03923 -1.837395,-1.305776 -1.867394,-1.264947 l -0.594756,1.578256 c 0.02894,-0.04064 1.750018,1.1577 1.717917,1.192808 z"
|
||||
style="stroke-width:1.03798974" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6"
|
||||
id="path4" /><path
|
||||
style="stroke-width:1.03798974" fill="#734a08ff"
|
||||
d="m 60.739166,60.844217 0.516546,-1.606098 c 0,0 -0.521003,-0.237131 -1.041486,-0.471307 -0.545369,-0.189171 -1.087902,-0.380873 -1.087902,-0.380873 l -0.357271,1.653154 c 0,0 0.503158,0.179353 1.004367,0.360064 0.483056,0.220467 0.965746,0.44506 0.965746,0.44506 z"
|
||||
style="stroke-width:1.03798974" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8"
|
||||
id="path6" /><path
|
||||
style="stroke-width:1.03798974" fill="#734a08ff"
|
||||
d="m 57.763048,59.750399 0.274951,-1.667072 c 0,0 -0.139693,-0.03528 -0.351095,-0.08634 -0.210149,-0.05636 -0.492219,-0.117309 -0.781965,-0.153545 -0.288667,-0.04252 -0.576272,-0.08523 -0.79215,-0.118241 -0.214817,-0.0332 -0.359526,-0.04729 -0.359526,-0.04729 l -0.107285,1.687263 c 0,0 0.53246,0.07874 1.066328,0.159253 0.269259,0.03173 0.532422,0.09093 0.72596,0.146159 0.193384,0.04815 0.324782,0.07981 0.324782,0.07981 z"
|
||||
style="stroke-width:1.03798974" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path10"
|
||||
id="path8" /><path
|
||||
style="stroke-width:1.03798974" fill="#734a08ff"
|
||||
d="m 52.262826,57.706454 0.162629,1.679272 c -0.01946,-0.04836 2.163417,-0.133706 2.159193,-0.08321 l 0.02616,-1.68819 c 5.23e-4,-0.05289 -2.335967,0.03619 -2.347984,0.09212 z"
|
||||
style="stroke-width:1.03798974" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path12"
|
||||
d="m 44.487525,32.636 v -0.06 -0.546 c 0,-2.926 -2.556724,-5.299 -5.709263,-5.299 -3.152539,0 -5.709263,2.373 -5.709263,5.299 v 0.546 L 35.690687,45.197688 33.068999,85.688 h 11.418526 l -0.0331,-26.43253 c 1.188486,3.790204 7.349685,4.322606 6.763764,-1.56947 z"
|
||||
id="path10" /><path fill="#734a08ff"
|
||||
style="stroke-width:1.03798974"
|
||||
sodipodi:nodetypes="ccsssccccccc" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path14"
|
||||
d="m 68.240384,43.32148 v 15.764528 c -3.446517,5.459344 -5.76619,4.074036 -10.247903,5.133803 1.652985,11.916006 8.426597,10.425906 10.341535,21.124208 v 0.06209 c 2.338689,-0.4811 6.021132,0.919057 6.10748,-2.71532 L 74.347864,43.32148 Z"
|
||||
d="m 44.487525,32.636 v -0.06 -0.546 c 0,-2.926 -2.556724,-5.299 -5.709263,-5.299 -3.152539,0 -5.709263,2.373 -5.709263,5.299 v 0.546 L 35.690687,45.197688 33.068999,85.688 h 11.418526 l -0.0331,-26.43253 c 1.188486,3.790204 7.349685,4.322606 6.763764,-1.56947 z"
|
||||
id="path12" /><path fill="#734a08ff"
|
||||
style="stroke-width:1.49871337"
|
||||
sodipodi:nodetypes="cccccccc" /></g></svg>
|
||||
d="m 68.240384,43.32148 v 15.764528 c -3.446517,5.459344 -5.76619,4.074036 -10.247903,5.133803 1.652985,11.916006 8.426597,10.425906 10.341535,21.124208 v 0.06209 c 2.338689,-0.4811 6.021132,0.919057 6.10748,-2.71532 L 74.347864,43.32148 Z"
|
||||
id="path14" /></g></svg>
|
||||
|
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 3.4 KiB |
|
@ -1,2 +1,19 @@
|
|||
{
|
||||
"osmlink": {
|
||||
"render": "<a href='https://openstreetmap.org/{id}' target='_blank'><img src='./assets/svg/osm-logo-us.svg'/></a>",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "id~=-",
|
||||
"then": "<span class='alert'>Uploading...</alert>"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wikipedialink": {
|
||||
"render": "<a href='https://wikipedia.org/wiki/{wikipedia}' target='_blank'><img src='./assets/wikipedia.svg' alt='WP'/></a>",
|
||||
"condition": "wikipedia~*"
|
||||
},
|
||||
|
||||
"sharelink": {
|
||||
"render": "{share_link()}"
|
||||
}
|
||||
}
|
|
@ -2,20 +2,6 @@
|
|||
"images": {
|
||||
"render": "{image_carousel()}{image_upload()}"
|
||||
},
|
||||
|
||||
"osmlink": {
|
||||
"render": "<a href='https://openstreetmap.org/{id}' target='_blank'><img src='./assets/svg/osm-logo-us.svg'/></a>",
|
||||
"mappings":[{
|
||||
"if": "id~=-",
|
||||
"then": "<span class='alert'>Uploading...</alert>"
|
||||
}]
|
||||
},
|
||||
|
||||
"wikipedialink": {
|
||||
"render": "<a href='https://wikipedia.org/wiki/{wikipedia}' target='_blank'><img src='./assets/wikipedia.svg' alt='WP'/></a>",
|
||||
"condition": "wikipedia~*"
|
||||
},
|
||||
|
||||
"phone": {
|
||||
"question": {
|
||||
"en": "What is the phone number of {name}?",
|
||||
|
@ -27,7 +13,6 @@
|
|||
"type": "phone"
|
||||
}
|
||||
},
|
||||
|
||||
"email": {
|
||||
"render": "<a href='mailto:{email}' target='_blank'>{email}</a>",
|
||||
"freeform": {
|
||||
|
@ -35,7 +20,6 @@
|
|||
"type": "email"
|
||||
}
|
||||
},
|
||||
|
||||
"website": {
|
||||
"question": {
|
||||
"en": "What is the website of {name}?",
|
||||
|
@ -49,7 +33,6 @@
|
|||
"type": "url"
|
||||
}
|
||||
},
|
||||
|
||||
"opening_hours": {
|
||||
"question": {
|
||||
"en": "What are the opening hours of {name}?",
|
||||
|
|
|
@ -166,7 +166,7 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"icon": "./assets/pencil.svg",
|
||||
"icon": "./assets/svg/pencil.svg",
|
||||
"width": "5",
|
||||
"color": {
|
||||
"render": "#aaaaaa",
|
||||
|
|
|
@ -23,306 +23,6 @@
|
|||
"widenFactor": 0.05,
|
||||
"icon": "./assets/themes/toilets/toilets.svg",
|
||||
"layers": [
|
||||
{
|
||||
"id": "Toilet",
|
||||
"name": {
|
||||
"en": "Toilets",
|
||||
"de": "Toiletten",
|
||||
"fr": "Toilettes"
|
||||
},
|
||||
"overpassTags": "amenity=toilets",
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Toilet",
|
||||
"de": "Toilette",
|
||||
"fr": "Toilettes"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"render": "./assets/themes/toilets/toilets.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "wheelchair=yes",
|
||||
"then": "./assets/themes/toilets/wheelchair.svg"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"render": "#0000ff"
|
||||
},
|
||||
"minzoom": 12,
|
||||
"wayHandling": 2,
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "Toilet",
|
||||
"de": "Toilette",
|
||||
"fr": "Toilettes"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=toilets"
|
||||
],
|
||||
"description": {
|
||||
"en": "A publicly accessible toilet or restroom",
|
||||
"de": "Eine öffentlich zugängliche Toilette",
|
||||
"fr": "Des toilettes"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"en": "Toilets with wheelchair accessible toilet",
|
||||
"de": "Toiletten mit rollstuhlgerechter Toilette",
|
||||
"fr": "Toilettes accessible aux personnes à mobilité réduite"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=toilets",
|
||||
"wheelchair=yes"
|
||||
],
|
||||
"description": {
|
||||
"en": "A restroom which has at least one wheelchair-accessible toilet",
|
||||
"de": "Eine Toilettenanlage mit mindestens einer rollstuhlgerechten Toilette",
|
||||
"fr": "Toilettes avec au moins un WC accessible aux personnes à mobilité réduite"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
"question": {
|
||||
"en": "Are these toilets publicly accessible?",
|
||||
"de": "Sind diese Toiletten öffentlich zugänglich?",
|
||||
"fr": "Ces toilettes sont-elles accessibles publiquement ?"
|
||||
},
|
||||
"render": {
|
||||
"en": "Access is {access}",
|
||||
"de": "Zugang ist {access}",
|
||||
"fr": "L'accès est {access}"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "access",
|
||||
"addExtraTags": [
|
||||
"fixme=the tag access was filled out by the user and might need refinement"
|
||||
]
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "access=yes",
|
||||
"then": {
|
||||
"en": "Public access",
|
||||
"de": "Öffentlicher Zugang",
|
||||
"fr": "Accès publique"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "access=customers",
|
||||
"then": {
|
||||
"en": "Only access to customers",
|
||||
"de": "Nur Zugang für Kunden",
|
||||
"fr": "Accès réservé aux clients"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "access=no",
|
||||
"then": {
|
||||
"en": "Not accessible",
|
||||
"de": "Nicht zugänglich",
|
||||
"fr": "WC privés"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "access=key",
|
||||
"then": {
|
||||
"en": "Accessible, but one has to ask a key to enter",
|
||||
"de": "Zugänglich, aber man muss einen Schlüssel für die Eingabe verlangen",
|
||||
"fr": "Accessible, mais vous devez demander la clé"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Are these toilets free to use?",
|
||||
"de": "Können diese Toiletten kostenlos benutzt werden?",
|
||||
"fr": "Ces toilettes sont-elles payantes"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "These are paid toilets",
|
||||
"de": "Dies sind bezahlte Toiletten",
|
||||
"fr": "Toilettes payantes"
|
||||
},
|
||||
"if": "fee=yes"
|
||||
},
|
||||
{
|
||||
"if": "fee=no",
|
||||
"then": {
|
||||
"en": "Free to use",
|
||||
"de": "Kostenlose Nutzung",
|
||||
"fr": "Toilettes gratuites"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "How much does one have to pay for these toilets?",
|
||||
"de": "Wie viel muss man für diese Toiletten bezahlen?",
|
||||
"fr": "Quel est le prix d'accès de ces toilettes ?"
|
||||
},
|
||||
"render": {
|
||||
"en": "The fee is {charge}",
|
||||
"de": "Die Gebühr beträgt {charge}",
|
||||
"fr": "Le prix est {charge}"
|
||||
},
|
||||
"condition": "fee=yes",
|
||||
"freeform": {
|
||||
"key": "charge",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Is there a dedicated toilet for wheelchair users",
|
||||
"de": "Gibt es eine Toilette für Rollstuhlfahrer?",
|
||||
"fr": "Un WC réservé aux personnes à mobilité réduite est-il présent ?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "There is a dedicated toilet for wheelchair users",
|
||||
"de": "Es gibt eine Toilette für Rollstuhlfahrer",
|
||||
"fr": "Il y a un WC réservé pour les personnes à mobilité réduite"
|
||||
},
|
||||
"if": "wheelchair=yes"
|
||||
},
|
||||
{
|
||||
"if": "wheelchair=no",
|
||||
"then": {
|
||||
"en": "No wheelchair access",
|
||||
"de": "Kein Zugang für Rollstuhlfahrer",
|
||||
"fr": "Non accessible aux personnes à mobilité réduite"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Which kind of toilets are this?",
|
||||
"de": "Welche Art von Toiletten sind das?",
|
||||
"fr": "De quel type sont ces toilettes ?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": "toilets:position=seated",
|
||||
"then": {
|
||||
"en": "There are only seated toilets",
|
||||
"de": "Es gibt nur Sitztoiletten",
|
||||
"fr": "Il y a uniquement des WC assis"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "toilets:position=urinals",
|
||||
"then": {
|
||||
"en": "There are only urinals here",
|
||||
"de": "Hier gibt es nur Pissoirs",
|
||||
"fr": "Il y a uniquement des urinoirs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "toilets:position=squat",
|
||||
"then": {
|
||||
"en": "There are only squat toilets here",
|
||||
"de": "Es gibt hier nur Hocktoiletten.",
|
||||
"fr": "Il y a uniquement des WC turques"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "toilets:position=seated;urinals",
|
||||
"then": {
|
||||
"en": "Both seated toilets and urinals are available here",
|
||||
"de": "Sowohl Sitztoiletten als auch Pissoirs sind hier verfügbar",
|
||||
"fr": "Il y a des WC assis et des urinoirs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Is a changing table (to change diapers) available?",
|
||||
"de": "Ist ein Wickeltisch (zum Wechseln der Windeln) vorhanden?",
|
||||
"fr": "Ces WC disposent-ils d'une table à langer ?"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "A changing table is available",
|
||||
"de": "Ein Wickeltisch ist verfügbar",
|
||||
"fr": "Une table à langer est disponible"
|
||||
},
|
||||
"if": "changing_table=yes"
|
||||
},
|
||||
{
|
||||
"if": "changing_table=no",
|
||||
"then": {
|
||||
"en": "No changing table is available",
|
||||
"de": "Es ist kein Wickeltisch verfügbar",
|
||||
"fr": "Aucune table à langer"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"question": {
|
||||
"en": "Where is the changing table located?",
|
||||
"de": "Wo befindet sich der Wickeltisch?",
|
||||
"fr": "Où se situe la table à langer ?"
|
||||
},
|
||||
"render": {
|
||||
"en": "The changing table is located at {changing_table:location}",
|
||||
"de": "Die Wickeltabelle befindet sich in {changing_table:location}",
|
||||
"fr": "Emplacement de la table à langer : {changing_table:location}"
|
||||
},
|
||||
"condition": "changing_table=yes",
|
||||
"freeform": {
|
||||
"key": "changing_table:location"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"then": {
|
||||
"en": "The changing table is in the toilet for women. ",
|
||||
"de": "Der Wickeltisch befindet sich in der Damentoilette. ",
|
||||
"fr": "La table à langer se situe dans les WC pour femmes. "
|
||||
},
|
||||
"if": "changing_table:location=female_toilet"
|
||||
},
|
||||
{
|
||||
"then": {
|
||||
"en": "The changing table is in the toilet for men. ",
|
||||
"de": "Der Wickeltisch befindet sich in der Herrentoilette. ",
|
||||
"fr": "La table à langer se situe dans les WC pour hommes. "
|
||||
},
|
||||
"if": "changing_table:location=male_toilet"
|
||||
},
|
||||
{
|
||||
"if": "changing_table:location=wheelchair_toilet",
|
||||
"then": {
|
||||
"en": "The changing table is in the toilet for wheelchair users. ",
|
||||
"de": "Der Wickeltisch befindet sich in der Toilette für Rollstuhlfahrer. ",
|
||||
"fr": "La table à langer se situe dans les WC pour personnes à mobilité réduite. "
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "changing_table:location=dedicated_room",
|
||||
"then": {
|
||||
"en": "The changing table is in a dedicated room. ",
|
||||
"de": "Der Wickeltisch befindet sich in einem eigenen Raum. ",
|
||||
"fr": "La table à langer se situe dans un espace dédié. "
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
"toilets"
|
||||
]
|
||||
}
|
Loading…
Reference in a new issue