From ee67ab122dc6fce34da79f77c17c5eb9567fd092 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 17:20:01 +0000 Subject: [PATCH 01/84] Chore(deps): Bump rollup from 3.29.4 to 3.29.5 Bumps [rollup](https://github.com/rollup/rollup) from 3.29.4 to 3.29.5. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v3.29.4...v3.29.5) --- updated-dependencies: - dependency-name: rollup dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cc4ed8b04..1aab8b5712 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17799,8 +17799,9 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "3.29.4", - "license": "MIT", + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", "bin": { "rollup": "dist/bin/rollup" }, @@ -33229,7 +33230,9 @@ "version": "1.0.0" }, "rollup": { - "version": "3.29.4", + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", "requires": { "fsevents": "~2.3.2" } From 91844ee00f149a0818f643f0c6fdf0fabfed7f35 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 25 Sep 2024 11:54:17 +0200 Subject: [PATCH 02/84] Error: attempt to figure out why an ID is sometimes not generated --- src/Logic/Osm/Changes.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Logic/Osm/Changes.ts b/src/Logic/Osm/Changes.ts index 03b971b832..6c6ffc3dd6 100644 --- a/src/Logic/Osm/Changes.ts +++ b/src/Logic/Osm/Changes.ts @@ -18,6 +18,7 @@ import ChangeTagAction from "./Actions/ChangeTagAction" import FeatureSwitchState from "../State/FeatureSwitchState" import DeleteAction from "./Actions/DeleteAction" import MarkdownUtils from "../../Utils/MarkdownUtils" +import { SpecialVisualizationState } from "../../UI/SpecialVisualization" /** * Handles all changes made to OSM. @@ -44,14 +45,7 @@ export class Changes { private readonly _reportError?: (string: string | Error, extramessage?: string) => void constructor( - state: { - dryRun: Store - allElements?: IndexedFeatureSource - featurePropertiesStore?: FeaturePropertiesStore - osmConnection: OsmConnection - historicalUserLocations?: FeatureSource - featureSwitches?: FeatureSwitchState - }, + state: SpecialVisualizationState, leftRightSensitive: boolean = false, reportError?: (string: string | Error, extramessage?: string) => void ) { @@ -59,7 +53,11 @@ export class Changes { // We keep track of all changes just as well this.allChanges.setData([...this.pendingChanges.data]) // If a pending change contains a negative ID, we save that - this._nextId = Math.min(-1, ...(this.pendingChanges.data?.map((pch) => pch.id) ?? [])) + this._nextId = Math.min(-1, ...(this.pendingChanges.data?.map((pch) => pch.id ?? 0) ?? [])) + if(isNaN(this._nextId)){ + state.reportError("Got a NaN as nextID. Pending changes IDs are:" +this.pendingChanges.data?.map(pch => pch?.id).join(".")) + this._nextId = -100 + } this.state = state this.backend = state.osmConnection.Backend() this._reportError = reportError From cf74296d23de9ae6dab902205ebe860490627c00 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 25 Sep 2024 21:22:55 +0200 Subject: [PATCH 03/84] Fix: disable image upload button (see #2178) --- src/UI/SpecialVisualizations.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/UI/SpecialVisualizations.ts b/src/UI/SpecialVisualizations.ts index 5e04a6947d..5783ba2ca7 100644 --- a/src/UI/SpecialVisualizations.ts +++ b/src/UI/SpecialVisualizations.ts @@ -714,14 +714,15 @@ export default class SpecialVisualizations { }, ], constr: (state, tags, args) => { - const targetKey = args[0] === "" ? undefined : args[0] + return new FixedUiElement("Due to a technical limitation, image uploads are currently not possible").SetClass("subtle low-interaction p-4np") + /*const targetKey = args[0] === "" ? undefined : args[0] return new SvelteUIElement(UploadImage, { state, tags, targetKey, labelText: args[1], image: args[2], - }) + })*/ }, }, { From 0bdc1aec61ec742d141bb3882be07b6d99df654e Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 26 Sep 2024 19:15:20 +0200 Subject: [PATCH 04/84] Feat: Use panoramax to upload to. Will contain bugs --- assets/layers/usersettings/usersettings.json | 70 +------- langs/en.json | 4 +- package-lock.json | 84 ++++++++++ package.json | 6 + src/Logic/ImageProviders/AllImageProviders.ts | 6 + src/Logic/ImageProviders/ImageProvider.ts | 5 +- .../ImageProviders/ImageUploadManager.ts | 51 +++--- src/Logic/ImageProviders/ImageUploader.ts | 11 +- src/Logic/ImageProviders/Imgur.ts | 38 +---- src/Logic/ImageProviders/LicenseInfo.ts | 18 +- src/Logic/ImageProviders/Panoramax.ts | 158 ++++++++++++++++++ src/Logic/Osm/Changes.ts | 7 +- src/Logic/SimpleMetaTagger.ts | 4 - src/Logic/Web/NameSuggestionIndex.ts | 4 +- src/Models/Constants.ts | 3 + src/Models/ThemeViewState.ts | 29 +--- src/UI/Image/UploadImage.svelte | 1 - src/UI/SpecialVisualization.ts | 14 +- src/UI/SpecialVisualizations.ts | 5 +- 19 files changed, 325 insertions(+), 193 deletions(-) create mode 100644 src/Logic/ImageProviders/Panoramax.ts diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json index fbfa9bfd97..2be4b4763a 100644 --- a/assets/layers/usersettings/usersettings.json +++ b/assets/layers/usersettings/usersettings.json @@ -498,75 +498,7 @@ } ] }, - { - "id": "picture-license", - "description": "This question is not meant to be placed on an OpenStreetMap-element; however it is used in the user information panel to ask which license the user wants", - "question": { - "en": "Under what license do you want to publish your pictures?", - "de": "Unter welcher Lizenz möchten Sie Ihre Bilder veröffentlichen?", - "nl": "Met welke licentie wil je je afbeeldingen toevoegen?", - "ca": "Sota quina llicència vols publicar les teves fotos?", - "pt": "Sob que licença você deseja publicar suas fotos?", - "cs": "Pod jakou licencí chcete své fotografie zveřejnit?", - "da": "Under hvilken licens vil du frigive dine billeder?" - }, - "mappings": [ - { - "if": "mapcomplete-pictures-license=", - "icon": "./assets/layers/usersettings/scale.svg", - "then": { - "en": "Pictures you take will be licensed with CC0 and added to the public domain. This means that everyone can use your pictures for any purpose. This is the default choice.", - "de": "Die von Ihnen aufgenommenen Bilder werden mit CC0 lizenziert und der Public Domain hinzugefügt. Das bedeutet, dass jeder Ihre Bilder für jeden Zweck verwenden kann. Dies ist die Standardeinstellung.", - "nl": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC0-licentie en dus aan het publieke domein toegevoegd worden. Dit betekent dat iedereen je afbeeldingen kan gebruiken voor elk mogelijks gebruik. Dit is de standaard-instelling", - "cs": "Pořízené fotografie budou licencovány pod CC0 a přidány do veřejné domény. To znamená, že kdokoli může vaše snímky použít k jakémukoli účelu. Toto je výchozí volba.", - "ca": "Les imatges que feu tindran llicència CC0 i s'afegiran al domini públic. Això vol dir que tothom pot utilitzar les vostres imatges per a qualsevol propòsit. Aquesta és l'opció predeterminada. ", - "pt": "As fotos que você tirar serão licenciadas com CC0 e adicionadas ao domínio público. Isso significa que todos podem usar suas fotos para qualquer finalidade. Esta é a escolha padrão." - }, - "hideInAnswer": true - }, - { - "if": "mapcomplete-pictures-license=CC0", - "icon": "./assets/layers/usersettings/scale.svg", - "then": { - "en": "Pictures you take will be licensed with CC0 and added to the public domain. This means that everyone can use your pictures for any purpose.", - "de": "Ihre aufgenommenen Bilder werden mit CC0 lizenziert und der Public Domain hinzugefügt. Das bedeutet, dass jeder Ihre Bilder für jeden Zweck verwenden kann.", - "nl": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC0-licentie en dus aan het publieke domein toegevoegd worden. Dit betekent dat iedereen je afbeeldingen kan gebruiken voor elk mogelijks gebruik.", - "ru": "Изображения будут опубликованы под лицензией CC0 и перейдут в общественное достояние. Это значит, что кто угодно имеет право использовать их без ограничений.", - "cs": "Pořízené fotografie budou licencovány pod CC0 a přidány do veřejné domény. To znamená, že kdokoli může vaše snímky použít k jakémukoli účelu.", - "ca": "Les imatges que feu tindran llicència CC0 i s'afegiran al domini públic. Això vol dir que tothom pot utilitzar les vostres imatges per a qualsevol propòsit.", - "es": "Las fotografías que tome tendrán una licencia con CC0 y se agregarán al dominio público. Esto significa que todos pueden usar sus imágenes para cualquier propósito.", - "pt": "As fotos que você tirar serão licenciadas com CC0 e adicionadas ao domínio público. Isso significa que todos podem usar suas fotos para qualquer finalidade.", - "da": "Billeder, som du har taget, vil blive udgivet under CC0-licensen og lagt ud i fælleseje. Det betyder, at alle kan bruge dine billeder til ethvert formål.", - "fr": "Les photos que vous avez ajoutées seront sous licence CC0 et mises dans le domaine public. Cela signifie que n'importe qui pourra les utiliser, quel qu'en soit l'usage." - } - }, - { - "if": "mapcomplete-pictures-license=CC-BY 4.0", - "icon": "./assets/layers/usersettings/scale.svg", - "then": { - "en": "Pictures you take will be licensed with CC-BY 4.0 which requires everyone using your picture that they have to attribute you", - "ca": "Les fotografies que facis es publicaran sota CC-BY 4.0 que requereix que qualsevol que utilitzi la vostra imatge us ha de donar crèdits", - "de": "Die von Ihnen aufgenommenen Bilder werden mit CC-BY 4.0 lizenziert, was bedeutet, dass jeder, der Ihr Bild verwendet, Sie als Urheber nennen muss", - "nl": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC-BY 4.0-licentie. Dit betekent dat iedereen je afbeelding mag gebruiken voor elke toepassing mits het vermelden van je naam", - "cs": "Pořízené fotografie budou licencovány pod CC-BY 4.0, což vyžaduje, aby vás uvedl každý, kdo použije vaší fotku", - "pt": "As fotos que você tirar serão licenciadas com CC-BY 4.0, que exige que todos que usam sua foto atribuam a você" - } - }, - { - "if": "mapcomplete-pictures-license=CC-BY-SA 4.0", - "icon": "./assets/layers/usersettings/scale.svg", - "then": { - "en": "Pictures you take will be licensed with CC-BY-SA 4.0 which means that everyone using your picture must attribute you and that derivatives of your picture must be reshared with the same license.", - "de": "Die von Ihnen aufgenommenen Bilder werden mit CC-BY-SA 4.0 lizenziert, was bedeutet, dass jeder, der Ihr Bild verwendet, Sie als Urheber nennen muss und dass Ableitungen Ihres Bildes mit der gleichen Lizenz weitergegeben werden müssen.", - "nl": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC-BY-SA 4.0-licentie. Dit betekent dat iedereen je afbeelding mag gebruiken voor elke toepassing mits het vermelden van je naam en dat afgeleide werken van je afbeelding ook ondere deze licentie moeten gepubliceerd worden.", - "cs": "Pořízené fotografie budou licencovány pod CC-BY-SA 4.0, což vyžaduje, aby vás uvedl každý, kdo použije vaší fotku a že odvozené fotky musí být dále sdíleny se stejnou licencí.", - "ca": "Les imatges que feu tindran una llicència amb CC-BY-SA 4.0 el que significa que tothom que utilitzi la vostra imatge us ha d'atribuir i que els derivats de la vostra imatge s'han de tornar a compartir amb la mateixa llicència.", - "fr": "Les photos que vous prenez seront sous la licence CC-BY-SA 4.0 ce qui signifie que quiconque utilisant votre photo doit vous créditer et que les modifications apportées à votre photo doivent être repartagées avec la même licence.", - "pt": "As fotos que você tirar serão licenciadas com CC-BY-SA 4.0, o que significa que todos que usarem sua foto devem atribuí-lo e que os derivados de sua foto devem ser compartilhados novamente com a mesma licença." - } - } - ] - }, + { "id": "show_tags", "question": { diff --git a/langs/en.json b/langs/en.json index e4e1cbda72..1c68d81949 100644 --- a/langs/en.json +++ b/langs/en.json @@ -577,7 +577,7 @@ "title": "Nearby streetview imagery" }, "pleaseLogin": "Please log in to add a picture", - "respectPrivacy": "Do not photograph people nor license plates. Do not upload Google Maps, Google Streetview or other copyrighted sources.", + "respectPrivacy": "Do not upload Google Maps, Google Streetview or other copyrighted sources.", "toBig": "Your image is too large as it is {actual_size}. Please use images of at most {max_size}", "upload": { "failReasons": "You might have lost connection to the internet", @@ -873,4 +873,4 @@ "startsWithQ": "A wikidata identifier starts with Q and is followed by a number" } } -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index be13f6370c..2e4e434890 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,6 +39,7 @@ "dompurify": "^3.0.5", "email-validator": "^2.0.4", "escape-html": "^1.0.3", + "exifreader": "^4.23.5", "fake-dom": "^1.0.4", "flowbite-svelte": "^0.46.2", "follow-redirects": "^1.15.6", @@ -62,6 +63,7 @@ "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", + "panoramax-js": "^0.1.1", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pbf": "^3.2.1", @@ -4908,6 +4910,19 @@ "node": ">= 8" } }, + "node_modules/@ogcapi-js/features": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ogcapi-js/features/-/features-1.1.1.tgz", + "integrity": "sha512-/w6kFvAXWO+F0/nLC5m11tuOw0LX+gVz/OCLiDkElXO9ko9F9OA3AbzKZxJaE5Buu0KUGn+TRxS6w1xhZc4KRA==", + "dependencies": { + "@ogcapi-js/shared": "^1.1.1" + } + }, + "node_modules/@ogcapi-js/shared": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ogcapi-js/shared/-/shared-1.1.1.tgz", + "integrity": "sha512-EQ6T4iVXwIMnBcdpR2C0YnNNCxtNWHpWg0Hs9uEvH4BPZI2xT87gV+WRw8/hYAe8EtrK6j57iluBoSyHiAQweQ==" + }, "node_modules/@parcel/service-worker": { "version": "2.8.2", "dev": true, @@ -10048,6 +10063,24 @@ "node": ">=0.8.x" } }, + "node_modules/exifreader": { + "version": "4.23.5", + "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.23.5.tgz", + "integrity": "sha512-Gy9FXSBW+4ivu4aNtthGHAPEfVJ72z4aN9Iusr3YiIOy+ZCh7NWfoswCXZV/CH8MpOJE2Ij4hmmKQPGvo4Vf9g==", + "hasInstallScript": true, + "optionalDependencies": { + "@xmldom/xmldom": "^0.8.10" + } + }, + "node_modules/exifreader/node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/expand-template": { "version": "2.0.3", "dev": true, @@ -15960,6 +15993,17 @@ "version": "1.0.0", "license": "MIT" }, + "node_modules/panoramax-js": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.1.tgz", + "integrity": "sha512-6R/Bo89Nwln92zG0TwqxGhtjn6dyDrxMEO/lTTtgTZc1lkEF2znHfDXKJa4YfTPUz14FtNVOV1IWmPsp/YULYw==", + "dependencies": { + "@ogcapi-js/features": "^1.1.1", + "@ogcapi-js/shared": "^1.1.1", + "@types/geojson": "^7946.0.14", + "json-schema": "^0.4.0" + } + }, "node_modules/panzoom": { "version": "9.4.3", "license": "MIT", @@ -24679,6 +24723,19 @@ "fastq": "^1.6.0" } }, + "@ogcapi-js/features": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ogcapi-js/features/-/features-1.1.1.tgz", + "integrity": "sha512-/w6kFvAXWO+F0/nLC5m11tuOw0LX+gVz/OCLiDkElXO9ko9F9OA3AbzKZxJaE5Buu0KUGn+TRxS6w1xhZc4KRA==", + "requires": { + "@ogcapi-js/shared": "^1.1.1" + } + }, + "@ogcapi-js/shared": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@ogcapi-js/shared/-/shared-1.1.1.tgz", + "integrity": "sha512-EQ6T4iVXwIMnBcdpR2C0YnNNCxtNWHpWg0Hs9uEvH4BPZI2xT87gV+WRw8/hYAe8EtrK6j57iluBoSyHiAQweQ==" + }, "@parcel/service-worker": { "version": "2.8.2", "dev": true @@ -28120,6 +28177,22 @@ "events": { "version": "3.3.0" }, + "exifreader": { + "version": "4.23.5", + "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.23.5.tgz", + "integrity": "sha512-Gy9FXSBW+4ivu4aNtthGHAPEfVJ72z4aN9Iusr3YiIOy+ZCh7NWfoswCXZV/CH8MpOJE2Ij4hmmKQPGvo4Vf9g==", + "requires": { + "@xmldom/xmldom": "^0.8.10" + }, + "dependencies": { + "@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "optional": true + } + } + }, "expand-template": { "version": "2.0.3", "dev": true @@ -31982,6 +32055,17 @@ "packet-reader": { "version": "1.0.0" }, + "panoramax-js": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.1.tgz", + "integrity": "sha512-6R/Bo89Nwln92zG0TwqxGhtjn6dyDrxMEO/lTTtgTZc1lkEF2znHfDXKJa4YfTPUz14FtNVOV1IWmPsp/YULYw==", + "requires": { + "@ogcapi-js/features": "^1.1.1", + "@ogcapi-js/shared": "^1.1.1", + "@types/geojson": "^7946.0.14", + "json-schema": "^0.4.0" + } + }, "panzoom": { "version": "9.4.3", "requires": { diff --git a/package.json b/package.json index 0bdfe22db0..f1c23f80cf 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,10 @@ "imgur": "7070e7167f0a25a", "mapillary_v4": "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85" }, + "panoramax": { + "url": "https://panoramax.mapcomplete.org", + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnZW92aXNpbyIsInN1YiI6IjU5ZjgzOGI0LTM4ZjAtNDdjYi04OWYyLTM3NDQ3MWMxNTUxOCJ9.0rBioZS_48NTjnkIyN9497c3fQdTqtGgH1HDqlz1bWs" + }, "default_overpass_urls": [ "https://overpass-api.de/api/interpreter", "https://overpass.private.coffee/api/interpreter", @@ -177,6 +181,7 @@ "dompurify": "^3.0.5", "email-validator": "^2.0.4", "escape-html": "^1.0.3", + "exifreader": "^4.23.5", "fake-dom": "^1.0.4", "flowbite-svelte": "^0.46.2", "follow-redirects": "^1.15.6", @@ -200,6 +205,7 @@ "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", + "panoramax-js": "^0.1.1", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pbf": "^3.2.1", diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts index 05ad002e25..4304c0bd90 100644 --- a/src/Logic/ImageProviders/AllImageProviders.ts +++ b/src/Logic/ImageProviders/AllImageProviders.ts @@ -5,6 +5,7 @@ import GenericImageProvider from "./GenericImageProvider" import { Store, UIEventSource } from "../UIEventSource" import ImageProvider, { ProvidedImage } from "./ImageProvider" import { WikidataImageProvider } from "./WikidataImageProvider" +import Panoramax from "./Panoramax" /** * A generic 'from the interwebz' image picker, without attribution @@ -28,6 +29,7 @@ export default class AllImageProviders { Mapillary.singleton, WikidataImageProvider.singleton, WikimediaImageProvider.singleton, + Panoramax.singleton, AllImageProviders.genericImageProvider, ] public static apiUrls: string[] = [].concat( @@ -41,6 +43,7 @@ export default class AllImageProviders { mapillary: Mapillary.singleton, wikidata: WikidataImageProvider.singleton, wikimedia: WikimediaImageProvider.singleton, + panoramax: Panoramax.singleton } private static _cache: Map> = new Map< string, @@ -66,6 +69,9 @@ export default class AllImageProviders { return AllImageProviders.genericImageProvider } + /** + * Tries to extract all image data for this image + */ public static LoadImagesFor( tags: Store>, tagKey?: string[] diff --git a/src/Logic/ImageProviders/ImageProvider.ts b/src/Logic/ImageProviders/ImageProvider.ts index a89ee86005..7fe3b7b02e 100644 --- a/src/Logic/ImageProviders/ImageProvider.ts +++ b/src/Logic/ImageProviders/ImageProvider.ts @@ -36,7 +36,7 @@ export default abstract class ImageProvider { prefixes?: string[] } ): UIEventSource { - const prefixes = options?.prefixes ?? this.defaultKeyPrefixes + const prefixes = Utils.Dedup(options?.prefixes ?? this.defaultKeyPrefixes) if (prefixes === undefined) { throw "No `defaultKeyPrefixes` defined by this image provider" } @@ -46,6 +46,9 @@ export default abstract class ImageProvider { const seenValues = new Set() allTags.addCallbackAndRunD((tags) => { for (const key in tags) { + if(key === "panoramax"){ + console.log("Inspecting", key,"against", prefixes) + } if (!prefixes.some((prefix) => key.startsWith(prefix))) { continue } diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index 4b88623b78..798008f199 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -9,6 +9,8 @@ import { Changes } from "../Osm/Changes" import Translations from "../../UI/i18n/Translations" import NoteCommentElement from "../../UI/Popup/Notes/NoteCommentElement" import { Translation } from "../../UI/i18n/Translation" +import { IndexedFeatureSource } from "../FeatureSource/FeatureSource" +import { GeoOperations } from "../GeoOperations" /** * The ImageUploadManager has a @@ -17,7 +19,8 @@ export class ImageUploadManager { private readonly _uploader: ImageUploader private readonly _featureProperties: FeaturePropertiesStore private readonly _layout: LayoutConfig - + private readonly _indexedFeatures: IndexedFeatureSource + private readonly _gps: Store private readonly _uploadStarted: Map> = new Map() private readonly _uploadFinished: Map> = new Map() private readonly _uploadFailed: Map> = new Map() @@ -32,13 +35,17 @@ export class ImageUploadManager { uploader: ImageUploader, featureProperties: FeaturePropertiesStore, osmConnection: OsmConnection, - changes: Changes + changes: Changes, + gpsLocation: Store, + allFeatures: IndexedFeatureSource, ) { this._uploader = uploader this._featureProperties = featureProperties this._layout = layout this._osmConnection = osmConnection this._changes = changes + this._indexedFeatures = allFeatures + this._gps = gpsLocation const failed = this.getCounterFor(this._uploadFailed, "*") const done = this.getCounterFor(this._uploadFinished, "*") @@ -47,7 +54,7 @@ export class ImageUploadManager { (startedCount) => { return startedCount > failed.data + done.data }, - [failed, done] + [failed, done], ) } @@ -96,7 +103,7 @@ export class ImageUploadManager { public async uploadImageAndApply( file: File, tagsStore: UIEventSource, - targetKey?: string + targetKey?: string, ): Promise { const canBeUploaded = this.canBeUploaded(file) if (canBeUploaded !== true) { @@ -105,28 +112,15 @@ export class ImageUploadManager { const tags = tagsStore.data const featureId = tags.id - const licenseStore = this._osmConnection?.GetPreference("pictures-license", "CC0") - const license = licenseStore?.data ?? "CC0" - const matchingLayer = this._layout?.getMatchingLayer(tags) - - const title = - matchingLayer?.title?.GetRenderValue(tags)?.Subs(tags)?.textFor("en") ?? - tags.name ?? - "https//osm.org/" + tags.id - const description = [ - "author:" + this._osmConnection.userDetails.data.name, - "license:" + license, - "osmid:" + tags.id, - ].join("\n") + const author = this._osmConnection.userDetails.data.name const action = await this.uploadImageWithLicense( featureId, - title, - description, + author, file, targetKey, - tags?.data?.["_orig_theme"] + tags?.data?.["_orig_theme"], ) if (!action) { @@ -146,23 +140,30 @@ export class ImageUploadManager { private async uploadImageWithLicense( featureId: OsmId, - title: string, - description: string, + author: string, blob: File, targetKey: string | undefined, - theme?: string + theme?: string, ): Promise { this.increaseCountFor(this._uploadStarted, featureId) const properties = this._featureProperties.getStore(featureId) let key: string let value: string + let location: [number, number] = undefined + if (this._gps.data) { + location = [this._gps.data.longitude, this._gps.data.latitude] + } + if (location === undefined || location?.some(l => l === undefined)) { + const feature = this._indexedFeatures.featuresById.data.get(featureId) + location = GeoOperations.centerpointCoordinates(feature) + } try { - ;({ key, value } = await this._uploader.uploadImage(title, description, blob)) + ;({ key, value } = await this._uploader.uploadImage(blob, location, author)) } catch (e) { this.increaseCountFor(this._uploadRetried, featureId) console.error("Could not upload image, trying again:", e) try { - ;({ key, value } = await this._uploader.uploadImage(title, description, blob)) + ;({ key, value } = await this._uploader.uploadImage(blob, location, author)) this.increaseCountFor(this._uploadRetriedSuccess, featureId) } catch (e) { console.error("Could again not upload image due to", e) diff --git a/src/Logic/ImageProviders/ImageUploader.ts b/src/Logic/ImageProviders/ImageUploader.ts index 40601892be..fbfb56abcd 100644 --- a/src/Logic/ImageProviders/ImageUploader.ts +++ b/src/Logic/ImageProviders/ImageUploader.ts @@ -1,15 +1,14 @@ +import { Feature } from "geojson" + export interface ImageUploader { maxFileSizeInMegabytes?: number /** * Uploads the 'blob' as image, with some metadata. * Returns the URL to be linked + the appropriate key to add this to OSM - * @param title - * @param description - * @param blob */ uploadImage( - title: string, - description: string, - blob: File + blob: File, + currentGps: [number,number], + author: string ): Promise<{ key: string; value: string }> } diff --git a/src/Logic/ImageProviders/Imgur.ts b/src/Logic/ImageProviders/Imgur.ts index dbc2ff44c2..f5b2c06b12 100644 --- a/src/Logic/ImageProviders/Imgur.ts +++ b/src/Logic/ImageProviders/Imgur.ts @@ -3,14 +3,12 @@ import BaseUIElement from "../../UI/BaseUIElement" import { Utils } from "../../Utils" import Constants from "../../Models/Constants" import { LicenseInfo } from "./LicenseInfo" -import { ImageUploader } from "./ImageUploader" -export class Imgur extends ImageProvider implements ImageUploader { +export class Imgur extends ImageProvider { public static readonly defaultValuePrefix = ["https://i.imgur.com"] public static readonly singleton = new Imgur() public readonly name = "Imgur" public readonly defaultKeyPrefixes: string[] = ["image"] - public readonly maxFileSizeInMegabytes = 10 public static readonly apiUrl = "https://api.imgur.com/3/image" public static readonly supportingUrls = ["https://i.imgur.com"] private constructor() { @@ -21,40 +19,6 @@ export class Imgur extends ImageProvider implements ImageUploader { return [Imgur.apiUrl] } - /** - * Uploads an image, returns the URL where to find the image - * @param title - * @param description - * @param blob - */ - public async uploadImage( - title: string, - description: string, - blob: File - ): Promise<{ key: string; value: string }> { - const apiUrl = Imgur.apiUrl - const apiKey = Constants.ImgurApiKey - - const formData = new FormData() - formData.append("image", blob) - formData.append("title", title) - formData.append("description", description) - - const settings: RequestInit = { - method: "POST", - body: formData, - redirect: "follow", - headers: new Headers({ - Authorization: `Client-ID ${apiKey}`, - Accept: "application/json", - }), - } - - // Response contains stringified JSON - const response = await fetch(apiUrl, settings) - const content = await response.json() - return { key: "image", value: content.data.link } - } SourceIcon(): BaseUIElement { return undefined diff --git a/src/Logic/ImageProviders/LicenseInfo.ts b/src/Logic/ImageProviders/LicenseInfo.ts index 99998e75d2..da82a9b37b 100644 --- a/src/Logic/ImageProviders/LicenseInfo.ts +++ b/src/Logic/ImageProviders/LicenseInfo.ts @@ -1,14 +1,14 @@ export class LicenseInfo { - title: string = "" + title?: string = "" artist: string = "" - license: string = undefined - licenseShortName: string = "" - usageTerms: string = "" - attributionRequired: boolean = false - copyrighted: boolean = false - credit: string = "" - description: string = "" - informationLocation: URL = undefined + license?: string = undefined + licenseShortName?: string = "" + usageTerms?: string = "" + attributionRequired?: boolean = false + copyrighted?: boolean = false + credit?: string = "" + description?: string = "" + informationLocation?: URL = undefined date?: Date views?: number } diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts new file mode 100644 index 0000000000..67e82e0a99 --- /dev/null +++ b/src/Logic/ImageProviders/Panoramax.ts @@ -0,0 +1,158 @@ +import { ImageUploader } from "./ImageUploader" +import { AuthorizedPanoramax } from "panoramax-js/dist" +import ExifReader from "exifreader" +import ImageProvider, { ProvidedImage } from "./ImageProvider" +import BaseUIElement from "../../UI/BaseUIElement" +import { LicenseInfo } from "./LicenseInfo" +import { Utils } from "../../Utils" +import { Feature, FeatureCollection, Point } from "geojson" +import { GeoOperations } from "../GeoOperations" + +type ImageData = Feature & { + id: string, + assets: { hd: { href: string }, sd: { href: string } }, + providers: {name: string}[] +} + +export default class PanoramaxImageProvider extends ImageProvider { + + public static readonly singleton = new PanoramaxImageProvider() + + public defaultKeyPrefixes: string[] = ["panoramax", "image"] + public readonly name: string = "panoramax" + + private static knownMeta: Record = {} + + public SourceIcon(id?: string, location?: { lon: number; lat: number; }): BaseUIElement { + return undefined + } + + public addKnownMeta(meta: ImageData){ + console.log("Adding known meta for", meta.id) + PanoramaxImageProvider.knownMeta[meta.id] = meta + } + + /** + * Tries to get the entry from the mapcomplete-panoramax instance. Might return undefined + * @param id + * @private + */ + private async getInfoFromMapComplete(id: string): Promise<{ data: ImageData, url: string }> { + const sequence = "6e702976-580b-419c-8fb3-cf7bd364e6f8" // We always reuse this sequence + const url = `https://panoramax.mapcomplete.org/api/collections/${sequence}/items/${id}` + const data = await Utils.downloadJsonCached(url, 60 * 60 * 1000) + return {url, data} + } + + private async getInfoFromXYZ(imageId: string): Promise<{ data: ImageData, url: string }> { + const url = "https://api.panoramax.xyz/api/search?limit=1&ids=" + imageId + const metaAll = await Utils.downloadJsonCached>(url, 1000 * 60 * 60) + const data= metaAll.features[0] + return {data, url} + } + + + /** + * Reads a geovisio-somewhat-looking-like-geojson object and converts it to a provided image + * @param meta + * @private + */ + private featureToImage(info: {data: ImageData, url: string}) { + const meta = info.data + const url = info.url + if (!meta) { + return undefined + } + + function makeAbsolute(s: string){ + if(!s.startsWith("https://") && !s.startsWith("http://")){ + const parsed = new URL(url) + return parsed.protocol+"//"+parsed.host+s + } + return s + } + + const [lon, lat] = GeoOperations.centerpointCoordinates(meta) + return { + id: meta.id, + url: makeAbsolute(meta.assets.sd.href), + url_hd: makeAbsolute(meta.assets.hd.href), + lon, lat, + key: "panoramax", + provider: this, + rotation: Number(meta.properties["view:azimuth"]), + date: new Date(meta.properties.datetime), + } + } + + private async getInfoFor(id: string): Promise<{ data: ImageData, url: string }> { + const cached= PanoramaxImageProvider.knownMeta[id] + console.log("Cached version", id, cached) + if(cached){ + return {data: cached, url: undefined} + } + try { + return await this.getInfoFromMapComplete(id) + } catch (e) { + return await this.getInfoFromXYZ(id) + } + } + + + public async ExtractUrls(key: string, value: string): Promise[]> { + return [this.getInfoFor(value).then(r => this.featureToImage(r))] + } + + public async DownloadAttribution(providedImage: { url: string; id: string; }): Promise { + const meta = await this.getInfoFor(providedImage.id) + + return { + artist: meta.data.providers.at(-1).name, // We take the last provider, as that one probably contain the username of the uploader + date: new Date(meta.data.properties["datetime"]), + licenseShortName: meta.data.properties["geovisio:license"], + } + } + + public apiUrls(): string[] { + return ["https://panoramax.mapcomplete.org", "https://panoramax.xyz"] + } +} + +export class PanoramaxUploader implements ImageUploader { + private readonly _panoramax: AuthorizedPanoramax + + constructor(url: string, token: string) { + this._panoramax = new AuthorizedPanoramax(url, token) + } + + async uploadImage(blob: File, currentGps: [number, number], author: string): Promise<{ + key: string; + value: string; + }> { + + const tags = await ExifReader.load(blob) + const hasDate = tags.DateTime !== undefined + const hasGPS = tags.GPSLatitude !== undefined && tags.GPSLongitude !== undefined + + const [lon, lat] = currentGps + + const p = this._panoramax + const defaultSequence = (await p.mySequences())[0] + const img = await p.addImage(blob, defaultSequence, { + lat: !hasGPS ? lat : undefined, + lon: !hasGPS ? lon : undefined, + datetime: !hasDate ? new Date().toISOString() : undefined, + exifOverride: { + Artist: author, + }, + + }) + PanoramaxImageProvider.singleton.addKnownMeta(img) + await Utils.waitFor(1250) + return { + key: "panoramax", + value: img.id, + } + } + +} diff --git a/src/Logic/Osm/Changes.ts b/src/Logic/Osm/Changes.ts index 6c6ffc3dd6..48d67b845e 100644 --- a/src/Logic/Osm/Changes.ts +++ b/src/Logic/Osm/Changes.ts @@ -1,5 +1,5 @@ import { OsmNode, OsmObject, OsmRelation, OsmWay } from "./OsmObject" -import { Store, UIEventSource } from "../UIEventSource" +import { UIEventSource } from "../UIEventSource" import Constants from "../../Models/Constants" import OsmChangeAction from "./Actions/OsmChangeAction" import { ChangeDescription, ChangeDescriptionTools } from "./Actions/ChangeDescription" @@ -11,7 +11,6 @@ import { GeoLocationPointProperties } from "../State/GeoLocationState" import { GeoOperations } from "../GeoOperations" import { ChangesetHandler, ChangesetTag } from "./ChangesetHandler" import { OsmConnection } from "./OsmConnection" -import FeaturePropertiesStore from "../FeatureSource/Actors/FeaturePropertiesStore" import OsmObjectDownloader from "./OsmObjectDownloader" import ChangeLocationAction from "./Actions/ChangeLocationAction" import ChangeTagAction from "./Actions/ChangeTagAction" @@ -62,9 +61,9 @@ export class Changes { this.backend = state.osmConnection.Backend() this._reportError = reportError this._changesetHandler = new ChangesetHandler( - state.dryRun, + state.featureSwitches.featureSwitchIsTesting, state.osmConnection, - state.featurePropertiesStore, + state.featureProperties, this, (e, extramessage: string) => this._reportError(e, extramessage) ) diff --git a/src/Logic/SimpleMetaTagger.ts b/src/Logic/SimpleMetaTagger.ts index 203168d000..611207a47a 100644 --- a/src/Logic/SimpleMetaTagger.ts +++ b/src/Logic/SimpleMetaTagger.ts @@ -1,10 +1,6 @@ import { GeoOperations } from "./GeoOperations" import { Utils } from "../Utils" import opening_hours from "opening_hours" -import Combine from "../UI/Base/Combine" -import BaseUIElement from "../UI/BaseUIElement" -import Title from "../UI/Base/Title" -import { FixedUiElement } from "../UI/Base/FixedUiElement" import LayerConfig from "../Models/ThemeConfig/LayerConfig" import { CountryCoder } from "latlon2country" import Constants from "../Models/Constants" diff --git a/src/Logic/Web/NameSuggestionIndex.ts b/src/Logic/Web/NameSuggestionIndex.ts index 1ab6694705..bb03af6b3e 100644 --- a/src/Logic/Web/NameSuggestionIndex.ts +++ b/src/Logic/Web/NameSuggestionIndex.ts @@ -291,6 +291,8 @@ export default class NameSuggestionIndex { if (location === undefined) { return true } + console.log("Resolving location", i.locationSet) + /* const resolvedSet = NameSuggestionIndex.loco.resolveLocationSet(i.locationSet) if (resolvedSet) { @@ -299,7 +301,7 @@ export default class NameSuggestionIndex { const setFeature: Feature = resolvedSet.feature return turf.booleanPointInPolygon(location, setFeature.geometry) } - +*/ return false }) } diff --git a/src/Models/Constants.ts b/src/Models/Constants.ts index 20190e43c8..96d1ffa9f9 100644 --- a/src/Models/Constants.ts +++ b/src/Models/Constants.ts @@ -47,6 +47,9 @@ export default class Constants { ...Constants.added_by_default, ...Constants.no_include, ] as const + + public static panoramax: { url: string, token: string } = packagefile.config.panoramax + // The user journey states thresholds when a new feature gets unlocked public static userJourney = { moreScreenUnlock: 1, diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts index 1e27300144..b052e56aee 100644 --- a/src/Models/ThemeViewState.ts +++ b/src/Models/ThemeViewState.ts @@ -2,11 +2,7 @@ import LayoutConfig from "./ThemeConfig/LayoutConfig" import { SpecialVisualizationState } from "../UI/SpecialVisualization" import { Changes } from "../Logic/Osm/Changes" import { Store, UIEventSource } from "../Logic/UIEventSource" -import { - FeatureSource, - IndexedFeatureSource, - WritableFeatureSource -} from "../Logic/FeatureSource/FeatureSource" +import { FeatureSource, IndexedFeatureSource, WritableFeatureSource } from "../Logic/FeatureSource/FeatureSource" import { OsmConnection } from "../Logic/Osm/OsmConnection" import { ExportableMap, MapProperties } from "./MapProperties" import LayerState from "../Logic/State/LayerState" @@ -50,13 +46,10 @@ import BackgroundLayerResetter from "../Logic/Actors/BackgroundLayerResetter" import SaveFeatureSourceToLocalStorage from "../Logic/FeatureSource/Actors/SaveFeatureSourceToLocalStorage" import BBoxFeatureSource from "../Logic/FeatureSource/Sources/TouchesBboxFeatureSource" import ThemeViewStateHashActor from "../Logic/Web/ThemeViewStateHashActor" -import NoElementsInViewDetector, { - FeatureViewState -} from "../Logic/Actors/NoElementsInViewDetector" +import NoElementsInViewDetector, { FeatureViewState } from "../Logic/Actors/NoElementsInViewDetector" import FilteredLayer from "./FilteredLayer" import { PreferredRasterLayerSelector } from "../Logic/Actors/PreferredRasterLayerSelector" import { ImageUploadManager } from "../Logic/ImageProviders/ImageUploadManager" -import { Imgur } from "../Logic/ImageProviders/Imgur" import NearbyFeatureSource from "../Logic/FeatureSource/Sources/NearbyFeatureSource" import FavouritesFeatureSource from "../Logic/FeatureSource/Sources/FavouritesFeatureSource" import { ProvidedImage } from "../Logic/ImageProviders/ImageProvider" @@ -64,7 +57,7 @@ import { GeolocationControlState } from "../UI/BigComponents/GeolocationControl" import Zoomcontrol from "../UI/Zoomcontrol" import { SummaryTileSource, - SummaryTileSourceRewriter + SummaryTileSourceRewriter, } from "../Logic/FeatureSource/TiledFeatureSource/SummaryTileSource" import summaryLayer from "../assets/generated/layers/summary.json" import last_click_layerconfig from "../assets/generated/layers/last_click.json" @@ -73,6 +66,7 @@ import { LayerConfigJson } from "./ThemeConfig/Json/LayerConfigJson" import Hash from "../Logic/Web/Hash" import { GeoOperations } from "../Logic/GeoOperations" import { CombinedFetcher } from "../Logic/Web/NearbyImagesSearch" +import { PanoramaxUploader } from "../Logic/ImageProviders/Panoramax" /** * @@ -272,14 +266,7 @@ export default class ThemeViewState implements SpecialVisualizationState { this.featureProperties = new FeaturePropertiesStore(layoutSource) this.changes = new Changes( - { - dryRun: this.featureSwitches.featureSwitchIsTesting, - allElements: layoutSource, - featurePropertiesStore: this.featureProperties, - osmConnection: this.osmConnection, - historicalUserLocations: this.geolocation.historicalUserLocations, - featureSwitches: this.featureSwitches - }, + this, layout?.isLeftRightSensitive() ?? false, (e, extraMsg) => this.reportError(e, extraMsg) ) @@ -368,10 +355,12 @@ export default class ThemeViewState implements SpecialVisualizationState { this.hasDataInView = new NoElementsInViewDetector(this).hasFeatureInView this.imageUploadManager = new ImageUploadManager( layout, - Imgur.singleton, + new PanoramaxUploader(Constants.panoramax.url, Constants.panoramax.token), this.featureProperties, this.osmConnection, - this.changes + this.changes, + this.geolocation.geolocationState.currentGPSLocation, + this.indexedFeatures ) this.favourites = new FavouritesFeatureSource(this) const longAgo = new Date() diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte index 43dc42fec7..f07cd5f382 100644 --- a/src/UI/Image/UploadImage.svelte +++ b/src/UI/Image/UploadImage.svelte @@ -90,7 +90,6 @@ state.guistate.openUsersettings("picture-license") }} > -
diff --git a/src/UI/SpecialVisualization.ts b/src/UI/SpecialVisualization.ts index 8d58c14fd2..37aa7229e5 100644 --- a/src/UI/SpecialVisualization.ts +++ b/src/UI/SpecialVisualization.ts @@ -1,11 +1,7 @@ import { Store, UIEventSource } from "../Logic/UIEventSource" import BaseUIElement from "./BaseUIElement" import LayoutConfig from "../Models/ThemeConfig/LayoutConfig" -import { - FeatureSource, - IndexedFeatureSource, - WritableFeatureSource, -} from "../Logic/FeatureSource/FeatureSource" +import { FeatureSource, IndexedFeatureSource, WritableFeatureSource } from "../Logic/FeatureSource/FeatureSource" import { OsmConnection } from "../Logic/Osm/OsmConnection" import { Changes } from "../Logic/Osm/Changes" import { ExportableMap, MapProperties } from "../Models/MapProperties" @@ -18,9 +14,7 @@ import LayerConfig from "../Models/ThemeConfig/LayerConfig" import FeatureSwitchState from "../Logic/State/FeatureSwitchState" import { MenuState } from "../Models/MenuState" import OsmObjectDownloader from "../Logic/Osm/OsmObjectDownloader" -import { RasterLayerPolygon } from "../Models/RasterLayers" import { ImageUploadManager } from "../Logic/ImageProviders/ImageUploadManager" -import { OsmTags } from "../Models/OsmFeature" import FavouritesFeatureSource from "../Logic/FeatureSource/Sources/FavouritesFeatureSource" import { ProvidedImage } from "../Logic/ImageProviders/ImageProvider" import GeoLocationHandler from "../Logic/Actors/GeoLocationHandler" @@ -29,6 +23,7 @@ import LayoutSource from "../Logic/FeatureSource/Sources/LayoutSource" import { Map as MlMap } from "maplibre-gl" import ShowDataLayer from "./Map/ShowDataLayer" import { CombinedFetcher } from "../Logic/Web/NearbyImagesSearch" +import FeaturePropertiesStore from "../Logic/FeatureSource/Actors/FeaturePropertiesStore" /** * The state needed to render a special Visualisation. @@ -40,10 +35,7 @@ export interface SpecialVisualizationState { readonly layerState: LayerState readonly featureSummary: SummaryTileSourceRewriter - readonly featureProperties: { - getStore(id: string): UIEventSource> - trackFeature?(feature: { properties: OsmTags }) - } + readonly featureProperties: FeaturePropertiesStore readonly indexedFeatures: IndexedFeatureSource & LayoutSource /** diff --git a/src/UI/SpecialVisualizations.ts b/src/UI/SpecialVisualizations.ts index 5783ba2ca7..cc5a886914 100644 --- a/src/UI/SpecialVisualizations.ts +++ b/src/UI/SpecialVisualizations.ts @@ -714,15 +714,14 @@ export default class SpecialVisualizations { }, ], constr: (state, tags, args) => { - return new FixedUiElement("Due to a technical limitation, image uploads are currently not possible").SetClass("subtle low-interaction p-4np") - /*const targetKey = args[0] === "" ? undefined : args[0] + const targetKey = args[0] === "" ? undefined : args[0] return new SvelteUIElement(UploadImage, { state, tags, targetKey, labelText: args[1], image: args[2], - })*/ + }) }, }, { From f1329634856cb8280de1c5ead760b15cec167f4e Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 26 Sep 2024 19:17:18 +0200 Subject: [PATCH 05/84] chore(release): 0.46.10 --- CHANGELOG.md | 23 +++++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7eb16a3e6e..a319cdb35f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,29 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.46.10](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.9...v0.46.10) (2024-09-26) + + +### Features + +* Use panoramax to upload to. Will contain bugs ([0bdc1ae](https://github.com/USERNAME/REPOSITORY_NAME/commits0bdc1aec61ec742d141bb3882be07b6d99df654e)) + + +### Bug Fixes + +* disable image upload button (see [#2178](https://github.com/pietervdvn/MapComplete/issues/2178)) ([cf74296](https://github.com/USERNAME/REPOSITORY_NAME/commitscf74296d23de9ae6dab902205ebe860490627c00)) +* filtering for dates now works again ([bea9f66](https://github.com/USERNAME/REPOSITORY_NAME/commitsbea9f66b9aac9d2f13bca74b7a35cde7dd217e12)) +* fix loading images for CSP, fix [#2161](https://github.com/pietervdvn/MapComplete/issues/2161) ([2569d0c](https://github.com/USERNAME/REPOSITORY_NAME/commits2569d0cb66e411228d9d25cf50dc3278a83d0de5)) +* search fields in a filter are now wrapped into parentheses, allowing for OR as regex ([fb250fb](https://github.com/USERNAME/REPOSITORY_NAME/commitsfb250fb928da576b5649d398272387da72e89e5c)) +* studio now handles arrays better (might fix [#2102](https://github.com/pietervdvn/MapComplete/issues/2102)) ([0c9e41a](https://github.com/USERNAME/REPOSITORY_NAME/commits0c9e41a6ce4508ba3bc767f5eb5bd3cdb88201b2)) + + +### Theme improvements + +* **ghostsigns:** streamline ghostsigns theme, fix [#2168](https://github.com/pietervdvn/MapComplete/issues/2168), fix [#2167](https://github.com/pietervdvn/MapComplete/issues/2167) ([392fe3b](https://github.com/USERNAME/REPOSITORY_NAME/commits392fe3b190975b9e3c5cb4aadb4d1543aa686d9e)) +* **note:** add filter removing anything matching one or more keywords ([9c09da3](https://github.com/USERNAME/REPOSITORY_NAME/commits9c09da3c137a6af88b935108fe55aa8e1163ed2c)) +* **vending_machine:** add better 'fixme' if freeform for 'vending' is used ([dfce217](https://github.com/USERNAME/REPOSITORY_NAME/commitsdfce217288957be2b27c198d640fd2dd5d53c9fb)) + ### [0.46.9](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.8...v0.46.9) (2024-09-14) diff --git a/package-lock.json b/package-lock.json index 2e4e434890..0328e33b87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mapcomplete", - "version": "0.46.9", + "version": "0.46.10", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mapcomplete", - "version": "0.46.9", + "version": "0.46.10", "license": "GPL-3.0-or-later", "dependencies": { "@comunica/core": "^3.0.1", diff --git a/package.json b/package.json index f1c23f80cf..2b49962659 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapcomplete", - "version": "0.46.9", + "version": "0.46.10", "repository": "https://github.com/pietervdvn/MapComplete", "description": "A small website to edit OSM easily", "bugs": "https://github.com/pietervdvn/MapComplete/issues", From 0b992e75a481ffa5156f68d9a9fa3495a1fec4c9 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 27 Sep 2024 03:04:05 +0200 Subject: [PATCH 06/84] Fix: fix tests with some refactoring --- src/Logic/Osm/Changes.ts | 32 +- test/Logic/ActionInteraction.spec.ts | 11 +- .../OSM/Actions/RelationSplitHandler.spec.ts | 22 +- .../OSM/Actions/ReplaceGeometryAction.spec.ts | 305 +----------------- test/Logic/OSM/Actions/SplitAction.spec.ts | 27 +- test/Logic/OSM/Changes.spec.ts | 8 +- test/Logic/OSM/ChangesetHandler.spec.ts | 60 ++-- 7 files changed, 64 insertions(+), 401 deletions(-) diff --git a/src/Logic/Osm/Changes.ts b/src/Logic/Osm/Changes.ts index 48d67b845e..c84fa9b18c 100644 --- a/src/Logic/Osm/Changes.ts +++ b/src/Logic/Osm/Changes.ts @@ -1,5 +1,5 @@ import { OsmNode, OsmObject, OsmRelation, OsmWay } from "./OsmObject" -import { UIEventSource } from "../UIEventSource" +import { ImmutableStore, Store, UIEventSource } from "../UIEventSource" import Constants from "../../Models/Constants" import OsmChangeAction from "./Actions/OsmChangeAction" import { ChangeDescription, ChangeDescriptionTools } from "./Actions/ChangeDescription" @@ -14,10 +14,9 @@ import { OsmConnection } from "./OsmConnection" import OsmObjectDownloader from "./OsmObjectDownloader" import ChangeLocationAction from "./Actions/ChangeLocationAction" import ChangeTagAction from "./Actions/ChangeTagAction" -import FeatureSwitchState from "../State/FeatureSwitchState" import DeleteAction from "./Actions/DeleteAction" import MarkdownUtils from "../../Utils/MarkdownUtils" -import { SpecialVisualizationState } from "../../UI/SpecialVisualization" +import FeaturePropertiesStore from "../FeatureSource/Actors/FeaturePropertiesStore" /** * Handles all changes made to OSM. @@ -30,7 +29,9 @@ export class Changes { public readonly state: { allElements?: IndexedFeatureSource osmConnection: OsmConnection - featureSwitches?: FeatureSwitchState + featureSwitches?: { + featureSwitchMorePrivacy?: Store + } } public readonly extraComment: UIEventSource = new UIEventSource(undefined) public readonly backend: string @@ -44,7 +45,17 @@ export class Changes { private readonly _reportError?: (string: string | Error, extramessage?: string) => void constructor( - state: SpecialVisualizationState, + state: { + featureSwitches: { + featureSwitchMorePrivacy?: Store + featureSwitchIsTesting?: Store + }, + osmConnection: OsmConnection, + reportError?: (error: string) => void, + featureProperties?: FeaturePropertiesStore, + historicalUserLocations?: FeatureSource, + allElements?: IndexedFeatureSource + }, leftRightSensitive: boolean = false, reportError?: (string: string | Error, extramessage?: string) => void ) { @@ -53,7 +64,7 @@ export class Changes { this.allChanges.setData([...this.pendingChanges.data]) // If a pending change contains a negative ID, we save that this._nextId = Math.min(-1, ...(this.pendingChanges.data?.map((pch) => pch.id ?? 0) ?? [])) - if(isNaN(this._nextId)){ + if(isNaN(this._nextId) && state.reportError !== undefined){ state.reportError("Got a NaN as nextID. Pending changes IDs are:" +this.pendingChanges.data?.map(pch => pch?.id).join(".")) this._nextId = -100 } @@ -73,6 +84,15 @@ export class Changes { // This doesn't matter however, as the '-1' is per piecewise upload, not global per changeset } + public static createTestObject(): Changes{ + return new Changes({ + osmConnection: new OsmConnection(), + featureSwitches:{ + featureSwitchIsTesting: new ImmutableStore(true) + } + }) + } + static buildChangesetXML( csId: string, allChanges: { diff --git a/test/Logic/ActionInteraction.spec.ts b/test/Logic/ActionInteraction.spec.ts index 64f1aa8f40..8f89c48490 100644 --- a/test/Logic/ActionInteraction.spec.ts +++ b/test/Logic/ActionInteraction.spec.ts @@ -1,18 +1,11 @@ -import { ExtraFuncParams, ExtraFunctions } from "../../src/Logic/ExtraFunctions" -import { OsmFeature } from "../../src/Models/OsmFeature" import { describe, expect, it } from "vitest" -import { Feature } from "geojson" -import { OsmConnection } from "../../src/Logic/Osm/OsmConnection" -import { ImmutableStore, UIEventSource } from "../../src/Logic/UIEventSource" +import { UIEventSource } from "../../src/Logic/UIEventSource" import { Changes } from "../../src/Logic/Osm/Changes" import LinkImageAction from "../../src/Logic/Osm/Actions/LinkImageAction" -import FeaturePropertiesStore from "../../src/Logic/FeatureSource/Actors/FeaturePropertiesStore" describe("Changes", () => { it("should correctly apply the image tag if an image gets linked in between", async () => { - const dryRun = new ImmutableStore(true) - const osmConnection = new OsmConnection({ dryRun }) - const changes = new Changes({ osmConnection, dryRun }) + const changes = Changes.createTestObject() const id = "node/42" const tags = new UIEventSource({ id, amenity: "shop" }) const addImage = new LinkImageAction( diff --git a/test/Logic/OSM/Actions/RelationSplitHandler.spec.ts b/test/Logic/OSM/Actions/RelationSplitHandler.spec.ts index 8b3dede8b4..64a30a5f6b 100644 --- a/test/Logic/OSM/Actions/RelationSplitHandler.spec.ts +++ b/test/Logic/OSM/Actions/RelationSplitHandler.spec.ts @@ -1,14 +1,9 @@ import { Utils } from "../../../../src/Utils" import { OsmRelation } from "../../../../src/Logic/Osm/OsmObject" -import { - InPlaceReplacedmentRTSH, - TurnRestrictionRSH, -} from "../../../../src/Logic/Osm/Actions/RelationSplitHandler" +import { InPlaceReplacedmentRTSH, TurnRestrictionRSH } from "../../../../src/Logic/Osm/Actions/RelationSplitHandler" import { Changes } from "../../../../src/Logic/Osm/Changes" import { describe, expect, it } from "vitest" import OsmObjectDownloader from "../../../../src/Logic/Osm/OsmObjectDownloader" -import { ImmutableStore } from "../../../../src/Logic/UIEventSource" -import { OsmConnection } from "../../../../src/Logic/Osm/OsmConnection" describe("RelationSplitHandler", () => { Utils.injectJsonDownloadForTests("https://api.openstreetmap.org/api/0.6/node/1124134958/ways", { @@ -653,10 +648,7 @@ describe("RelationSplitHandler", () => { downloader ) const changeDescription = await splitter.CreateChangeDescriptions( - new Changes({ - dryRun: new ImmutableStore(false), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) const allIds = changeDescription[0].changes["members"].map((m) => m.ref).join(",") const expected = "687866206,295132739,-1,690497698" @@ -710,10 +702,7 @@ describe("RelationSplitHandler", () => { downloader ) const changeDescription = await splitter.CreateChangeDescriptions( - new Changes({ - dryRun: new ImmutableStore(false), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) const allIds = changeDescription[0].changes["members"] .map((m) => m.type + "/" + m.ref + "-->" + m.role) @@ -734,10 +723,7 @@ describe("RelationSplitHandler", () => { downloader ) const changesReverse = await splitterReverse.CreateChangeDescriptions( - new Changes({ - dryRun: new ImmutableStore(false), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) expect(changesReverse.length).toEqual(0) }) diff --git a/test/Logic/OSM/Actions/ReplaceGeometryAction.spec.ts b/test/Logic/OSM/Actions/ReplaceGeometryAction.spec.ts index 6e2fb73a89..e7b16d64b9 100644 --- a/test/Logic/OSM/Actions/ReplaceGeometryAction.spec.ts +++ b/test/Logic/OSM/Actions/ReplaceGeometryAction.spec.ts @@ -1,5 +1,4 @@ import { Utils } from "../../../../src/Utils" -import LayoutConfig from "../../../../src/Models/ThemeConfig/LayoutConfig" import { BBox } from "../../../../src/Logic/BBox" import ReplaceGeometryAction from "../../../../src/Logic/Osm/Actions/ReplaceGeometryAction" import { describe, expect, it } from "vitest" @@ -9,305 +8,6 @@ import { Changes } from "../../../../src/Logic/Osm/Changes" import FullNodeDatabaseSource from "../../../../src/Logic/FeatureSource/TiledFeatureSource/FullNodeDatabaseSource" describe("ReplaceGeometryAction", () => { - const grbStripped = { - id: "grb", - title: { - nl: "GRB import helper", - }, - description: "Smaller version of the GRB theme", - language: ["nl", "en"], - socialImage: "img.jpg", - version: "0", - startLat: 51.0249, - startLon: 4.026489, - startZoom: 9, - clustering: false, - overrideAll: { - minzoom: 19, - }, - layers: [ - { - id: "type_node", - source: { - osmTags: "type=node", - }, - pointRendering: null, - lineRendering: [{}], - override: { - calculatedTags: [ - "_is_part_of_building=feat.get('parent_ways')?.some(p => p.building !== undefined && p.building !== '') ?? false", - "_is_part_of_grb_building=feat.get('parent_ways')?.some(p => p['source:geometry:ref'] !== undefined) ?? false", - "_is_part_of_building_passage=feat.get('parent_ways')?.some(p => p.tunnel === 'building_passage') ?? false", - "_is_part_of_highway=!feat.get('is_part_of_building_passage') && (feat.get('parent_ways')?.some(p => p.highway !== undefined && p.highway !== '') ?? false)", - "_is_part_of_landuse=feat.get('parent_ways')?.some(p => (p.landuse !== undefined && p.landuse !== '') || (p.natural !== undefined && p.natural !== '')) ?? false", - "_moveable=feat.get('_is_part_of_building') && !feat.get('_is_part_of_grb_building')", - ], - pointRendering: [ - { - marker: [ - { - icon: "square", - color: "#cc0", - }, - ], - iconSize: "5,5", - location: ["point"], - }, - ], - passAllFeatures: true, - }, - }, - { - id: "osm-buildings", - name: "All OSM-buildings", - source: { - osmTags: "building~*", - }, - calculatedTags: ["_surface:strict:=feat.get('_surface')"], - lineRendering: [ - { - width: { - render: "2", - mappings: [ - { - if: "fixme~*", - then: "5", - }, - ], - }, - color: { - render: "#00c", - mappings: [ - { - if: "fixme~*", - then: "#ff00ff", - }, - { - if: "building=house", - then: "#a00", - }, - { - if: "building=shed", - then: "#563e02", - }, - { - if: { - or: ["building=garage", "building=garages"], - }, - then: "#f9bfbb", - }, - { - if: "building=yes", - then: "#0774f2", - }, - ], - }, - }, - ], - title: "OSM-gebouw", - tagRenderings: [ - { - id: "building type", - freeform: { - key: "building", - }, - render: "The building type is {building}", - question: { - en: "What kind of building is this?", - }, - mappings: [ - { - if: "building=house", - then: "A normal house", - }, - { - if: "building=detached", - then: "A house detached from other building", - }, - { - if: "building=semidetached_house", - then: "A house sharing only one wall with another house", - }, - { - if: "building=apartments", - then: "An apartment building - highrise for living", - }, - { - if: "building=office", - then: "An office building - highrise for work", - }, - { - if: "building=apartments", - then: "An apartment building", - }, - { - if: "building=shed", - then: "A small shed, e.g. in a garden", - }, - { - if: "building=garage", - then: "A single garage to park a car", - }, - { - if: "building=garages", - then: "A building containing only garages; typically they are all identical", - }, - { - if: "building=yes", - then: "A building - no specification", - }, - ], - }, - { - id: "grb-housenumber", - render: { - nl: "Het huisnummer is {addr:housenumber}", - }, - question: { - nl: "Wat is het huisnummer?", - }, - freeform: { - key: "addr:housenumber", - }, - mappings: [ - { - if: { - and: ["not:addr:housenumber=yes", "addr:housenumber="], - }, - then: { - nl: "Geen huisnummer", - }, - }, - ], - }, - { - id: "grb-unit", - question: "Wat is de wooneenheid-aanduiding?", - render: { - nl: "De wooneenheid-aanduiding is {addr:unit} ", - }, - freeform: { - key: "addr:unit", - }, - mappings: [ - { - if: "addr:unit=", - then: "Geen wooneenheid-nummer", - }, - ], - }, - { - id: "grb-street", - render: { - nl: "De straat is {addr:street}", - }, - freeform: { - key: "addr:street", - }, - question: { - nl: "Wat is de straat?", - }, - }, - { - id: "grb-fixme", - render: { - nl: "De fixme is {fixme}", - }, - question: { - nl: "Wat zegt de fixme?", - }, - freeform: { - key: "fixme", - }, - mappings: [ - { - if: { - and: ["fixme="], - }, - then: { - nl: "Geen fixme", - }, - }, - ], - }, - { - id: "grb-min-level", - render: { - nl: "Dit gebouw begint maar op de {building:min_level} verdieping", - }, - question: { - nl: "Hoeveel verdiepingen ontbreken?", - }, - freeform: { - key: "building:min_level", - type: "pnat", - }, - }, - "all_tags", - ], - filter: [ - { - id: "has-fixme", - options: [ - { - osmTags: "fixme~*", - question: "Heeft een FIXME", - }, - ], - }, - ], - }, - { - id: "grb", - description: "Geometry which comes from GRB with tools to import them", - source: { - osmTags: { - and: ["HUISNR~*", "man_made!=mast"], - }, - geoJson: - "https://betadata.grbosm.site/grb?bbox={x_min},{y_min},{x_max},{y_max}", - geoJsonZoomLevel: 18, - mercatorCrs: true, - }, - name: "GRB geometries", - title: "GRB outline", - calculatedTags: [ - "_overlaps_with_buildings=feat.overlapWith('osm-buildings').filter(f => f.feat.properties.id.indexOf('-') < 0)", - "_overlaps_with=feat.get('_overlaps_with_buildings').filter(f => f.overlap > 1 /* square meter */ )[0] ?? ''", - "_osm_obj:source:ref=feat.get('_overlaps_with')?.feat?.properties['source:geometry:ref']", - "_osm_obj:id=feat.get('_overlaps_with')?.feat?.properties?.id", - "_osm_obj:source:date=feat.get('_overlaps_with')?.feat?.properties['source:geometry:date'].replace(/\\//g, '-')", - "_osm_obj:building=feat.get('_overlaps_with')?.feat?.properties?.building", - "_osm_obj:addr:street=(feat.get('_overlaps_with')?.feat?.properties ?? {})['addr:street']", - "_osm_obj:addr:housenumber=(feat.get('_overlaps_with')?.feat?.properties ?? {})['addr:housenumber']", - "_osm_obj:surface=(feat.get('_overlaps_with')?.feat?.properties ?? {})['_surface:strict']", - - "_overlap_absolute=feat.get('_overlaps_with')?.overlap", - "_reverse_overlap_percentage=Math.round(100 * feat.get('_overlap_absolute') / feat.get('_surface'))", - "_overlap_percentage=Math.round(100 * feat.get('_overlap_absolute') / feat.get('_osm_obj:surface'))", - "_grb_ref=feat.properties['source:geometry:entity'] + '/' + feat.properties['source:geometry:oidn']", - "_imported_osm_object_found= feat.properties['_osm_obj:source:ref'] == feat.properties._grb_ref", - "_grb_date=feat.properties['source:geometry:date'].replace(/\\//g,'-')", - "_imported_osm_still_fresh= feat.properties['_osm_obj:source:date'] == feat.properties._grb_date", - "_target_building_type=feat.properties['_osm_obj:building'] === 'yes' ? feat.properties.building : (feat.properties['_osm_obj:building'] ?? feat.properties.building)", - "_building:min_level= feat.properties['fixme']?.startsWith('verdieping, correct the building tag, add building:level and building:min_level before upload in JOSM!') ? '1' : ''", - "_intersects_with_other_features=feat.intersectionsWith('generic_osm_object').map(f => \"\" + f.feat.properties.id + \"\").join(', ')", - ], - tagRenderings: [], - pointRendering: [ - { - marker: [ - { - icon: "./assets/themes/grb/housenumber_blank.svg", - }, - ], - iconSize: "50,50", - location: ["point", "centroid"], - }, - ], - }, - ], - } const coordinates = <[number, number][]>[ [3.216690793633461, 51.21474084112525], @@ -890,10 +590,7 @@ describe("ReplaceGeometryAction", () => { const data = await Utils.downloadJson(url) const fullNodeDatabase = new FullNodeDatabaseSource() fullNodeDatabase.handleOsmJson(data, 0, 0, 0) - const changes = new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) + const changes = Changes.createTestObject() const osmConnection = new OsmConnection({ dryRun: new ImmutableStore(true), }) diff --git a/test/Logic/OSM/Actions/SplitAction.spec.ts b/test/Logic/OSM/Actions/SplitAction.spec.ts index 35605a0c25..bb9ba625e7 100644 --- a/test/Logic/OSM/Actions/SplitAction.spec.ts +++ b/test/Logic/OSM/Actions/SplitAction.spec.ts @@ -2,8 +2,6 @@ import { Utils } from "../../../../src/Utils" import SplitAction from "../../../../src/Logic/Osm/Actions/SplitAction" import { Changes } from "../../../../src/Logic/Osm/Changes" import { describe, expect, it } from "vitest" -import { OsmConnection } from "../../../../src/Logic/Osm/OsmConnection" -import { ImmutableStore } from "../../../../src/Logic/UIEventSource" describe("SplitAction", () => { { @@ -2690,10 +2688,7 @@ describe("SplitAction", () => { theme: "test", }) const changeDescription = await splitter.CreateChangeDescriptions( - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) expect(changeDescription[0].type).toBe("node") @@ -2720,10 +2715,7 @@ describe("SplitAction", () => { theme: "test", }) const changeDescription = await splitter.CreateChangeDescriptions( - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) expect(changeDescription.length).toBe(2) @@ -2742,10 +2734,7 @@ describe("SplitAction", () => { theme: "test", }) const changeDescription = await splitter.CreateChangeDescriptions( - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) // Should be a new node @@ -2760,10 +2749,7 @@ describe("SplitAction", () => { theme: "test", }) const changes = await splitAction.Perform( - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) console.log(changes) // 8715440368 is the expected point of the split @@ -2803,10 +2789,7 @@ describe("SplitAction", () => { 1 ) const changes = await splitAction.Perform( - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) + Changes.createTestObject() ) // THe first change is the creation of the new node diff --git a/test/Logic/OSM/Changes.spec.ts b/test/Logic/OSM/Changes.spec.ts index 1e8e273e13..503943553e 100644 --- a/test/Logic/OSM/Changes.spec.ts +++ b/test/Logic/OSM/Changes.spec.ts @@ -1,8 +1,6 @@ import { ChangeDescription } from "../../../src/Logic/Osm/Actions/ChangeDescription" import { Changes } from "../../../src/Logic/Osm/Changes" import { expect, it } from "vitest" -import { ImmutableStore } from "../../../src/Logic/UIEventSource" -import { OsmConnection } from "../../../src/Logic/Osm/OsmConnection" it("Generate preXML from changeDescriptions", () => { const changeDescrs: ChangeDescription[] = [ @@ -29,11 +27,7 @@ it("Generate preXML from changeDescriptions", () => { }, }, ] - const c = new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) - const descr = c.CreateChangesetObjects(changeDescrs, []) + const descr = Changes.createTestObject().CreateChangesetObjects(changeDescrs, []) expect(descr.modifiedObjects).toHaveLength(0) expect(descr.deletedObjects).toHaveLength(0) expect(descr.newObjects).toHaveLength(1) diff --git a/test/Logic/OSM/ChangesetHandler.spec.ts b/test/Logic/OSM/ChangesetHandler.spec.ts index eba47ed6bf..682ec61f21 100644 --- a/test/Logic/OSM/ChangesetHandler.spec.ts +++ b/test/Logic/OSM/ChangesetHandler.spec.ts @@ -6,21 +6,27 @@ import { Changes } from "../../../src/Logic/Osm/Changes" import { describe, expect, it } from "vitest" function elstorage() { - return { addAlias: (_, __) => {} } + return { + addAlias: (_, __) => { + }, + } +} + +function createChangesetHandler(): ChangesetHandler { + const changes = Changes.createTestObject() + return new ChangesetHandler( + new UIEventSource(true), + new OsmConnection({}), + elstorage(), + changes, + e => console.error(e), + ) } describe("ChangesetHanlder", () => { describe("RewriteTagsOf", () => { it("should insert new tags", () => { - const changesetHandler = new ChangesetHandler( - new UIEventSource(true), - new OsmConnection({}), - elstorage(), - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) - ) + const changesetHandler = createChangesetHandler() const oldChangesetMeta = { type: "changeset", @@ -57,13 +63,13 @@ describe("ChangesetHanlder", () => { }, ], new Map(), - oldChangesetMeta + oldChangesetMeta, ) const d = Utils.asDict(rewritten) expect(d.size).toEqual(10) expect(d.get("answer")).toEqual("5") expect(d.get("comment")).toEqual( - "Adding data with #MapComplete for theme #toerisme_vlaanderen" + "Adding data with #MapComplete for theme #toerisme_vlaanderen", ) expect(d.get("created_by")).toEqual("MapComplete 0.16.6") expect(d.get("host")).toEqual("https://mapcomplete.org/toerisme_vlaanderen.html") @@ -74,15 +80,7 @@ describe("ChangesetHanlder", () => { expect(d.get("newTag")).toEqual("newValue") }) it("should aggregate numeric tags", () => { - const changesetHandler = new ChangesetHandler( - new UIEventSource(true), - new OsmConnection({}), - elstorage(), - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) - ) + const changesetHandler = createChangesetHandler() const oldChangesetMeta = { type: "changeset", id: 118443748, @@ -118,14 +116,14 @@ describe("ChangesetHanlder", () => { }, ], new Map(), - oldChangesetMeta + oldChangesetMeta, ) const d = Utils.asDict(rewritten) expect(d.size).toEqual(9) expect(d.get("answer")).toEqual("42") expect(d.get("comment")).toEqual( - "Adding data with #MapComplete for theme #toerisme_vlaanderen" + "Adding data with #MapComplete for theme #toerisme_vlaanderen", ) expect(d.get("created_by")).toEqual("MapComplete 0.16.6") expect(d.get("host")).toEqual("https://mapcomplete.org/toerisme_vlaanderen.html") @@ -135,15 +133,7 @@ describe("ChangesetHanlder", () => { expect(d.get("theme")).toEqual("toerisme_vlaanderen") }) it("should rewrite special reasons with the correct ID", () => { - const changesetHandler = new ChangesetHandler( - new UIEventSource(true), - new OsmConnection({}), - elstorage(), - new Changes({ - dryRun: new ImmutableStore(true), - osmConnection: new OsmConnection(), - }) - ) + const changesetHandler = createChangesetHandler() const oldChangesetMeta = { type: "changeset", id: 118443748, @@ -173,14 +163,14 @@ describe("ChangesetHanlder", () => { const rewritten = changesetHandler.RewriteTagsOf( [], new Map([["node/-1", "node/42"]]), - oldChangesetMeta + oldChangesetMeta, ) const d = Utils.asDict(rewritten) expect(d.size).toEqual(9) expect(d.get("answer")).toEqual("5") expect(d.get("comment")).toEqual( - "Adding data with #MapComplete for theme #toerisme_vlaanderen" + "Adding data with #MapComplete for theme #toerisme_vlaanderen", ) expect(d.get("created_by")).toEqual("MapComplete 0.16.6") expect(d.get("host")).toEqual("https://mapcomplete.org/toerisme_vlaanderen.html") @@ -206,7 +196,7 @@ describe("ChangesetHanlder", () => { const changes = new Map([["node/-1", "node/42"]]) const hasSpecialMotivationChanges = ChangesetHandler.rewriteMetaTags( extraMetaTags, - changes + changes, ) // "Special rewrite did not trigger" expect(hasSpecialMotivationChanges).toBe(true) From 7212624fadfe8e49c6ffb4e5e18d1a963c84f878 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 27 Sep 2024 03:09:49 +0200 Subject: [PATCH 07/84] Refactoring: remove 'picture license' from Usersettings --- assets/layers/ghostsign/ghostsign.json | 4 ---- assets/layers/usersettings/usersettings.json | 1 - langs/en.json | 2 +- langs/layers/ca.json | 17 ----------------- langs/layers/cs.json | 17 ----------------- langs/layers/da.json | 8 -------- langs/layers/de.json | 17 ----------------- langs/layers/en.json | 17 ----------------- langs/layers/es.json | 7 ------- langs/layers/fr.json | 10 ---------- langs/layers/nl.json | 17 ----------------- langs/layers/pt.json | 17 ----------------- langs/layers/ru.json | 11 ----------- src/UI/Image/UploadImage.svelte | 9 --------- 14 files changed, 1 insertion(+), 153 deletions(-) diff --git a/assets/layers/ghostsign/ghostsign.json b/assets/layers/ghostsign/ghostsign.json index fb43a456d3..3e25ee7441 100644 --- a/assets/layers/ghostsign/ghostsign.json +++ b/assets/layers/ghostsign/ghostsign.json @@ -13,7 +13,6 @@ "en": "Layer showing disused signs on buildings", "de": "Ebene, die ungenutzte Zeichen auf Gebäuden zeigt", "es": "Capa que muestra carteles en desuso en edificios", - "ca": "Capa que mostra rètols en desús dels edificis", "cs": "Vrstva zobrazující nepoužívané nápisy na budovách" }, @@ -37,7 +36,6 @@ "enableRelocation": false }, "tagRenderings": [ - "images", "advertising.historic", "advertising.type", @@ -48,7 +46,6 @@ "de": "Was ist der Text auf dem Schild?", "es": "¿Cuál es el texto del cartel?", "ca": "Quin és el text del rètol?" - }, "freeform": { "key": "inscription", @@ -95,7 +92,6 @@ "cs": "Tato cedule byla vyrobena pro: {brand}" } } - ], "lineRendering": [ { diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json index 2be4b4763a..4b5106da34 100644 --- a/assets/layers/usersettings/usersettings.json +++ b/assets/layers/usersettings/usersettings.json @@ -498,7 +498,6 @@ } ] }, - { "id": "show_tags", "question": { diff --git a/langs/en.json b/langs/en.json index 1c68d81949..4a9478bca1 100644 --- a/langs/en.json +++ b/langs/en.json @@ -873,4 +873,4 @@ "startsWithQ": "A wikidata identifier starts with Q and is followed by a number" } } -} +} \ No newline at end of file diff --git a/langs/layers/ca.json b/langs/layers/ca.json index df447a3c31..26a059e00c 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -8978,23 +8978,6 @@ } } }, - "picture-license": { - "mappings": { - "0": { - "then": "Les imatges que feu tindran llicència CC0 i s'afegiran al domini públic. Això vol dir que tothom pot utilitzar les vostres imatges per a qualsevol propòsit. Aquesta és l'opció predeterminada. " - }, - "1": { - "then": "Les imatges que feu tindran llicència CC0 i s'afegiran al domini públic. Això vol dir que tothom pot utilitzar les vostres imatges per a qualsevol propòsit." - }, - "2": { - "then": "Les fotografies que facis es publicaran sota CC-BY 4.0 que requereix que qualsevol que utilitzi la vostra imatge us ha de donar crèdits" - }, - "3": { - "then": "Les imatges que feu tindran una llicència amb CC-BY-SA 4.0 el que significa que tothom que utilitzi la vostra imatge us ha d'atribuir i que els derivats de la vostra imatge s'han de tornar a compartir amb la mateixa llicència." - } - }, - "question": "Sota quina llicència vols publicar les teves fotos?" - }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 8ff5ead0a3..afa82cb6eb 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -9010,23 +9010,6 @@ } } }, - "picture-license": { - "mappings": { - "0": { - "then": "Pořízené fotografie budou licencovány pod CC0 a přidány do veřejné domény. To znamená, že kdokoli může vaše snímky použít k jakémukoli účelu. Toto je výchozí volba." - }, - "1": { - "then": "Pořízené fotografie budou licencovány pod CC0 a přidány do veřejné domény. To znamená, že kdokoli může vaše snímky použít k jakémukoli účelu." - }, - "2": { - "then": "Pořízené fotografie budou licencovány pod CC-BY 4.0, což vyžaduje, aby vás uvedl každý, kdo použije vaší fotku" - }, - "3": { - "then": "Pořízené fotografie budou licencovány pod CC-BY-SA 4.0, což vyžaduje, aby vás uvedl každý, kdo použije vaší fotku a že odvozené fotky musí být dále sdíleny se stejnou licencí." - } - }, - "question": "Pod jakou licencí chcete své fotografie zveřejnit?" - }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/da.json b/langs/layers/da.json index 9ea5bbee4b..cdc926f2e4 100644 --- a/langs/layers/da.json +++ b/langs/layers/da.json @@ -2743,14 +2743,6 @@ } } }, - "picture-license": { - "mappings": { - "1": { - "then": "Billeder, som du har taget, vil blive udgivet under CC0-licensen og lagt ud i fælleseje. Det betyder, at alle kan bruge dine billeder til ethvert formål." - } - }, - "question": "Under hvilken licens vil du frigive dine billeder?" - }, "settings-link": { "render": { "special": { diff --git a/langs/layers/de.json b/langs/layers/de.json index a818655e7e..512912d02d 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -11683,23 +11683,6 @@ } } }, - "picture-license": { - "mappings": { - "0": { - "then": "Die von Ihnen aufgenommenen Bilder werden mit CC0 lizenziert und der Public Domain hinzugefügt. Das bedeutet, dass jeder Ihre Bilder für jeden Zweck verwenden kann. Dies ist die Standardeinstellung." - }, - "1": { - "then": "Ihre aufgenommenen Bilder werden mit CC0 lizenziert und der Public Domain hinzugefügt. Das bedeutet, dass jeder Ihre Bilder für jeden Zweck verwenden kann." - }, - "2": { - "then": "Die von Ihnen aufgenommenen Bilder werden mit CC-BY 4.0 lizenziert, was bedeutet, dass jeder, der Ihr Bild verwendet, Sie als Urheber nennen muss" - }, - "3": { - "then": "Die von Ihnen aufgenommenen Bilder werden mit CC-BY-SA 4.0 lizenziert, was bedeutet, dass jeder, der Ihr Bild verwendet, Sie als Urheber nennen muss und dass Ableitungen Ihres Bildes mit der gleichen Lizenz weitergegeben werden müssen." - } - }, - "question": "Unter welcher Lizenz möchten Sie Ihre Bilder veröffentlichen?" - }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/en.json b/langs/layers/en.json index 471c5c387e..9158b0c40c 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -11697,23 +11697,6 @@ } } }, - "picture-license": { - "mappings": { - "0": { - "then": "Pictures you take will be licensed with CC0 and added to the public domain. This means that everyone can use your pictures for any purpose. This is the default choice." - }, - "1": { - "then": "Pictures you take will be licensed with CC0 and added to the public domain. This means that everyone can use your pictures for any purpose." - }, - "2": { - "then": "Pictures you take will be licensed with CC-BY 4.0 which requires everyone using your picture that they have to attribute you" - }, - "3": { - "then": "Pictures you take will be licensed with CC-BY-SA 4.0 which means that everyone using your picture must attribute you and that derivatives of your picture must be reshared with the same license." - } - }, - "question": "Under what license do you want to publish your pictures?" - }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/es.json b/langs/layers/es.json index cd546c1cb7..a23d9efc8e 100644 --- a/langs/layers/es.json +++ b/langs/layers/es.json @@ -4932,13 +4932,6 @@ } } }, - "picture-license": { - "mappings": { - "1": { - "then": "Las fotografías que tome tendrán una licencia con CC0 y se agregarán al dominio público. Esto significa que todos pueden usar sus imágenes para cualquier propósito." - } - } - }, "translation-completeness": { "render": "Las traducciones para {_theme} en {_language} están al {_translation_percentage}%: {_translation_translated_count} cadenas de {_translation_total} están traducidas" }, diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 42d05b6af2..1d3ee08193 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -7133,16 +7133,6 @@ } } }, - "picture-license": { - "mappings": { - "1": { - "then": "Les photos que vous avez ajoutées seront sous licence CC0 et mises dans le domaine public. Cela signifie que n'importe qui pourra les utiliser, quel qu'en soit l'usage." - }, - "3": { - "then": "Les photos que vous prenez seront sous la licence CC-BY-SA 4.0 ce qui signifie que quiconque utilisant votre photo doit vous créditer et que les modifications apportées à votre photo doivent être repartagées avec la même licence." - } - } - }, "show_tags": { "mappings": { "0": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 6936378376..d1fecaf883 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -9225,23 +9225,6 @@ } } }, - "picture-license": { - "mappings": { - "0": { - "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC0-licentie en dus aan het publieke domein toegevoegd worden. Dit betekent dat iedereen je afbeeldingen kan gebruiken voor elk mogelijks gebruik. Dit is de standaard-instelling" - }, - "1": { - "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC0-licentie en dus aan het publieke domein toegevoegd worden. Dit betekent dat iedereen je afbeeldingen kan gebruiken voor elk mogelijks gebruik." - }, - "2": { - "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC-BY 4.0-licentie. Dit betekent dat iedereen je afbeelding mag gebruiken voor elke toepassing mits het vermelden van je naam" - }, - "3": { - "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC-BY-SA 4.0-licentie. Dit betekent dat iedereen je afbeelding mag gebruiken voor elke toepassing mits het vermelden van je naam en dat afgeleide werken van je afbeelding ook ondere deze licentie moeten gepubliceerd worden." - } - }, - "question": "Met welke licentie wil je je afbeeldingen toevoegen?" - }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/pt.json b/langs/layers/pt.json index 07aa7ac40e..d2a342ae8a 100644 --- a/langs/layers/pt.json +++ b/langs/layers/pt.json @@ -1912,23 +1912,6 @@ } } }, - "picture-license": { - "mappings": { - "0": { - "then": "As fotos que você tirar serão licenciadas com CC0 e adicionadas ao domínio público. Isso significa que todos podem usar suas fotos para qualquer finalidade. Esta é a escolha padrão." - }, - "1": { - "then": "As fotos que você tirar serão licenciadas com CC0 e adicionadas ao domínio público. Isso significa que todos podem usar suas fotos para qualquer finalidade." - }, - "2": { - "then": "As fotos que você tirar serão licenciadas com CC-BY 4.0, que exige que todos que usam sua foto atribuam a você" - }, - "3": { - "then": "As fotos que você tirar serão licenciadas com CC-BY-SA 4.0, o que significa que todos que usarem sua foto devem atribuí-lo e que os derivados de sua foto devem ser compartilhados novamente com a mesma licença." - } - }, - "question": "Sob que licença você deseja publicar suas fotos?" - }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/ru.json b/langs/layers/ru.json index 7202e84a37..55d8380323 100644 --- a/langs/layers/ru.json +++ b/langs/layers/ru.json @@ -2063,17 +2063,6 @@ } } }, - "usersettings": { - "tagRenderings": { - "picture-license": { - "mappings": { - "1": { - "then": "Изображения будут опубликованы под лицензией CC0 и перейдут в общественное достояние. Это значит, что кто угодно имеет право использовать их без ограничений." - } - } - } - } - }, "vending_machine": { "tagRenderings": { "operational_status": { diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte index f07cd5f382..ab74d4b52a 100644 --- a/src/UI/Image/UploadImage.svelte +++ b/src/UI/Image/UploadImage.svelte @@ -83,15 +83,6 @@
- -
From 967f2f16171e3cc9afb338b553154b8374f09b1e Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 27 Sep 2024 03:15:48 +0200 Subject: [PATCH 08/84] Chore: fix tests --- src/Logic/Osm/Actions/DeleteAction.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Logic/Osm/Actions/DeleteAction.ts b/src/Logic/Osm/Actions/DeleteAction.ts index fde6e867d0..128b9acee6 100644 --- a/src/Logic/Osm/Actions/DeleteAction.ts +++ b/src/Logic/Osm/Actions/DeleteAction.ts @@ -69,16 +69,14 @@ export default class DeleteAction extends OsmChangeAction { * const obj : OsmNode= new OsmNode(1) * obj.tags = {id:"node/1",name:"Monte Piselli - San Giacomo"} * const da = new DeleteAction("node/1", new Tag("man_made",""), {theme: "test", specialMotivation: "Testcase"}, true) - * const state = { dryRun: new ImmutableStore(true), osmConnection: new OsmConnection() } - * const descr = await da.CreateChangeDescriptions(new Changes(state), obj) + * const descr = await da.CreateChangeDescriptions(Changes.createTestObject(), obj) * descr[0] // => {doDelete: true, meta: {theme: "test", specialMotivation: "Testcase",changeType: "deletion"}, type: "node",id: 1 } * * // Must not crash if softDeletionTags are undefined * const da = new DeleteAction("node/1", undefined, {theme: "test", specialMotivation: "Testcase"}, true) * const obj : OsmNode= new OsmNode(1) * obj.tags = {id:"node/1",name:"Monte Piselli - San Giacomo"} - * const state = { dryRun: new ImmutableStore(true), osmConnection: new OsmConnection() } - * const descr = await da.CreateChangeDescriptions(new Changes(state), obj) + * const descr = await da.CreateChangeDescriptions(Changes.createTestObject(), obj) * descr[0] // => {doDelete: true, meta: {theme: "test", specialMotivation: "Testcase", changeType: "deletion"}, type: "node",id: 1 } */ public async CreateChangeDescriptions( From 55cfd65f3bca63dc64c9a60ff6f92e2fa4320038 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 27 Sep 2024 03:26:17 +0200 Subject: [PATCH 09/84] Feature: add support for panoramax picturs for non-default keys (e.g. image:menu) --- src/Logic/ImageProviders/AllImageProviders.ts | 11 ++++++----- src/Logic/ImageProviders/ImageProvider.ts | 2 +- src/Logic/ImageProviders/ImageUploadManager.ts | 14 +++++++++----- src/Logic/ImageProviders/ImageUploader.ts | 4 +--- src/Logic/ImageProviders/Panoramax.ts | 4 +++- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts index 4304c0bd90..476571c1e8 100644 --- a/src/Logic/ImageProviders/AllImageProviders.ts +++ b/src/Logic/ImageProviders/AllImageProviders.ts @@ -90,13 +90,14 @@ export default class AllImageProviders { this._cache.set(cacheKey, source) const allSources: Store[] = [] for (const imageProvider of AllImageProviders.ImageAttributionSource) { - let prefixes = imageProvider.defaultKeyPrefixes - if (tagKey !== undefined) { - prefixes = tagKey - } + const singleSource = imageProvider.GetRelevantUrls(tags, { - prefixes: prefixes, + /* + By default, 'GetRelevantUrls' uses the defaultKeyPrefixes. + However, we override them if a custom image tag is set, e.g. 'image:menu' + */ + prefixes: tagKey ?? imageProvider.defaultKeyPrefixes, }) allSources.push(singleSource) singleSource.addCallbackAndRunD((_) => { diff --git a/src/Logic/ImageProviders/ImageProvider.ts b/src/Logic/ImageProviders/ImageProvider.ts index 7fe3b7b02e..999516ee1d 100644 --- a/src/Logic/ImageProviders/ImageProvider.ts +++ b/src/Logic/ImageProviders/ImageProvider.ts @@ -49,7 +49,7 @@ export default abstract class ImageProvider { if(key === "panoramax"){ console.log("Inspecting", key,"against", prefixes) } - if (!prefixes.some((prefix) => key.startsWith(prefix))) { + if (!prefixes.some((prefix) => key === prefix || key.match(new RegExp(prefix+":[0-9]+")))) { continue } const values = Utils.NoEmpty(tags[key]?.split(";")?.map((v) => v.trim()) ?? []) diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index 798008f199..d726e10a2f 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -62,7 +62,7 @@ export class ImageUploadManager { * Gets various counters. * Note that counters can only increase * If a retry was a success, both 'retrySuccess' _and_ 'uploadFinished' will be increased - * @param featureId: the id of the feature you want information for. '*' has a global counter + * @param featureId the id of the feature you want information for. '*' has a global counter */ public getCountsFor(featureId: string | "*"): { retried: Store @@ -157,13 +157,14 @@ export class ImageUploadManager { const feature = this._indexedFeatures.featuresById.data.get(featureId) location = GeoOperations.centerpointCoordinates(feature) } + let absoluteUrl: string try { - ;({ key, value } = await this._uploader.uploadImage(blob, location, author)) + ;({ key, value, absoluteUrl } = await this._uploader.uploadImage(blob, location, author)) } catch (e) { this.increaseCountFor(this._uploadRetried, featureId) console.error("Could not upload image, trying again:", e) try { - ;({ key, value } = await this._uploader.uploadImage(blob, location, author)) + ;({ key, value , absoluteUrl} = await this._uploader.uploadImage(blob, location, author)) this.increaseCountFor(this._uploadRetriedSuccess, featureId) } catch (e) { console.error("Could again not upload image due to", e) @@ -173,12 +174,15 @@ export class ImageUploadManager { } console.log("Uploading image done, creating action for", featureId) key = targetKey ?? key + if(targetKey){ + // This is a non-standard key, so we use the image link directly + value = absoluteUrl + } this.increaseCountFor(this._uploadFinished, featureId) - const action = new LinkImageAction(featureId, key, value, properties, { + return new LinkImageAction(featureId, key, value, properties, { theme: theme ?? this._layout.id, changeType: "add-image", }) - return action } private getCounterFor(collection: Map>, key: string | "*") { diff --git a/src/Logic/ImageProviders/ImageUploader.ts b/src/Logic/ImageProviders/ImageUploader.ts index fbfb56abcd..dc9babe20e 100644 --- a/src/Logic/ImageProviders/ImageUploader.ts +++ b/src/Logic/ImageProviders/ImageUploader.ts @@ -1,5 +1,3 @@ -import { Feature } from "geojson" - export interface ImageUploader { maxFileSizeInMegabytes?: number /** @@ -10,5 +8,5 @@ export interface ImageUploader { blob: File, currentGps: [number,number], author: string - ): Promise<{ key: string; value: string }> + ): Promise<{ key: string; value: string, absoluteUrl: string }> } diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts index 67e82e0a99..6f8291d0fb 100644 --- a/src/Logic/ImageProviders/Panoramax.ts +++ b/src/Logic/ImageProviders/Panoramax.ts @@ -18,7 +18,7 @@ export default class PanoramaxImageProvider extends ImageProvider { public static readonly singleton = new PanoramaxImageProvider() - public defaultKeyPrefixes: string[] = ["panoramax", "image"] + public defaultKeyPrefixes: string[] = ["panoramax"] public readonly name: string = "panoramax" private static knownMeta: Record = {} @@ -128,6 +128,7 @@ export class PanoramaxUploader implements ImageUploader { async uploadImage(blob: File, currentGps: [number, number], author: string): Promise<{ key: string; value: string; + absoluteUrl: string }> { const tags = await ExifReader.load(blob) @@ -152,6 +153,7 @@ export class PanoramaxUploader implements ImageUploader { return { key: "panoramax", value: img.id, + absoluteUrl: img.assets.hd.href } } From ba857d945bfea8b35ea4bd6590c035ea7b6e97a5 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:21 +0000 Subject: [PATCH 10/84] Translated using Weblate (Catalan) Currently translated at 73.7% (503 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/ca/ --- langs/ca.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/ca.json b/langs/ca.json index e4d21759ba..b56265de1d 100644 --- a/langs/ca.json +++ b/langs/ca.json @@ -699,4 +699,4 @@ "description": "Un identificador de Wikidata" } } -} \ No newline at end of file +} From 23c7f2850df9602526398bb62d9c34384cb29e62 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:22 +0000 Subject: [PATCH 11/84] Translated using Weblate (German) Currently translated at 99.8% (681 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/de/ --- langs/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/de.json b/langs/de.json index 0c730c525a..a6d0c7bec4 100644 --- a/langs/de.json +++ b/langs/de.json @@ -873,4 +873,4 @@ "startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt" } } -} \ No newline at end of file +} From d22d4b284295dc89948787c4bf956e455f03fccd Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:23 +0000 Subject: [PATCH 12/84] Translated using Weblate (Spanish) Currently translated at 64.9% (443 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/es/ --- langs/es.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/es.json b/langs/es.json index 07f6f6e7d3..e615ea35d5 100644 --- a/langs/es.json +++ b/langs/es.json @@ -593,4 +593,4 @@ "description": "Un identificador de Wikidata" } } -} \ No newline at end of file +} From cf7ff5a6ac8946fd03812573a6623fefc2f84fbd Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:23 +0000 Subject: [PATCH 13/84] Translated using Weblate (French) Currently translated at 53.2% (363 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/fr/ --- langs/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/fr.json b/langs/fr.json index e3d6e3b193..c041a4d7e8 100644 --- a/langs/fr.json +++ b/langs/fr.json @@ -551,4 +551,4 @@ "feedback": "Ceci n'est pas une adresse web valide" } } -} \ No newline at end of file +} From 0e7686eb22695374eabbb0541dce053b4da9c3be Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:24 +0000 Subject: [PATCH 14/84] Translated using Weblate (Galician) Currently translated at 13.0% (89 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/gl/ --- langs/gl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/gl.json b/langs/gl.json index cdcb7bd7df..45f11dbcb7 100644 --- a/langs/gl.json +++ b/langs/gl.json @@ -146,4 +146,4 @@ "title_singular": "Unha recensión", "write_a_comment": "Deixa unha recensión…" } -} \ No newline at end of file +} From afeacca92c72587ff3a51747cbd2a5375c744313 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:26 +0000 Subject: [PATCH 15/84] Translated using Weblate (Dutch) Currently translated at 77.1% (526 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/nl/ --- langs/nl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/nl.json b/langs/nl.json index 58681dd2b9..e3c9b83297 100644 --- a/langs/nl.json +++ b/langs/nl.json @@ -716,4 +716,4 @@ "description": "Een Wikidata-code" } } -} \ No newline at end of file +} From 12e06c9efc627192edc4b2a354d62aa7213c71d3 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:26 +0000 Subject: [PATCH 16/84] Translated using Weblate (Polish) Currently translated at 70.8% (483 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/pl/ --- langs/pl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/pl.json b/langs/pl.json index eaabe52bfb..43f0c90333 100644 --- a/langs/pl.json +++ b/langs/pl.json @@ -668,4 +668,4 @@ "description": "Identyfikator Wikidanych" } } -} \ No newline at end of file +} From c69c824cadb7a32308b0fcc1f169f71f5731d1c3 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:25 +0000 Subject: [PATCH 17/84] Translated using Weblate (Italian) Currently translated at 55.7% (380 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/it/ --- langs/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/it.json b/langs/it.json index fecd93e449..4560f7eb0a 100644 --- a/langs/it.json +++ b/langs/it.json @@ -531,4 +531,4 @@ "feedback": "Questo non è un numero di telefono valido" } } -} \ No newline at end of file +} From 677f3300fd9a44184dcb3702a9db720006a0479c Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:24 +0000 Subject: [PATCH 18/84] Translated using Weblate (Hungarian) Currently translated at 32.2% (220 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/hu/ --- langs/hu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/hu.json b/langs/hu.json index 94287046ce..e6a6a2cc74 100644 --- a/langs/hu.json +++ b/langs/hu.json @@ -312,4 +312,4 @@ "split": "Szétvágás", "splitTitle": "Válaszd ki a térképen, hogy az út hol legyen elvágva" } -} \ No newline at end of file +} From d81f8f60d3413da487c51972cf262cccf7c53046 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:27 +0000 Subject: [PATCH 19/84] Translated using Weblate (Russian) Currently translated at 17.5% (120 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/ru/ --- langs/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/ru.json b/langs/ru.json index 5084c19593..1772a6f687 100644 --- a/langs/ru.json +++ b/langs/ru.json @@ -202,4 +202,4 @@ "description": "Идентификатор Wikidata" } } -} \ No newline at end of file +} From 28ac568ba337ce2dbfe6d117ce1d4d76d12c95d5 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:27 +0000 Subject: [PATCH 20/84] Translated using Weblate (Portuguese (Brazil)) Currently translated at 14.5% (99 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/pt_BR/ --- langs/pt_BR.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/pt_BR.json b/langs/pt_BR.json index d847a272cc..40e3e369bd 100644 --- a/langs/pt_BR.json +++ b/langs/pt_BR.json @@ -170,4 +170,4 @@ "tos": "Se você criar um comentário, você concorda com o TOS e a política de privacidade de Mangrove.reviews ", "write_a_comment": "Deixe um comentário…" } -} \ No newline at end of file +} From c1e8f2323c91232a6a3deba733ea259f2f259be8 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:28 +0000 Subject: [PATCH 21/84] Translated using Weblate (Swedish) Currently translated at 6.0% (41 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/sv/ --- langs/sv.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/sv.json b/langs/sv.json index 389c625bce..fd2298aae4 100644 --- a/langs/sv.json +++ b/langs/sv.json @@ -66,4 +66,4 @@ "cancel": "Avbryt", "split": "Dela" } -} \ No newline at end of file +} From 9c3a8d9472911ef81939168476d48df24679c02d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:25 +0000 Subject: [PATCH 22/84] Translated using Weblate (Japanese) Currently translated at 13.1% (90 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/ja/ --- langs/ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/ja.json b/langs/ja.json index 0823819fef..c3a8dad503 100644 --- a/langs/ja.json +++ b/langs/ja.json @@ -149,4 +149,4 @@ "tos": "レビューを作成する場合は、Mangrove.reviewsのTOSおよびプライバシーポリシーに同意します。", "write_a_comment": "レビューを残す…" } -} \ No newline at end of file +} From c14fc1bf9c91794ee5d7fea139ee95209923abe3 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:28 +0000 Subject: [PATCH 23/84] Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 96.1% (656 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/zh_Hant/ --- langs/zh_Hant.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/zh_Hant.json b/langs/zh_Hant.json index 2027183fcc..c8a747652c 100644 --- a/langs/zh_Hant.json +++ b/langs/zh_Hant.json @@ -848,4 +848,4 @@ "startsWithQ": "維基數據編號以 Q 開頭後面接數字" } } -} \ No newline at end of file +} From c1ca7fc1b13ac5db0327727b19db795e757aa8d3 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:26 +0000 Subject: [PATCH 24/84] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 41.6% (284 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/nb_NO/ --- langs/nb_NO.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/nb_NO.json b/langs/nb_NO.json index 1b8b9c9143..4c85f65056 100644 --- a/langs/nb_NO.json +++ b/langs/nb_NO.json @@ -488,4 +488,4 @@ "description": "En Wikidata-identifikator" } } -} \ No newline at end of file +} From 09681dad184ef53026c3799932d4ba01d95e3d43 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:23 +0000 Subject: [PATCH 25/84] Translated using Weblate (Finnish) Currently translated at 77.2% (527 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/fi/ --- langs/fi.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/fi.json b/langs/fi.json index ad4194fb59..c7f3b4a7bb 100644 --- a/langs/fi.json +++ b/langs/fi.json @@ -707,4 +707,4 @@ "description": "Wikidata-tunniste" } } -} \ No newline at end of file +} From d8c18f449ecfb733a948fdebea71e8a437548ebc Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:27 +0000 Subject: [PATCH 26/84] Translated using Weblate (Portuguese) Currently translated at 91.6% (625 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/pt/ --- langs/pt.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/pt.json b/langs/pt.json index 01d2beba7b..6572135ae4 100644 --- a/langs/pt.json +++ b/langs/pt.json @@ -830,4 +830,4 @@ "startsWithQ": "Um identificador wikidata começa por Q e é seguido de um número" } } -} \ No newline at end of file +} From df38ec40f2468183f02622fae76f30efde8fb40a Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:22 +0000 Subject: [PATCH 27/84] Translated using Weblate (Czech) Currently translated at 97.9% (668 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/cs/ --- langs/cs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/cs.json b/langs/cs.json index 121337b98e..e5294a30cb 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -859,4 +859,4 @@ "startsWithQ": "Identifikátor wikidat začíná písmenem Q a následuje za ním číslo" } } -} \ No newline at end of file +} From e9623aa01ce8828a96ef43d7b7b48b03f0ed6085 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:28 +0000 Subject: [PATCH 28/84] Translated using Weblate (Slovenian) Currently translated at 14.3% (98 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/sl/ --- langs/sl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/sl.json b/langs/sl.json index dff241b67f..1cdbd23fb1 100644 --- a/langs/sl.json +++ b/langs/sl.json @@ -149,4 +149,4 @@ "partOfRelation": "Ta element je del relacije. Premaknete ga lahko z drugim urejevalnikom.", "whyMove": "Zakaj želite premakniti ta element?" } -} \ No newline at end of file +} From 01499060cd635d32f56d9351f81e6826aa465898 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Thu, 26 Sep 2024 17:17:22 +0000 Subject: [PATCH 29/84] Translated using Weblate (Danish) Currently translated at 55.4% (378 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/da/ --- langs/da.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/da.json b/langs/da.json index a5e17c221a..6f144dfc91 100644 --- a/langs/da.json +++ b/langs/da.json @@ -588,4 +588,4 @@ "description": "En Wikidata identifier" } } -} \ No newline at end of file +} From 594b020a6e901a15b6ae3b56bc4b7b89942a9b46 Mon Sep 17 00:00:00 2001 From: kjon Date: Thu, 26 Sep 2024 18:59:50 +0000 Subject: [PATCH 30/84] Translated using Weblate (English) Currently translated at 100.0% (682 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/en/ --- langs/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/en.json b/langs/en.json index 4a9478bca1..ca3fd035e7 100644 --- a/langs/en.json +++ b/langs/en.json @@ -577,7 +577,7 @@ "title": "Nearby streetview imagery" }, "pleaseLogin": "Please log in to add a picture", - "respectPrivacy": "Do not upload Google Maps, Google Streetview or other copyrighted sources.", + "respectPrivacy": "Do not upload from Google Maps, Google Streetview or other copyrighted sources.", "toBig": "Your image is too large as it is {actual_size}. Please use images of at most {max_size}", "upload": { "failReasons": "You might have lost connection to the internet", From 93fe9c907bd96db5e64ce3b327a79520a5cd3f2d Mon Sep 17 00:00:00 2001 From: kjon Date: Thu, 26 Sep 2024 18:59:31 +0000 Subject: [PATCH 31/84] Translated using Weblate (German) Currently translated at 100.0% (682 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/de/ --- langs/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/de.json b/langs/de.json index a6d0c7bec4..05c5e9115b 100644 --- a/langs/de.json +++ b/langs/de.json @@ -577,7 +577,7 @@ "title": "Straßenbilder in der Nähe" }, "pleaseLogin": "Bitte anmelden, um ein Bild hinzuzufügen", - "respectPrivacy": "Bitte respektieren Sie die Privatsphäre. Fotografieren Sie weder Personen noch Nummernschilder. Benutzen Sie keine urheberrechtlich geschützten Quellen wie z.B. Google Maps oder Google Streetview.", + "respectPrivacy": "Laden Sie keine Bilder von Google Maps, Google Streetview oder anderen urheberrechtlich geschützten Quellen hoch.", "toBig": "Ihr Bild ist mit {actual_size} zu groß. Die maximale Bildgröße ist {max_size}", "upload": { "failReasons": "Keine Internetverbindung", From afdca97c97b1b0d231f89d4213e56fd9ec34c07f Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Thu, 26 Sep 2024 18:54:44 +0000 Subject: [PATCH 32/84] Translated using Weblate (Spanish) Currently translated at 65.1% (444 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/es/ --- langs/es.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/es.json b/langs/es.json index e615ea35d5..612c3daffd 100644 --- a/langs/es.json +++ b/langs/es.json @@ -397,7 +397,7 @@ "seeNearby": "Buscar y enlazar fotos cercanas" }, "pleaseLogin": "Acceda para cargar una imagen", - "respectPrivacy": "No fotografíe personas ni matrículas. No cargue datos de Google Maps, Google StreetView u otras fuentes protegidas por derechos de autor.", + "respectPrivacy": "No cargue datos de Google Maps, Google StreetView u otras fuentes protegidas por derechos de autor.", "toBig": "Tu imagen es demasiado grande, ya que pesa {actual_size}. Por favor utiliza imágenes de como máximo {max_size}", "uploadDone": "Se ha añadido la imagen. Gracias por ayudar!", "uploadFailed": "No se pudo cargar la imagen. ¿Tiene Internet y se permiten las API de terceros? El navegador Brave o uMatrix podría bloquearlas.", From 9d3fd0c8e40d712825904cafa5af7e569a833494 Mon Sep 17 00:00:00 2001 From: kjon Date: Thu, 26 Sep 2024 19:01:22 +0000 Subject: [PATCH 33/84] Translated using Weblate (German) Currently translated at 100.0% (682 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/de/ --- langs/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/de.json b/langs/de.json index 05c5e9115b..b6adaf12cd 100644 --- a/langs/de.json +++ b/langs/de.json @@ -709,7 +709,7 @@ "preset_type": { "question": "Von welcher Art ist dieses Objekt?", "typeDescription": "Dies ist {title}.
{description}
", - "typeTitle": "Dies ist {title}" + "typeTitle": "Dies ist {title}" }, "privacy": { "editingIntro": "Ihre Änderungen werden auf OpenStreetMap gespeichert und sind öffentlich zugänglich. Ein mit MapComplete erstellter Änderungssatz enthält folgende Daten:", From 4c153f10f6cfa68cb3204304a280d65584fc8522 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Thu, 26 Sep 2024 19:02:32 +0000 Subject: [PATCH 34/84] Translated using Weblate (Spanish) Currently translated at 65.1% (444 of 682 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/es/ --- langs/es.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/es.json b/langs/es.json index 612c3daffd..4b3802d5d6 100644 --- a/langs/es.json +++ b/langs/es.json @@ -397,7 +397,7 @@ "seeNearby": "Buscar y enlazar fotos cercanas" }, "pleaseLogin": "Acceda para cargar una imagen", - "respectPrivacy": "No cargue datos de Google Maps, Google StreetView u otras fuentes protegidas por derechos de autor.", + "respectPrivacy": "No cargue datos desde Google Maps, Google StreetView u otras fuentes protegidas por derechos de autor.", "toBig": "Tu imagen es demasiado grande, ya que pesa {actual_size}. Por favor utiliza imágenes de como máximo {max_size}", "uploadDone": "Se ha añadido la imagen. Gracias por ayudar!", "uploadFailed": "No se pudo cargar la imagen. ¿Tiene Internet y se permiten las API de terceros? El navegador Brave o uMatrix podría bloquearlas.", From a7939da98f6cd7c24dbb3b998aeea492f74bc8e1 Mon Sep 17 00:00:00 2001 From: kjon Date: Wed, 25 Sep 2024 19:53:21 +0000 Subject: [PATCH 35/84] Translated using Weblate (German) Currently translated at 100.0% (3782 of 3782 strings) Translation: MapComplete/Layer translations Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/de/ --- langs/layers/de.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/langs/layers/de.json b/langs/layers/de.json index 512912d02d..219051d2e4 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -116,6 +116,14 @@ "question": "Werden mehrere Werbungen abwechselnd angezeigt?" }, "historic": { + "mappings": { + "0": { + "then": "Es handelt sich um ein historisches Werbeschild (eine Werbung für ein Unternehmen, das nicht mehr existiert, oder ein sehr altes Schild mit historischem Wert)" + }, + "1": { + "then": "Dieses Werbeschild hat keinen historischen Wert (das Unternehmen existiert noch und hat keinen denkmalpflegerischen Wert)" + } + }, "question": "Ist dieses Schild für ein Geschäft, das nicht mehr existiert oder nicht mehr gepflegt wird?" }, "luminous_or_lit_advertising": { @@ -181,6 +189,12 @@ "10": { "then": "Dies ist eine Wandmalerei" }, + "11": { + "then": "Dies ist eine Kachelarbeit - die Werbung ist auf Fliesen gemalt" + }, + "12": { + "then": "Dies ist ein Relief" + }, "2": { "then": "Dies ist eine Litfaßsäule" }, @@ -12358,4 +12372,4 @@ "render": "Windrad" } } -} \ No newline at end of file +} From 74c9327ea5c41663f648c796e5aead55409465a1 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 02:12:56 +0200 Subject: [PATCH 36/84] Chore: translation sync --- assets/layers/ghostsign/ghostsign.json | 4 -- assets/layers/police/police.json | 2 +- langs/layers/en.json | 72 ++++++++++++++++++++++++++ langs/layers/nl.json | 3 ++ 4 files changed, 76 insertions(+), 5 deletions(-) diff --git a/assets/layers/ghostsign/ghostsign.json b/assets/layers/ghostsign/ghostsign.json index fb43a456d3..3e25ee7441 100644 --- a/assets/layers/ghostsign/ghostsign.json +++ b/assets/layers/ghostsign/ghostsign.json @@ -13,7 +13,6 @@ "en": "Layer showing disused signs on buildings", "de": "Ebene, die ungenutzte Zeichen auf Gebäuden zeigt", "es": "Capa que muestra carteles en desuso en edificios", - "ca": "Capa que mostra rètols en desús dels edificis", "cs": "Vrstva zobrazující nepoužívané nápisy na budovách" }, @@ -37,7 +36,6 @@ "enableRelocation": false }, "tagRenderings": [ - "images", "advertising.historic", "advertising.type", @@ -48,7 +46,6 @@ "de": "Was ist der Text auf dem Schild?", "es": "¿Cuál es el texto del cartel?", "ca": "Quin és el text del rètol?" - }, "freeform": { "key": "inscription", @@ -95,7 +92,6 @@ "cs": "Tato cedule byla vyrobena pro: {brand}" } } - ], "lineRendering": [ { diff --git a/assets/layers/police/police.json b/assets/layers/police/police.json index d5854849c6..36da1f0e62 100644 --- a/assets/layers/police/police.json +++ b/assets/layers/police/police.json @@ -36,7 +36,7 @@ }, { "icon": { - "render":"./assets/layers/police/police.svg", + "render": "./assets/layers/police/police.svg", "mappings": [ { "if": "police=checkpoint", diff --git a/langs/layers/en.json b/langs/layers/en.json index 47505399d9..5c6433935c 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -1181,6 +1181,78 @@ "render": "Bench" } }, + "bicycle_counter": { + "description": "Layer showing monitoring stations for bicycle traffic", + "name": "Bicycle counters", + "presets": { + "0": { + "title": "a bicycle counter" + } + }, + "tagRenderings": { + "clock": { + "mappings": { + "0": { + "then": "This counter has a clock" + }, + "1": { + "then": "This counter has no clock" + } + }, + "question": "Does this bicycle counter have a clock?" + }, + "display": { + "mappings": { + "0": { + "then": "This counter has a digital display" + }, + "1": { + "then": "This counter has an analog display" + }, + "2": { + "then": "This counter has no display" + } + }, + "question": "Does this bicycle counter have a display showing the number of passing bicycles?" + }, + "name": { + "freeform": { + "placeholder": "Name of the counted location" + }, + "question": "What is the name of the counted location?", + "render": "Name of the counted location: {name}" + }, + "ref": { + "freeform": { + "placeholder": "Reference number of the counter" + }, + "mappings": { + "0": { + "then": "This counter has no reference number" + } + }, + "question": "What is the reference number of this counter?", + "render": "Reference number of the counter: {ref}" + }, + "start_date": { + "freeform": { + "placeholder": "Start date of the counter" + }, + "question": "When did this counter start counting?", + "render": "This counter started counting on {start_date}" + }, + "website": { + "freeform": { + "placeholder": "Website of the counter" + }, + "question": "Is there a website for this bicycle counter?", + "render": "Website of the counter: {website}" + } + }, + "title": { + "render": "Bicycle counter" + } + }, "bicycle_library": { "description": "A facility where bicycles can be lent for longer period of times", "name": "Bicycle library", diff --git a/langs/layers/nl.json b/langs/layers/nl.json index a8bdf96b3c..3208a2e5a5 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -752,6 +752,9 @@ "render": "Zitbank" } }, + "bicycle_counter": { + "description": "Automatische fietstelpunten" + }, "bicycle_library": { "description": "Een plaats waar men voor langere tijd een fiets kan lenen", "name": "Fietsbibliotheek", From 4650170db4bdd3b9e4fbd1900147a7433652dd6f Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 02:04:14 +0200 Subject: [PATCH 37/84] Feat: check if the image was blurred, attempt to reload if it is done; refactoring of ImageProvider code --- langs/en.json | 3 +- package-lock.json | 14 +-- package.json | 2 +- src/Logic/ImageProviders/AllImageProviders.ts | 40 ++----- .../ImageProviders/GenericImageProvider.ts | 20 ++-- src/Logic/ImageProviders/ImageProvider.ts | 75 ++++++------- src/Logic/ImageProviders/Imgur.ts | 8 +- src/Logic/ImageProviders/Mapillary.ts | 5 +- src/Logic/ImageProviders/Panoramax.ts | 103 ++++++++++++------ .../ImageProviders/WikidataImageProvider.ts | 24 ++-- .../ImageProviders/WikimediaImageProvider.ts | 21 ++-- src/UI/Image/AttributedImage.svelte | 70 +++++++----- src/UI/Image/ImageCarousel.ts | 6 +- src/Utils.ts | 23 ++++ 14 files changed, 224 insertions(+), 190 deletions(-) diff --git a/langs/en.json b/langs/en.json index ca3fd035e7..e7e4d1cc63 100644 --- a/langs/en.json +++ b/langs/en.json @@ -577,6 +577,7 @@ "title": "Nearby streetview imagery" }, "pleaseLogin": "Please log in to add a picture", + "processing": "The server is processing your image", "respectPrivacy": "Do not upload from Google Maps, Google Streetview or other copyrighted sources.", "toBig": "Your image is too large as it is {actual_size}. Please use images of at most {max_size}", "upload": { @@ -873,4 +874,4 @@ "startsWithQ": "A wikidata identifier starts with Q and is followed by a number" } } -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 0328e33b87..b98b93d1f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", - "panoramax-js": "^0.1.1", + "panoramax-js": "^0.1.4", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pbf": "^3.2.1", @@ -15994,9 +15994,9 @@ "license": "MIT" }, "node_modules/panoramax-js": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.1.tgz", - "integrity": "sha512-6R/Bo89Nwln92zG0TwqxGhtjn6dyDrxMEO/lTTtgTZc1lkEF2znHfDXKJa4YfTPUz14FtNVOV1IWmPsp/YULYw==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.4.tgz", + "integrity": "sha512-X7plFMH1ndxiiyVFEluDloNiEBH0nEkurCPJ7zAInxbgv21pp/EGFwu3ynmF5ETyyXB9zu0n309juyjTdJ5pnQ==", "dependencies": { "@ogcapi-js/features": "^1.1.1", "@ogcapi-js/shared": "^1.1.1", @@ -32056,9 +32056,9 @@ "version": "1.0.0" }, "panoramax-js": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.1.tgz", - "integrity": "sha512-6R/Bo89Nwln92zG0TwqxGhtjn6dyDrxMEO/lTTtgTZc1lkEF2znHfDXKJa4YfTPUz14FtNVOV1IWmPsp/YULYw==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.4.tgz", + "integrity": "sha512-X7plFMH1ndxiiyVFEluDloNiEBH0nEkurCPJ7zAInxbgv21pp/EGFwu3ynmF5ETyyXB9zu0n309juyjTdJ5pnQ==", "requires": { "@ogcapi-js/features": "^1.1.1", "@ogcapi-js/shared": "^1.1.1", diff --git a/package.json b/package.json index 2b49962659..457371e9ef 100644 --- a/package.json +++ b/package.json @@ -205,7 +205,7 @@ "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", - "panoramax-js": "^0.1.1", + "panoramax-js": "^0.1.4", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pbf": "^3.2.1", diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts index 476571c1e8..8dabd40973 100644 --- a/src/Logic/ImageProviders/AllImageProviders.ts +++ b/src/Logic/ImageProviders/AllImageProviders.ts @@ -6,6 +6,7 @@ import { Store, UIEventSource } from "../UIEventSource" import ImageProvider, { ProvidedImage } from "./ImageProvider" import { WikidataImageProvider } from "./WikidataImageProvider" import Panoramax from "./Panoramax" +import { Utils } from "../../Utils" /** * A generic 'from the interwebz' image picker, without attribution @@ -45,10 +46,6 @@ export default class AllImageProviders { wikimedia: WikimediaImageProvider.singleton, panoramax: Panoramax.singleton } - private static _cache: Map> = new Map< - string, - UIEventSource - >() public static byName(name: string) { return AllImageProviders.providersByName[name.toLowerCase()] @@ -76,42 +73,25 @@ export default class AllImageProviders { tags: Store>, tagKey?: string[] ): Store { - if (tags.data.id === undefined) { + if (tags?.data?.id === undefined) { return undefined } - const cacheKey = tags.data.id + tagKey - const cached = this._cache.get(cacheKey) - if (cached !== undefined) { - return cached - } const source = new UIEventSource([]) - this._cache.set(cacheKey, source) const allSources: Store[] = [] for (const imageProvider of AllImageProviders.ImageAttributionSource) { - - - const singleSource = imageProvider.GetRelevantUrls(tags, { - /* - By default, 'GetRelevantUrls' uses the defaultKeyPrefixes. - However, we override them if a custom image tag is set, e.g. 'image:menu' - */ - prefixes: tagKey ?? imageProvider.defaultKeyPrefixes, - }) + /* + By default, 'GetRelevantUrls' uses the defaultKeyPrefixes. + However, we override them if a custom image tag is set, e.g. 'image:menu' + */ + const prefixes = tagKey ?? imageProvider.defaultKeyPrefixes + const singleSource = tags.bindD(tags => imageProvider.getRelevantUrls(tags, prefixes)) allSources.push(singleSource) singleSource.addCallbackAndRunD((_) => { const all: ProvidedImage[] = [].concat(...allSources.map((source) => source.data)) - const uniq = [] - const seen = new Set() - for (const img of all) { - if (seen.has(img.url)) { - continue - } - seen.add(img.url) - uniq.push(img) - } - source.setData(uniq) + const dedup = Utils.DedupOnId(all, i => i?.id ?? i?.url) + source.set(dedup) }) } return source diff --git a/src/Logic/ImageProviders/GenericImageProvider.ts b/src/Logic/ImageProviders/GenericImageProvider.ts index f3b02b8d48..de369c4789 100644 --- a/src/Logic/ImageProviders/GenericImageProvider.ts +++ b/src/Logic/ImageProviders/GenericImageProvider.ts @@ -15,26 +15,24 @@ export default class GenericImageProvider extends ImageProvider { this._valuePrefixBlacklist = valuePrefixBlacklist } - async ExtractUrls(key: string, value: string): Promise[]> { + ExtractUrls(key: string, value: string): undefined | ProvidedImage[] { if (this._valuePrefixBlacklist.some((prefix) => value.startsWith(prefix))) { - return [] + return undefined } try { new URL(value) } catch (_) { // Not a valid URL - return [] + return undefined } - return [ - Promise.resolve({ - key: key, - url: value, - provider: this, - id: value, - }), - ] + return [{ + key: key, + url: value, + provider: this, + id: value, + }] } SourceIcon() { diff --git a/src/Logic/ImageProviders/ImageProvider.ts b/src/Logic/ImageProviders/ImageProvider.ts index 999516ee1d..50878a94a7 100644 --- a/src/Logic/ImageProviders/ImageProvider.ts +++ b/src/Logic/ImageProviders/ImageProvider.ts @@ -1,4 +1,4 @@ -import { Store, UIEventSource } from "../UIEventSource" +import { Store, Stores, UIEventSource } from "../UIEventSource" import BaseUIElement from "../../UI/BaseUIElement" import { LicenseInfo } from "./LicenseInfo" import { Utils } from "../../Utils" @@ -10,6 +10,7 @@ export interface ProvidedImage { provider: ImageProvider id: string date?: Date, + status?: string | "ready" /** * Compass angle of the taken image * 0 = north, 90° = East @@ -26,59 +27,45 @@ export default abstract class ImageProvider { public abstract SourceIcon(id?: string, location?: { lon: number; lat: number }): BaseUIElement + /** - * Given a properties object, maps it onto _all_ the available pictures for this imageProvider. - * This iterates over _all_ tags and matches _anything_ that might be an image + * Gets all the relevant URLS for the given tags and for the given prefixes; + * extracts the necessary information + * @param tags + * @param prefixes */ - public GetRelevantUrls( - allTags: Store, - options?: { - prefixes?: string[] - } - ): UIEventSource { - const prefixes = Utils.Dedup(options?.prefixes ?? this.defaultKeyPrefixes) - if (prefixes === undefined) { - throw "No `defaultKeyPrefixes` defined by this image provider" - } - const relevantUrls = new UIEventSource< - { id: string; url: string; key: string; provider: ImageProvider }[] - >([]) + public async getRelevantUrlsFor(tags: Record, prefixes: string[]): Promise { + const relevantUrls: ProvidedImage[] = [] const seenValues = new Set() - allTags.addCallbackAndRunD((tags) => { - for (const key in tags) { - if(key === "panoramax"){ - console.log("Inspecting", key,"against", prefixes) - } - if (!prefixes.some((prefix) => key === prefix || key.match(new RegExp(prefix+":[0-9]+")))) { + + for (const key in tags) { + if (!prefixes.some((prefix) => key === prefix || key.match(new RegExp(prefix+":[0-9]+")))) { + continue + } + const values = Utils.NoEmpty(tags[key]?.split(";")?.map((v) => v.trim()) ?? []) + for (const value of values) { + if (seenValues.has(value)) { continue } - const values = Utils.NoEmpty(tags[key]?.split(";")?.map((v) => v.trim()) ?? []) - for (const value of values) { - if (seenValues.has(value)) { - continue - } - seenValues.add(value) - this.ExtractUrls(key, value).then((promises) => { - for (const promise of promises ?? []) { - if (promise === undefined) { - continue - } - promise.then((providedImage) => { - if (providedImage === undefined) { - return - } - relevantUrls.data.push(providedImage) - relevantUrls.ping() - }) - } - }) + seenValues.add(value) + let images = this.ExtractUrls(key, value) + if(!Array.isArray(images)){ + images = await images + } + if(images){ + relevantUrls.push(...images) } } - }) + } return relevantUrls } - public abstract ExtractUrls(key: string, value: string): Promise[]> + public getRelevantUrls(tags: Record, prefixes: string[]): Store { + return Stores.FromPromise(this.getRelevantUrlsFor(tags, prefixes)) + } + + + public abstract ExtractUrls(key: string, value: string): undefined | ProvidedImage[] | Promise public abstract DownloadAttribution(providedImage: { url: string diff --git a/src/Logic/ImageProviders/Imgur.ts b/src/Logic/ImageProviders/Imgur.ts index f5b2c06b12..80acda10aa 100644 --- a/src/Logic/ImageProviders/Imgur.ts +++ b/src/Logic/ImageProviders/Imgur.ts @@ -24,18 +24,18 @@ export class Imgur extends ImageProvider { return undefined } - public async ExtractUrls(key: string, value: string): Promise[]> { + public ExtractUrls(key: string, value: string): undefined | ProvidedImage[] { if (Imgur.defaultValuePrefix.some((prefix) => value.startsWith(prefix))) { return [ - Promise.resolve({ + { url: value, key: key, provider: this, id: value, - }), + } ] } - return [] + return undefined } /** diff --git a/src/Logic/ImageProviders/Mapillary.ts b/src/Logic/ImageProviders/Mapillary.ts index 3ce2227144..5a26e31c26 100644 --- a/src/Logic/ImageProviders/Mapillary.ts +++ b/src/Logic/ImageProviders/Mapillary.ts @@ -131,8 +131,9 @@ export class Mapillary extends ImageProvider { return new SvelteUIElement(MapillaryIcon, { url }) } - async ExtractUrls(key: string, value: string): Promise[]> { - return [this.PrepareUrlAsync(key, value)] + async ExtractUrls(key: string, value: string): Promise { + const img = await this.PrepareUrlAsync(key, value) + return [img] } public async DownloadAttribution(providedImage: { id: string }): Promise { diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts index 6f8291d0fb..eb73b9636c 100644 --- a/src/Logic/ImageProviders/Panoramax.ts +++ b/src/Logic/ImageProviders/Panoramax.ts @@ -1,35 +1,31 @@ import { ImageUploader } from "./ImageUploader" -import { AuthorizedPanoramax } from "panoramax-js/dist" +import { AuthorizedPanoramax, PanoramaxXYZ, ImageData } from "panoramax-js/dist" import ExifReader from "exifreader" import ImageProvider, { ProvidedImage } from "./ImageProvider" import BaseUIElement from "../../UI/BaseUIElement" import { LicenseInfo } from "./LicenseInfo" import { Utils } from "../../Utils" -import { Feature, FeatureCollection, Point } from "geojson" import { GeoOperations } from "../GeoOperations" +import Constants from "../../Models/Constants" +import { Store, Stores, UIEventSource } from "../UIEventSource" -type ImageData = Feature & { - id: string, - assets: { hd: { href: string }, sd: { href: string } }, - providers: {name: string}[] -} export default class PanoramaxImageProvider extends ImageProvider { public static readonly singleton = new PanoramaxImageProvider() - + private static readonly xyz = new PanoramaxXYZ() + private static defaultPanoramax = new AuthorizedPanoramax(Constants.panoramax.url, Constants.panoramax.token) public defaultKeyPrefixes: string[] = ["panoramax"] public readonly name: string = "panoramax" - private static knownMeta: Record = {} + private static knownMeta: Record = {} public SourceIcon(id?: string, location?: { lon: number; lat: number; }): BaseUIElement { return undefined } - public addKnownMeta(meta: ImageData){ - console.log("Adding known meta for", meta.id) - PanoramaxImageProvider.knownMeta[meta.id] = meta + public addKnownMeta(meta: ImageData) { + PanoramaxImageProvider.knownMeta[meta.id] = { data: meta, time: new Date() } } /** @@ -39,16 +35,14 @@ export default class PanoramaxImageProvider extends ImageProvider { */ private async getInfoFromMapComplete(id: string): Promise<{ data: ImageData, url: string }> { const sequence = "6e702976-580b-419c-8fb3-cf7bd364e6f8" // We always reuse this sequence - const url = `https://panoramax.mapcomplete.org/api/collections/${sequence}/items/${id}` - const data = await Utils.downloadJsonCached(url, 60 * 60 * 1000) - return {url, data} + const url = `https://panoramax.mapcomplete.org/` + const data = await PanoramaxImageProvider.defaultPanoramax.imageInfo(sequence, id) + return { url, data } } private async getInfoFromXYZ(imageId: string): Promise<{ data: ImageData, url: string }> { - const url = "https://api.panoramax.xyz/api/search?limit=1&ids=" + imageId - const metaAll = await Utils.downloadJsonCached>(url, 1000 * 60 * 60) - const data= metaAll.features[0] - return {data, url} + const data = await PanoramaxImageProvider.xyz.imageInfo(imageId) + return { data, url: "https://api.panoramax.xyz/" } } @@ -57,17 +51,18 @@ export default class PanoramaxImageProvider extends ImageProvider { * @param meta * @private */ - private featureToImage(info: {data: ImageData, url: string}) { - const meta = info.data - const url = info.url + private featureToImage(info: { data: ImageData, url: string }) { + const meta = info?.data if (!meta) { return undefined } - function makeAbsolute(s: string){ - if(!s.startsWith("https://") && !s.startsWith("http://")){ - const parsed = new URL(url) - return parsed.protocol+"//"+parsed.host+s + const url = info.url + + function makeAbsolute(s: string) { + if (!s.startsWith("https://") && !s.startsWith("http://")) { + const parsed = new URL(url) + return parsed.protocol + "//" + parsed.host + s } return s } @@ -80,27 +75,64 @@ export default class PanoramaxImageProvider extends ImageProvider { lon, lat, key: "panoramax", provider: this, + status: meta.properties["geovisio:status"], rotation: Number(meta.properties["view:azimuth"]), date: new Date(meta.properties.datetime), } } private async getInfoFor(id: string): Promise<{ data: ImageData, url: string }> { - const cached= PanoramaxImageProvider.knownMeta[id] - console.log("Cached version", id, cached) - if(cached){ - return {data: cached, url: undefined} + if (!id.match(/^[a-zA-Z0-9-]+$/)) { + return undefined + } + const cached = PanoramaxImageProvider.knownMeta[id] + if (cached) { + if(new Date().getTime() - cached.time.getTime() < 1000){ + + return { data: cached.data, url: undefined } + } } try { return await this.getInfoFromMapComplete(id) } catch (e) { - return await this.getInfoFromXYZ(id) + console.debug(e) } + try { + return await this.getInfoFromXYZ(id) + } catch (e) { + console.debug(e) + } + return undefined } - public async ExtractUrls(key: string, value: string): Promise[]> { - return [this.getInfoFor(value).then(r => this.featureToImage(r))] + public async ExtractUrls(key: string, value: string): Promise { + return [await this.getInfoFor(value).then(r => this.featureToImage(r))] + } + + + getRelevantUrls(tags: Record, prefixes: string[]): Store { + const source = UIEventSource.FromPromise(super.getRelevantUrlsFor(tags, prefixes)) + + function hasLoading(data: ProvidedImage[]) { + if(data === undefined){ + return true + } + return data?.some(img => img?.status !== undefined && img?.status !== "ready" && img?.status !== "broken") + } + + Stores.Chronic(1500, () => + hasLoading(source.data), + ).addCallback(_ => { + console.log("UPdating... ") + super.getRelevantUrlsFor(tags, prefixes).then(data => { + console.log("New panoramax data is", data, hasLoading(data)) + source.set(data) + return !hasLoading(data) + }) + }) + + return source } public async DownloadAttribution(providedImage: { url: string; id: string; }): Promise { @@ -139,7 +171,7 @@ export class PanoramaxUploader implements ImageUploader { const p = this._panoramax const defaultSequence = (await p.mySequences())[0] - const img = await p.addImage(blob, defaultSequence, { + const img = await p.addImage(blob, defaultSequence, { lat: !hasGPS ? lat : undefined, lon: !hasGPS ? lon : undefined, datetime: !hasDate ? new Date().toISOString() : undefined, @@ -149,11 +181,10 @@ export class PanoramaxUploader implements ImageUploader { }) PanoramaxImageProvider.singleton.addKnownMeta(img) - await Utils.waitFor(1250) return { key: "panoramax", value: img.id, - absoluteUrl: img.assets.hd.href + absoluteUrl: img.assets.hd.href, } } diff --git a/src/Logic/ImageProviders/WikidataImageProvider.ts b/src/Logic/ImageProviders/WikidataImageProvider.ts index ded3396da1..c64896559c 100644 --- a/src/Logic/ImageProviders/WikidataImageProvider.ts +++ b/src/Logic/ImageProviders/WikidataImageProvider.ts @@ -5,6 +5,7 @@ import Wikidata from "../Web/Wikidata" import SvelteUIElement from "../../UI/Base/SvelteUIElement" import * as Wikidata_icon from "../../assets/svg/Wikidata.svelte" import { Utils } from "../../Utils" +import { ImmutableStore, Store, Stores, UIEventSource } from "../UIEventSource" export class WikidataImageProvider extends ImageProvider { public static readonly singleton = new WikidataImageProvider() @@ -25,28 +26,28 @@ export class WikidataImageProvider extends ImageProvider { return new SvelteUIElement(Wikidata_icon) } - public async ExtractUrls(key: string, value: string): Promise[]> { + public async ExtractUrls(key: string, value: string): Promise { if (WikidataImageProvider.keyBlacklist.has(key)) { - return [] + return undefined } const entity = await Wikidata.LoadWikidataEntryAsync(value) if (entity === undefined) { - return [] + return undefined } - const allImages: Promise[] = [] + const allImages: Promise[] = [] // P18 is the claim 'depicted in this image' for (const img of Array.from(entity.claims.get("P18") ?? [])) { - const promises = await WikimediaImageProvider.singleton.ExtractUrls(undefined, img) - allImages.push(...promises) + const promises = WikimediaImageProvider.singleton.ExtractUrls(undefined, img) + allImages.push(promises) } // P373 is 'commons category' for (let cat of Array.from(entity.claims.get("P373") ?? [])) { if (!cat.startsWith("Category:")) { cat = "Category:" + cat } - const promises = await WikimediaImageProvider.singleton.ExtractUrls(undefined, cat) - allImages.push(...promises) + const promises = WikimediaImageProvider.singleton.ExtractUrls(undefined, cat) + allImages.push(promises) } const commons = entity.commons @@ -54,10 +55,11 @@ export class WikidataImageProvider extends ImageProvider { commons !== undefined && (commons.startsWith("Category:") || commons.startsWith("File:")) ) { - const promises = await WikimediaImageProvider.singleton.ExtractUrls(undefined, commons) - allImages.push(...promises) + const promises = WikimediaImageProvider.singleton.ExtractUrls(undefined, commons) + allImages.push(promises) } - return allImages + const resolved = await Promise.all(Utils.NoNull(allImages)) + return [].concat(...resolved) } public DownloadAttribution(_): Promise { diff --git a/src/Logic/ImageProviders/WikimediaImageProvider.ts b/src/Logic/ImageProviders/WikimediaImageProvider.ts index 020f32b4f2..631ea44f98 100644 --- a/src/Logic/ImageProviders/WikimediaImageProvider.ts +++ b/src/Logic/ImageProviders/WikimediaImageProvider.ts @@ -37,7 +37,7 @@ export class WikimediaImageProvider extends ImageProvider { return value } const baseUrl = `https://commons.wikimedia.org/wiki/Special:FilePath/${encodeURIComponent( - value + value, )}` if (useHd) { return baseUrl @@ -97,28 +97,27 @@ export class WikimediaImageProvider extends ImageProvider { return this.UrlForImage("File:" + value) } - public async ExtractUrls(key: string, value: string): Promise[]> { + public async ExtractUrls(key: string, value: string): undefined | Promise { const hasCommonsPrefix = WikimediaImageProvider.startsWithCommonsPrefix(value) if (key !== undefined && key !== this.commons_key && !hasCommonsPrefix) { - return [] + return undefined } value = WikimediaImageProvider.removeCommonsPrefix(value) if (value.startsWith("Category:")) { const urls = await Wikimedia.GetCategoryContents(value) - return urls - .filter((url) => url.startsWith("File:")) - .map((image) => Promise.resolve(this.UrlForImage(image))) + return urls.filter((url) => url.startsWith("File:")) + .map((image) => this.UrlForImage(image)) } if (value.startsWith("File:")) { - return [Promise.resolve(this.UrlForImage(value))] + return [this.UrlForImage(value)] } if (value.startsWith("http")) { - // PRobably an error - return [] + // Probably an error + return undefined } // We do a last effort and assume this is a file - return [Promise.resolve(this.UrlForImage("File:" + value))] + return [(this.UrlForImage("File:" + value))] } public async DownloadAttribution(img: { url: string }): Promise { @@ -148,7 +147,7 @@ export class WikimediaImageProvider extends ImageProvider { console.warn( "The file", filename, - "has no usable metedata or license attached... Please fix the license info file yourself!" + "has no usable metedata or license attached... Please fix the license info file yourself!", ) return undefined } diff --git a/src/UI/Image/AttributedImage.svelte b/src/UI/Image/AttributedImage.svelte index 60fc4bfc35..5af0aaf066 100644 --- a/src/UI/Image/AttributedImage.svelte +++ b/src/UI/Image/AttributedImage.svelte @@ -13,6 +13,9 @@ import { onDestroy } from "svelte" import type { SpecialVisualizationState } from "../SpecialVisualization" import type { Feature, Point } from "geojson" + import Loading from "../Base/Loading.svelte" + import Translations from "../i18n/Translations" + import Tr from "../Base/Tr.svelte" export let image: Partial let fallbackImage: string = undefined @@ -30,7 +33,7 @@ let showBigPreview = new UIEventSource(false) onDestroy(showBigPreview.addCallbackAndRun(shown => { if (!shown) { - previewedImage.set(false) + previewedImage.set(undefined) } })) onDestroy(previewedImage.addCallbackAndRun(previewedImage => { @@ -49,12 +52,12 @@ type: "Feature", properties: { id: image.id, - rotation: image.rotation + rotation: image.rotation, }, geometry: { type: "Point", - coordinates: [image.lon, image.lat] - } + coordinates: [image.lon, image.lat], + }, } console.log(f) state?.geocodedImages.set([f]) @@ -73,36 +76,45 @@ on:click={() => {console.log("Closing");previewedImage.set(undefined)}}> -
-
highlight()} - on:mouseleave={() => highlight(false)} - > - (loaded = true)} - class={imgClass ?? ""} - class:cursor-zoom-in={canZoom} - on:click={() => { +{#if image.status !== undefined && image.status !== "ready"} +
+ + + +
+{:else} +
+
highlight()} + on:mouseleave={() => highlight(false)} + > + + (loaded = true)} + class={imgClass ?? ""} + class:cursor-zoom-in={canZoom} + on:click={() => { previewedImage?.set(image) }} - on:error={() => { + on:error={() => { if (fallbackImage) { imgEl.src = fallbackImage } }} - src={image.url} - /> + src={image.url} + /> - {#if canZoom && loaded} -
previewedImage.set(image)}> - -
- {/if} + {#if canZoom && loaded} +
previewedImage.set(image)}> + +
+ {/if} +
+
+ +
-
- -
-
+{/if} diff --git a/src/UI/Image/ImageCarousel.ts b/src/UI/Image/ImageCarousel.ts index 8c6d1e5b9f..3b96b5bb6d 100644 --- a/src/UI/Image/ImageCarousel.ts +++ b/src/UI/Image/ImageCarousel.ts @@ -31,7 +31,7 @@ export class ImageCarousel extends Toggle { image: url, state, previewedImage: state?.previewedImage, - }) + }).SetClass("h-full") if (url.key !== undefined) { image = new Combine([ @@ -42,8 +42,8 @@ export class ImageCarousel extends Toggle { ]).SetClass("relative") } image - .SetClass("w-full block cursor-zoom-in") - .SetStyle("min-width: 50px; background: grey;") + .SetClass("w-full h-full block cursor-zoom-in low-interaction") + .SetStyle("min-width: 50px;") uiElements.push(image) } catch (e) { console.error("Could not generate image element for", url.url, "due to", e) diff --git a/src/Utils.ts b/src/Utils.ts index 2a23d76fda..b2b7f879ff 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -414,6 +414,29 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be return items } + /** + * Deduplicates the given array based on some ID-properties. + * Removes all falsey values + * @param arr + * @param toKey + * @constructor + */ + public static DedupOnId(arr: T[], toKey: ((t:T) => string) ): T[]{ + const uniq: T[] = [] + const seen = new Set() + for (const img of arr) { + if(!img){ + continue + } + const k = toKey(img) + if (!seen.has(k)) { + seen.add(k) + uniq.push(img) + } + } + return uniq + } + /** * Finds all duplicates in a list of strings * From 4395e883903345a2fd20e916e58a8e92914a4996 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 02:15:46 +0200 Subject: [PATCH 38/84] Chore: translation sync --- assets/layers/advertising/advertising.json | 12 ++++++++---- langs/ca.json | 2 +- langs/cs.json | 2 +- langs/da.json | 2 +- langs/de.json | 2 +- langs/en.json | 2 +- langs/es.json | 2 +- langs/fi.json | 2 +- langs/fr.json | 2 +- langs/gl.json | 2 +- langs/hu.json | 2 +- langs/it.json | 2 +- langs/ja.json | 2 +- langs/layers/de.json | 2 +- langs/nb_NO.json | 2 +- langs/nl.json | 2 +- langs/pl.json | 2 +- langs/pt.json | 2 +- langs/pt_BR.json | 2 +- langs/ru.json | 2 +- langs/sl.json | 2 +- langs/sv.json | 2 +- langs/zh_Hant.json | 2 +- 23 files changed, 30 insertions(+), 26 deletions(-) diff --git a/assets/layers/advertising/advertising.json b/assets/layers/advertising/advertising.json index 5639c27087..8e8f28f323 100644 --- a/assets/layers/advertising/advertising.json +++ b/assets/layers/advertising/advertising.json @@ -1117,13 +1117,15 @@ { "if": "advertising=tilework", "then": { - "en": "This is tilework - the advertisement is painted on tiles" + "en": "This is tilework - the advertisement is painted on tiles", + "de": "Dies ist eine Kachelarbeit - die Werbung ist auf Fliesen gemalt" } }, { "if": "advertising=relief", "then": { - "en": "This is a relief" + "en": "This is a relief", + "de": "Dies ist ein Relief" } } ] @@ -1652,13 +1654,15 @@ "if": "historic=advertising", "alsoShowIf": "historic=yes", "then": { - "en": "This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)" + "en": "This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)", + "de": "Es handelt sich um ein historisches Werbeschild (eine Werbung für ein Unternehmen, das nicht mehr existiert, oder ein sehr altes Schild mit historischem Wert)" } }, { "if": "historic=", "then": { - "en": "This advertisement sign has no historic value (the business still exists and has no heritage value)" + "en": "This advertisement sign has no historic value (the business still exists and has no heritage value)", + "de": "Dieses Werbeschild hat keinen historischen Wert (das Unternehmen existiert noch und hat keinen denkmalpflegerischen Wert)" } } ] diff --git a/langs/ca.json b/langs/ca.json index b56265de1d..e4d21759ba 100644 --- a/langs/ca.json +++ b/langs/ca.json @@ -699,4 +699,4 @@ "description": "Un identificador de Wikidata" } } -} +} \ No newline at end of file diff --git a/langs/cs.json b/langs/cs.json index e5294a30cb..121337b98e 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -859,4 +859,4 @@ "startsWithQ": "Identifikátor wikidat začíná písmenem Q a následuje za ním číslo" } } -} +} \ No newline at end of file diff --git a/langs/da.json b/langs/da.json index 6f144dfc91..a5e17c221a 100644 --- a/langs/da.json +++ b/langs/da.json @@ -588,4 +588,4 @@ "description": "En Wikidata identifier" } } -} +} \ No newline at end of file diff --git a/langs/de.json b/langs/de.json index b6adaf12cd..3ec9ccae48 100644 --- a/langs/de.json +++ b/langs/de.json @@ -873,4 +873,4 @@ "startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt" } } -} +} \ No newline at end of file diff --git a/langs/en.json b/langs/en.json index e7e4d1cc63..300dca8a21 100644 --- a/langs/en.json +++ b/langs/en.json @@ -874,4 +874,4 @@ "startsWithQ": "A wikidata identifier starts with Q and is followed by a number" } } -} +} \ No newline at end of file diff --git a/langs/es.json b/langs/es.json index 4b3802d5d6..894a9d0b83 100644 --- a/langs/es.json +++ b/langs/es.json @@ -593,4 +593,4 @@ "description": "Un identificador de Wikidata" } } -} +} \ No newline at end of file diff --git a/langs/fi.json b/langs/fi.json index c7f3b4a7bb..ad4194fb59 100644 --- a/langs/fi.json +++ b/langs/fi.json @@ -707,4 +707,4 @@ "description": "Wikidata-tunniste" } } -} +} \ No newline at end of file diff --git a/langs/fr.json b/langs/fr.json index c041a4d7e8..e3d6e3b193 100644 --- a/langs/fr.json +++ b/langs/fr.json @@ -551,4 +551,4 @@ "feedback": "Ceci n'est pas une adresse web valide" } } -} +} \ No newline at end of file diff --git a/langs/gl.json b/langs/gl.json index 45f11dbcb7..cdcb7bd7df 100644 --- a/langs/gl.json +++ b/langs/gl.json @@ -146,4 +146,4 @@ "title_singular": "Unha recensión", "write_a_comment": "Deixa unha recensión…" } -} +} \ No newline at end of file diff --git a/langs/hu.json b/langs/hu.json index e6a6a2cc74..94287046ce 100644 --- a/langs/hu.json +++ b/langs/hu.json @@ -312,4 +312,4 @@ "split": "Szétvágás", "splitTitle": "Válaszd ki a térképen, hogy az út hol legyen elvágva" } -} +} \ No newline at end of file diff --git a/langs/it.json b/langs/it.json index 4560f7eb0a..fecd93e449 100644 --- a/langs/it.json +++ b/langs/it.json @@ -531,4 +531,4 @@ "feedback": "Questo non è un numero di telefono valido" } } -} +} \ No newline at end of file diff --git a/langs/ja.json b/langs/ja.json index c3a8dad503..0823819fef 100644 --- a/langs/ja.json +++ b/langs/ja.json @@ -149,4 +149,4 @@ "tos": "レビューを作成する場合は、Mangrove.reviewsのTOSおよびプライバシーポリシーに同意します。", "write_a_comment": "レビューを残す…" } -} +} \ No newline at end of file diff --git a/langs/layers/de.json b/langs/layers/de.json index 219051d2e4..d271970730 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -12372,4 +12372,4 @@ "render": "Windrad" } } -} +} \ No newline at end of file diff --git a/langs/nb_NO.json b/langs/nb_NO.json index 4c85f65056..1b8b9c9143 100644 --- a/langs/nb_NO.json +++ b/langs/nb_NO.json @@ -488,4 +488,4 @@ "description": "En Wikidata-identifikator" } } -} +} \ No newline at end of file diff --git a/langs/nl.json b/langs/nl.json index e3c9b83297..58681dd2b9 100644 --- a/langs/nl.json +++ b/langs/nl.json @@ -716,4 +716,4 @@ "description": "Een Wikidata-code" } } -} +} \ No newline at end of file diff --git a/langs/pl.json b/langs/pl.json index 43f0c90333..eaabe52bfb 100644 --- a/langs/pl.json +++ b/langs/pl.json @@ -668,4 +668,4 @@ "description": "Identyfikator Wikidanych" } } -} +} \ No newline at end of file diff --git a/langs/pt.json b/langs/pt.json index 6572135ae4..01d2beba7b 100644 --- a/langs/pt.json +++ b/langs/pt.json @@ -830,4 +830,4 @@ "startsWithQ": "Um identificador wikidata começa por Q e é seguido de um número" } } -} +} \ No newline at end of file diff --git a/langs/pt_BR.json b/langs/pt_BR.json index 40e3e369bd..d847a272cc 100644 --- a/langs/pt_BR.json +++ b/langs/pt_BR.json @@ -170,4 +170,4 @@ "tos": "Se você criar um comentário, você concorda com o TOS e a política de privacidade de Mangrove.reviews ", "write_a_comment": "Deixe um comentário…" } -} +} \ No newline at end of file diff --git a/langs/ru.json b/langs/ru.json index 1772a6f687..5084c19593 100644 --- a/langs/ru.json +++ b/langs/ru.json @@ -202,4 +202,4 @@ "description": "Идентификатор Wikidata" } } -} +} \ No newline at end of file diff --git a/langs/sl.json b/langs/sl.json index 1cdbd23fb1..dff241b67f 100644 --- a/langs/sl.json +++ b/langs/sl.json @@ -149,4 +149,4 @@ "partOfRelation": "Ta element je del relacije. Premaknete ga lahko z drugim urejevalnikom.", "whyMove": "Zakaj želite premakniti ta element?" } -} +} \ No newline at end of file diff --git a/langs/sv.json b/langs/sv.json index fd2298aae4..389c625bce 100644 --- a/langs/sv.json +++ b/langs/sv.json @@ -66,4 +66,4 @@ "cancel": "Avbryt", "split": "Dela" } -} +} \ No newline at end of file diff --git a/langs/zh_Hant.json b/langs/zh_Hant.json index c8a747652c..2027183fcc 100644 --- a/langs/zh_Hant.json +++ b/langs/zh_Hant.json @@ -848,4 +848,4 @@ "startsWithQ": "維基數據編號以 Q 開頭後面接數字" } } -} +} \ No newline at end of file From ce363dfb59c3237e20aed87ab51da42b9652cb01 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 02:44:03 +0200 Subject: [PATCH 39/84] Fix: note themes uses full URL now instead of Panoramax-id --- .../ImageProviders/ImageUploadManager.ts | 41 ++++++++----------- src/Logic/ImageProviders/ImageUploader.ts | 4 +- src/UI/Image/UploadImage.svelte | 23 +++++++++-- src/UI/SpecialVisualizations.ts | 5 +-- 4 files changed, 41 insertions(+), 32 deletions(-) diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index d726e10a2f..c90e2ab072 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -1,4 +1,4 @@ -import { ImageUploader } from "./ImageUploader" +import { ImageUploader, UploadResult } from "./ImageUploader" import LinkImageAction from "../Osm/Actions/LinkImageAction" import FeaturePropertiesStore from "../FeatureSource/Actors/FeaturePropertiesStore" import { OsmId, OsmTags } from "../../Models/OsmFeature" @@ -111,44 +111,40 @@ export class ImageUploadManager { } const tags = tagsStore.data + const featureId = tags.id const author = this._osmConnection.userDetails.data.name - const action = await this.uploadImageWithLicense( + const uploadResult = await this.uploadImageWithLicense( featureId, author, file, targetKey, - tags?.data?.["_orig_theme"], ) + if (!uploadResult) { + return + } + const properties = this._featureProperties.getStore(featureId) + + const action = new LinkImageAction(featureId, uploadResult. key, uploadResult . value, properties, { + theme: tags?.data?.["_orig_theme"] ?? this._layout.id, + changeType: "add-image", + }) - if (!action) { - return - } - if (!isNaN(Number(featureId))) { - // This is a map note - const url = action._url - await this._osmConnection.addCommentToNote(featureId, url) - NoteCommentElement.addCommentTo(url, >tagsStore, { - osmConnection: this._osmConnection, - }) - return - } await this._changes.applyAction(action) } - private async uploadImageWithLicense( + public async uploadImageWithLicense( featureId: OsmId, author: string, blob: File, targetKey: string | undefined, - theme?: string, - ): Promise { + ): Promise { this.increaseCountFor(this._uploadStarted, featureId) - const properties = this._featureProperties.getStore(featureId) let key: string let value: string + let absoluteUrl: string let location: [number, number] = undefined if (this._gps.data) { location = [this._gps.data.longitude, this._gps.data.latitude] @@ -157,7 +153,6 @@ export class ImageUploadManager { const feature = this._indexedFeatures.featuresById.data.get(featureId) location = GeoOperations.centerpointCoordinates(feature) } - let absoluteUrl: string try { ;({ key, value, absoluteUrl } = await this._uploader.uploadImage(blob, location, author)) } catch (e) { @@ -179,10 +174,8 @@ export class ImageUploadManager { value = absoluteUrl } this.increaseCountFor(this._uploadFinished, featureId) - return new LinkImageAction(featureId, key, value, properties, { - theme: theme ?? this._layout.id, - changeType: "add-image", - }) + return {key, absoluteUrl, value} + } private getCounterFor(collection: Map>, key: string | "*") { diff --git a/src/Logic/ImageProviders/ImageUploader.ts b/src/Logic/ImageProviders/ImageUploader.ts index dc9babe20e..bd49baa482 100644 --- a/src/Logic/ImageProviders/ImageUploader.ts +++ b/src/Logic/ImageProviders/ImageUploader.ts @@ -8,5 +8,7 @@ export interface ImageUploader { blob: File, currentGps: [number,number], author: string - ): Promise<{ key: string; value: string, absoluteUrl: string }> + ): Promise } + +export interface UploadResult{ key: string; value: string, absoluteUrl: string } diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte index ab74d4b52a..2b0f97c8ac 100644 --- a/src/UI/Image/UploadImage.svelte +++ b/src/UI/Image/UploadImage.svelte @@ -14,11 +14,14 @@ import LoginButton from "../Base/LoginButton.svelte" import { Translation } from "../i18n/Translation" import Camera from "@babeard/svelte-heroicons/solid/Camera" + import LayerConfig from "../../Models/ThemeConfig/LayerConfig" + import NoteCommentElement from "../Popup/Notes/NoteCommentElement" export let state: SpecialVisualizationState export let tags: UIEventSource export let targetKey: string = undefined + export let layer: LayerConfig /** * Image to show in the button * NOT the image to upload! @@ -30,11 +33,9 @@ export let labelText: string = undefined const t = Translations.t.image - let licenseStore = state?.userRelatedState?.imageLicense ?? new ImmutableStore("CC0") - let errors = new UIEventSource([]) - function handleFiles(files: FileList) { + async function handleFiles(files: FileList) { const errs = [] for (let i = 0; i < files.length; i++) { const file = files.item(i) @@ -45,7 +46,21 @@ errs.push(canBeUploaded.error) continue } - state?.imageUploadManager.uploadImageAndApply(file, tags, targetKey) + + if(layer.id === "note"){ + const uploadResult = await state?.imageUploadManager.uploadImageWithLicense(file, tags, targetKey) + if(!uploadResult){ + return + } + const url = uploadResult.absoluteUrl + await this._osmConnection.addCommentToNote(tags.data.id, url) + NoteCommentElement.addCommentTo(url, >tags, { + osmConnection: this._osmConnection, + }) + return + } + + await state?.imageUploadManager.uploadImageAndApply(file, tags, targetKey) } catch (e) { alert(e) } diff --git a/src/UI/SpecialVisualizations.ts b/src/UI/SpecialVisualizations.ts index cc5a886914..0f595186b0 100644 --- a/src/UI/SpecialVisualizations.ts +++ b/src/UI/SpecialVisualizations.ts @@ -1100,11 +1100,10 @@ export default class SpecialVisualizations { ], needsUrls: [Imgur.apiUrl, ...Imgur.supportingUrls], - constr: (state, tags, args) => { + constr: (state, tags, args, feature, layer) => { const id = tags.data[args[0] ?? "id"] tags = state.featureProperties.getStore(id) - console.log("Id is", id) - return new SvelteUIElement(UploadImage, { state, tags }) + return new SvelteUIElement(UploadImage, { state, tags, layer }) }, }, { From 556c26d99b10af8b7691eb803f06c46cc2556574 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 02:47:05 +0200 Subject: [PATCH 40/84] Chore: remove obsolete field --- src/UI/SpecialVisualization.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/UI/SpecialVisualization.ts b/src/UI/SpecialVisualization.ts index 4acf403229..d0f5b03d94 100644 --- a/src/UI/SpecialVisualization.ts +++ b/src/UI/SpecialVisualization.ts @@ -37,7 +37,6 @@ export interface SpecialVisualizationState { readonly featureSwitches: FeatureSwitchState readonly layerState: LayerState - readonly featureSummary: SummaryTileSourceRewriter readonly featureProperties: FeaturePropertiesStore readonly indexedFeatures: IndexedFeatureSource & LayoutSource From 03db69f1a0d2823d539aefe1d5e00a4eddbdc31f Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 02:53:44 +0200 Subject: [PATCH 41/84] UX: hide layers without name from search, search for those layers in the themesearch (see #2157) --- src/Logic/Search/LayerSearch.ts | 5 +++-- src/Logic/Search/ThemeSearch.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Logic/Search/LayerSearch.ts b/src/Logic/Search/LayerSearch.ts index 22c01254a4..60ffbacb1e 100644 --- a/src/Logic/Search/LayerSearch.ts +++ b/src/Logic/Search/LayerSearch.ts @@ -1,4 +1,3 @@ -import Constants from "../../Models/Constants" import SearchUtils from "./SearchUtils" import ThemeSearch from "./ThemeSearch" import LayerConfig from "../../Models/ThemeConfig/LayerConfig" @@ -12,7 +11,9 @@ export default class LayerSearch { constructor(layout: LayoutConfig) { this._layout = layout - this._layerWhitelist = new Set(layout.layers.map(l => l.id).filter(id => Constants.added_by_default.indexOf(id) < 0)) + this._layerWhitelist = new Set(layout.layers + .filter(l => l.isNormal()) + .map(l => l.id)) } static scoreLayers(query: string, options: { diff --git a/src/Logic/Search/ThemeSearch.ts b/src/Logic/Search/ThemeSearch.ts index d392275532..30b4d25eb5 100644 --- a/src/Logic/Search/ThemeSearch.ts +++ b/src/Logic/Search/ThemeSearch.ts @@ -36,7 +36,7 @@ export default class ThemeSearch { private readonly _otherThemes: MinimalLayoutInformation[] constructor(state: {osmConnection: OsmConnection, layout: LayoutConfig}) { - this._layersToIgnore = state.layout.layers.map(l => l.id) + this._layersToIgnore = state.layout.layers.filter(l => l.isNormal()).map(l => l.id) this._knownHiddenThemes = UserRelatedState.initDiscoveredHiddenThemes(state.osmConnection).map(list => new Set(list)) this._otherThemes = ThemeSearch.officialThemes.themes .filter(th => th.id !== state.layout.id) From ba1eb28f274ac6cc6be4614456ca3d2137d9ba64 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 12:01:10 +0200 Subject: [PATCH 42/84] Fix: quickfixes to image upload flow --- src/Logic/ImageProviders/ImageUploadManager.ts | 3 +-- src/UI/Image/UploadImage.svelte | 15 +++++++++------ src/UI/SpecialVisualization.ts | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index c90e2ab072..0363f3b217 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -7,7 +7,6 @@ import { Store, UIEventSource } from "../UIEventSource" import { OsmConnection } from "../Osm/OsmConnection" import { Changes } from "../Osm/Changes" import Translations from "../../UI/i18n/Translations" -import NoteCommentElement from "../../UI/Popup/Notes/NoteCommentElement" import { Translation } from "../../UI/i18n/Translation" import { IndexedFeatureSource } from "../FeatureSource/FeatureSource" import { GeoOperations } from "../GeoOperations" @@ -136,7 +135,7 @@ export class ImageUploadManager { } public async uploadImageWithLicense( - featureId: OsmId, + featureId: string, author: string, blob: File, targetKey: string | undefined, diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte index 2b0f97c8ac..4495f025bd 100644 --- a/src/UI/Image/UploadImage.svelte +++ b/src/UI/Image/UploadImage.svelte @@ -5,7 +5,7 @@ import type { SpecialVisualizationState } from "../SpecialVisualization" import { ImmutableStore, UIEventSource } from "../../Logic/UIEventSource" - import type { OsmTags } from "../../Models/OsmFeature" + import type { OsmId, OsmTags } from "../../Models/OsmFeature" import LoginToggle from "../Base/LoginToggle.svelte" import Translations from "../i18n/Translations" import Tr from "../Base/Tr.svelte" @@ -47,22 +47,25 @@ continue } - if(layer.id === "note"){ - const uploadResult = await state?.imageUploadManager.uploadImageWithLicense(file, tags, targetKey) + if(layer?.id === "note"){ + const uploadResult = await state?.imageUploadManager.uploadImageWithLicense(tags.data.id, + state.osmConnection.userDetails.data?.name ?? "Anonymous", + file, "image") if(!uploadResult){ return } const url = uploadResult.absoluteUrl - await this._osmConnection.addCommentToNote(tags.data.id, url) + await state.osmConnection.addCommentToNote(tags.data.id, url) NoteCommentElement.addCommentTo(url, >tags, { - osmConnection: this._osmConnection, + osmConnection: state.osmConnection, }) return } await state?.imageUploadManager.uploadImageAndApply(file, tags, targetKey) } catch (e) { - alert(e) + console.error(e) + state.reportError(e, "Could not upload image") } } errors.setData(errs) diff --git a/src/UI/SpecialVisualization.ts b/src/UI/SpecialVisualization.ts index 37aa7229e5..a28689027a 100644 --- a/src/UI/SpecialVisualization.ts +++ b/src/UI/SpecialVisualization.ts @@ -88,7 +88,8 @@ export interface SpecialVisualizationState { readonly geocodedImages : UIEventSource showCurrentLocationOn(map: Store): ShowDataLayer - reportError(message: string): Promise + reportError(message: string | Error | XMLHttpRequest, extramessage?: string): Promise + } export interface SpecialVisualization { From feee0aee580eb05a8eb79ab8a974c2aaac86ec76 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 12:01:15 +0200 Subject: [PATCH 43/84] chore(release): 0.46.11 --- CHANGELOG.md | 14 ++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a319cdb35f..e5099f6d72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.46.11](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.10...v0.46.11) (2024-09-28) + + +### Features + +* check if the image was blurred, attempt to reload if it is done; refactoring of ImageProvider code ([4650170](https://github.com/USERNAME/REPOSITORY_NAME/commits4650170db4bdd3b9e4fbd1900147a7433652dd6f)) + + +### Bug Fixes + +* fix tests with some refactoring ([0b992e7](https://github.com/USERNAME/REPOSITORY_NAME/commits0b992e75a481ffa5156f68d9a9fa3495a1fec4c9)) +* note themes uses full URL now instead of Panoramax-id ([ce363df](https://github.com/USERNAME/REPOSITORY_NAME/commitsce363dfb59c3237e20aed87ab51da42b9652cb01)) +* quickfixes to image upload flow ([ba1eb28](https://github.com/USERNAME/REPOSITORY_NAME/commitsba1eb28f274ac6cc6be4614456ca3d2137d9ba64)) + ### [0.46.10](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.9...v0.46.10) (2024-09-26) diff --git a/package-lock.json b/package-lock.json index b98b93d1f6..62850a9678 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mapcomplete", - "version": "0.46.10", + "version": "0.46.11", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mapcomplete", - "version": "0.46.10", + "version": "0.46.11", "license": "GPL-3.0-or-later", "dependencies": { "@comunica/core": "^3.0.1", diff --git a/package.json b/package.json index 457371e9ef..451e730846 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapcomplete", - "version": "0.46.10", + "version": "0.46.11", "repository": "https://github.com/pietervdvn/MapComplete", "description": "A small website to edit OSM easily", "bugs": "https://github.com/pietervdvn/MapComplete/issues", From 89d31f54bcd9f7f2bf62a663d67aa5bf1308307a Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 12:24:03 +0200 Subject: [PATCH 44/84] Fix: add panoramax.xyz to CSP list --- scripts/generateLayouts.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/generateLayouts.ts b/scripts/generateLayouts.ts index 1297b0eef0..006cc6b7a8 100644 --- a/scripts/generateLayouts.ts +++ b/scripts/generateLayouts.ts @@ -332,6 +332,8 @@ class GenerateLayouts extends Script { "https://www.openstreetmap.org", "https://api.openstreetmap.org", "https://pietervdvn.goatcounter.com", + "https://api.panoramax.xyz", + "https://panoramax.mapcomplete.org" ].concat(...(await this.eliUrls())) SpecialVisualizations.specialVisualizations.forEach((sv) => { From 021e5f2734c46de3d51860f6c717b667dd8d1427 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 21:19:12 +0200 Subject: [PATCH 45/84] Fix: fix #2183 by updating wikidata-sdk to latest wikibase-sdk --- package-lock.json | 39 ++++++++++++++++++++++++++++++++------- package.json | 3 +-- scripts/fetchLanguages.ts | 13 ++++++------- src/Logic/Web/Wikidata.ts | 23 +++++++++++++++-------- 4 files changed, 54 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index e6f06be57d..8137640bdb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -79,8 +79,7 @@ "turndown": "^7.1.3", "vite-node": "^0.28.3", "vitest": "^0.28.3", - "wikibase-sdk": "^7.14.0", - "wikidata-sdk": "^7.14.0", + "wikibase-sdk": "^10.1.1", "xml2js": "^0.5.0" }, "devDependencies": { @@ -20745,15 +20744,19 @@ } }, "node_modules/wikibase-sdk": { - "version": "7.15.0", - "license": "MIT", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/wikibase-sdk/-/wikibase-sdk-10.1.1.tgz", + "integrity": "sha512-ePSfVhHeJ5ljAxde7O9ryzIBeNF54RB+LTn5naF+mUitDJeRkrgz2ZTxl89EMDzJeHUV4VnwVmLRWRcDqPA9Ng==", "engines": { - "node": ">= 6.4" + "node": ">= 12.0.0" } }, "node_modules/wikidata-sdk": { "version": "7.14.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wikidata-sdk/-/wikidata-sdk-7.14.4.tgz", + "integrity": "sha512-UAFBXWLxEWvB0Pn/c+ekc1voU8o0zR7T3kRt9xHLyfy2OiV7W1htk2iErwJdfisBPDb2a35HUgf2x1+ZAdrM8A==", + "deprecated": "wikidata-sdk has been renamed wikibase-sdk", + "dev": true, "dependencies": { "wikibase-sdk": "^7.14.4" }, @@ -20761,6 +20764,15 @@ "node": ">= 6.4" } }, + "node_modules/wikidata-sdk/node_modules/wikibase-sdk": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/wikibase-sdk/-/wikibase-sdk-7.15.0.tgz", + "integrity": "sha512-EZvOVz2Ezx1IsiSTlJ5XF1SLLudzWvtm7CV5DYKhO7CIX4EkB0Pc8seb8h6ZNEPRgYqnmrTx5aLsaIQW7GBe2w==", + "dev": true, + "engines": { + "node": ">= 6.4" + } + }, "node_modules/winston": { "version": "3.13.0", "license": "MIT", @@ -35251,12 +35263,25 @@ } }, "wikibase-sdk": { - "version": "7.15.0" + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/wikibase-sdk/-/wikibase-sdk-10.1.1.tgz", + "integrity": "sha512-ePSfVhHeJ5ljAxde7O9ryzIBeNF54RB+LTn5naF+mUitDJeRkrgz2ZTxl89EMDzJeHUV4VnwVmLRWRcDqPA9Ng==" }, "wikidata-sdk": { "version": "7.14.4", + "resolved": "https://registry.npmjs.org/wikidata-sdk/-/wikidata-sdk-7.14.4.tgz", + "integrity": "sha512-UAFBXWLxEWvB0Pn/c+ekc1voU8o0zR7T3kRt9xHLyfy2OiV7W1htk2iErwJdfisBPDb2a35HUgf2x1+ZAdrM8A==", + "dev": true, "requires": { "wikibase-sdk": "^7.14.4" + }, + "dependencies": { + "wikibase-sdk": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/wikibase-sdk/-/wikibase-sdk-7.15.0.tgz", + "integrity": "sha512-EZvOVz2Ezx1IsiSTlJ5XF1SLLudzWvtm7CV5DYKhO7CIX4EkB0Pc8seb8h6ZNEPRgYqnmrTx5aLsaIQW7GBe2w==", + "dev": true + } } }, "winston": { diff --git a/package.json b/package.json index 4d8e670ff7..404541dac4 100644 --- a/package.json +++ b/package.json @@ -224,8 +224,7 @@ "turndown": "^7.1.3", "vite-node": "^0.28.3", "vitest": "^0.28.3", - "wikibase-sdk": "^7.14.0", - "wikidata-sdk": "^7.14.0", + "wikibase-sdk": "^10.1.1", "xml2js": "^0.5.0" }, "devDependencies": { diff --git a/scripts/fetchLanguages.ts b/scripts/fetchLanguages.ts index 1ecf6eb5e7..25b51fa38c 100644 --- a/scripts/fetchLanguages.ts +++ b/scripts/fetchLanguages.ts @@ -3,7 +3,6 @@ * Some meta-info (e.g. RTL) is exported too */ -import * as wds from "wikidata-sdk" import { Utils } from "../src/Utils" import ScriptUtils from "./ScriptUtils" import { existsSync, readFileSync, writeFileSync } from "fs" @@ -44,10 +43,10 @@ async function fetchRegularLanguages() { " ?lang wdt:P424 ?code. \n" + // Wikimedia language code seems to be close to the weblate entries ' SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } \n' + "} " - const url = wds.sparqlQuery(sparql) + const url = Wikidata.wds.sparqlQuery(sparql) // request the generated URL with your favorite HTTP request library - const result = await Utils.downloadJson(url, { "User-Agent": "MapComplete script" }) + const result = await Utils.downloadJson<{results: {bindings: any[]}}>(url, { "User-Agent": "MapComplete script" }) const bindings = result.results.bindings // Traditional chinese = 繁體中文 or 正體中文 @@ -97,9 +96,9 @@ async function fetchSpecial(id: number, code: string): Promise(url, { "User-Agent": "MapComplete script" }) const bindings = result.results.bindings bindings.forEach((binding) => (binding["code"] = { value: code })) return bindings @@ -133,9 +132,9 @@ async function getOfficialLanguagesPerCountry(): Promise> ?language wdt:P218 ?languageCode. SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } }` - const url = wds.sparqlQuery(sparql) + const url = Wikidata.wds.sparqlQuery(sparql) - const result = await Utils.downloadJson(url, { "User-Agent": "MapComplete script" }) + const result = await Utils.downloadJson<{results: {bindings: any[]}}>(url, { "User-Agent": "MapComplete script" }) const bindings: { countryCode: { value: string }; languageCode: { value: string } }[] = result.results.bindings for (const binding of bindings) { diff --git a/src/Logic/Web/Wikidata.ts b/src/Logic/Web/Wikidata.ts index c3ff77f9a0..e4418515a1 100644 --- a/src/Logic/Web/Wikidata.ts +++ b/src/Logic/Web/Wikidata.ts @@ -1,6 +1,6 @@ import { Utils } from "../../Utils" import { Store, UIEventSource } from "../UIEventSource" -import * as wds from "wikidata-sdk" +import { WBK} from "wikibase-sdk" export class WikidataResponse { public readonly id: string @@ -54,7 +54,8 @@ export class WikidataResponse { } static extractClaims(claimsJson: any): Map> { - const simplified = wds.simplify.claims(claimsJson, { + // @ts-ignore + const simplified = Wikidata.wds.simplify.claims(claimsJson, { timeConverter: "simple-day", }) @@ -127,6 +128,12 @@ interface SparqlResult { * Utility functions around wikidata */ export default class Wikidata { + + public static wds = WBK({ + instance: "https://wikidata.org", + sparqlEndpoint: "https://query.wikidata.org/bigdata/namespace/wdq/sparql" + }) + public static readonly neededUrls = [ "https://www.wikidata.org/", "https://wikidata.org/", @@ -204,7 +211,7 @@ export default class Wikidata { ${instanceOf} ${minusPhrases.join("\n ")} } ORDER BY ASC(?num) LIMIT ${options?.maxCount ?? 20}` - const url = wds.sparqlQuery(sparql) + const url = Wikidata. wds.sparqlQuery(sparql) const result = await Utils.downloadJson(url) /*The full uri of the wikidata-item*/ @@ -245,9 +252,9 @@ export default class Wikidata { lang + "&type=item&origin=*" + "&props=" // props= removes some unused values in the result - const response = await Utils.downloadJsonCached(url, 10000) + const response = await Utils.downloadJsonCached<{search: any[]}>(url, 10000) - const result: any[] = response.search + const result = response.search if (result.length < pageCount) { // No next page @@ -375,7 +382,7 @@ export default class Wikidata { /** * Build a SPARQL-query, return the result * - * @param keys: how variables are named. Every key not ending with 'Label' should appear in at least one statement + * @param keys how variables are named. Every key not ending with 'Label' should appear in at least one statement * @param statements * @constructor */ @@ -392,9 +399,9 @@ export default class Wikidata { statements.map((stmt) => (stmt.endsWith(".") ? stmt : stmt + ".")).join("\n") + ' SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }\n' + "}" - const url = wds.sparqlQuery(query) + const url = Wikidata.wds.sparqlQuery(query) const result = await Utils.downloadJsonCached(url, 24 * 60 * 60 * 1000) - return result.results.bindings + return result.results.bindings } private static _cache = new Map>() From df9c44aaed7b2670134e8f9128343022e92c6e8d Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 28 Sep 2024 22:42:56 +0200 Subject: [PATCH 46/84] Fix: load external panoramax images --- package-lock.json | 14 +++++++------- package.json | 2 +- src/Logic/ImageProviders/Panoramax.ts | 16 ++++++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 62850a9678..244e83b8cd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", - "panoramax-js": "^0.1.4", + "panoramax-js": "^0.1.7", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pbf": "^3.2.1", @@ -15994,9 +15994,9 @@ "license": "MIT" }, "node_modules/panoramax-js": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.4.tgz", - "integrity": "sha512-X7plFMH1ndxiiyVFEluDloNiEBH0nEkurCPJ7zAInxbgv21pp/EGFwu3ynmF5ETyyXB9zu0n309juyjTdJ5pnQ==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.7.tgz", + "integrity": "sha512-G5m0cs+kODGyxmuLI06m+BcQecey2d6zhk+bajUMTkeXqvIIxP+CUS6NKnmN0WyIntd4q91gdGJeOR0Q2I/jeg==", "dependencies": { "@ogcapi-js/features": "^1.1.1", "@ogcapi-js/shared": "^1.1.1", @@ -32056,9 +32056,9 @@ "version": "1.0.0" }, "panoramax-js": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.4.tgz", - "integrity": "sha512-X7plFMH1ndxiiyVFEluDloNiEBH0nEkurCPJ7zAInxbgv21pp/EGFwu3ynmF5ETyyXB9zu0n309juyjTdJ5pnQ==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.7.tgz", + "integrity": "sha512-G5m0cs+kODGyxmuLI06m+BcQecey2d6zhk+bajUMTkeXqvIIxP+CUS6NKnmN0WyIntd4q91gdGJeOR0Q2I/jeg==", "requires": { "@ogcapi-js/features": "^1.1.1", "@ogcapi-js/shared": "^1.1.1", diff --git a/package.json b/package.json index 451e730846..8182bd57f3 100644 --- a/package.json +++ b/package.json @@ -205,7 +205,7 @@ "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", - "panoramax-js": "^0.1.4", + "panoramax-js": "^0.1.7", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pbf": "^3.2.1", diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts index eb73b9636c..9536facb69 100644 --- a/src/Logic/ImageProviders/Panoramax.ts +++ b/src/Logic/ImageProviders/Panoramax.ts @@ -1,10 +1,9 @@ import { ImageUploader } from "./ImageUploader" -import { AuthorizedPanoramax, PanoramaxXYZ, ImageData } from "panoramax-js/dist" +import { AuthorizedPanoramax, ImageData, Panoramax, PanoramaxXYZ } from "panoramax-js/dist" import ExifReader from "exifreader" import ImageProvider, { ProvidedImage } from "./ImageProvider" import BaseUIElement from "../../UI/BaseUIElement" import { LicenseInfo } from "./LicenseInfo" -import { Utils } from "../../Utils" import { GeoOperations } from "../GeoOperations" import Constants from "../../Models/Constants" import { Store, Stores, UIEventSource } from "../UIEventSource" @@ -87,9 +86,9 @@ export default class PanoramaxImageProvider extends ImageProvider { } const cached = PanoramaxImageProvider.knownMeta[id] if (cached) { - if(new Date().getTime() - cached.time.getTime() < 1000){ + if (new Date().getTime() - cached.time.getTime() < 1000) { - return { data: cached.data, url: undefined } + return { data: cached.data, url: undefined } } } try { @@ -100,13 +99,14 @@ export default class PanoramaxImageProvider extends ImageProvider { try { return await this.getInfoFromXYZ(id) } catch (e) { - console.debug(e) + console.debug(e) } return undefined } - - public async ExtractUrls(key: string, value: string): Promise { + if(!Panoramax.isId(value)){ + return undefined + } return [await this.getInfoFor(value).then(r => this.featureToImage(r))] } @@ -115,7 +115,7 @@ export default class PanoramaxImageProvider extends ImageProvider { const source = UIEventSource.FromPromise(super.getRelevantUrlsFor(tags, prefixes)) function hasLoading(data: ProvidedImage[]) { - if(data === undefined){ + if (data === undefined) { return true } return data?.some(img => img?.status !== undefined && img?.status !== "ready" && img?.status !== "broken") From 308d2ba4c62cc66d9c30cd1536549411c0abcb88 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sun, 29 Sep 2024 00:26:07 +0200 Subject: [PATCH 47/84] Themes(drinking water): fix #2184 --- .../layers/drinking_water/drinking_water.json | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/assets/layers/drinking_water/drinking_water.json b/assets/layers/drinking_water/drinking_water.json index fc0e740303..8a609eeb8b 100644 --- a/assets/layers/drinking_water/drinking_water.json +++ b/assets/layers/drinking_water/drinking_water.json @@ -160,9 +160,13 @@ }, "mappings": [ { - "if": "operational_status=", + "if": { + "and": [ + "operational_status=", + "disused:amenity=" + ] + }, "addExtraTags": [ - "disused:amenity=", "amenity=drinking_water" ], "then": { @@ -204,6 +208,15 @@ "ca": "Aquesta font d'aigua potable està tancada", "cs": "Tato pitná voda je uzavřena" } + }, + { + "if": "disused:amenity=drinking_water", + "addExtraTags": [ + "amenity=" + ], + "then": { + "en": "This drinking water is permanently closed" + } } ], "id": "Still in use?" From d079f8379b2c4203efe4e65e6234c73f08b9c46a Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sun, 29 Sep 2024 01:04:31 +0200 Subject: [PATCH 48/84] Chore: move code to external package --- package-lock.json | 20 +- package.json | 2 +- src/Logic/FeatureSource/Sources/MvtSource.ts | 405 +------------------ 3 files changed, 24 insertions(+), 403 deletions(-) diff --git a/package-lock.json b/package-lock.json index 244e83b8cd..cea1831a32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,6 +58,7 @@ "maplibre-gl": "^4.1.1", "marked": "^12.0.2", "monaco-editor": "^0.46.0", + "mvt-to-geojson": "^0.0.2", "name-suggestion-index": "^6.0.20240422", "npm": "^10.7.0", "opening_hours": "^3.6.0", @@ -66,7 +67,6 @@ "panoramax-js": "^0.1.7", "panzoom": "^9.4.3", "papaparse": "^5.3.1", - "pbf": "^3.2.1", "pg": "^8.11.3", "pic4carto": "^2.1.15", "pmtiles": "^3.0.5", @@ -13145,6 +13145,15 @@ "version": "1.0.0", "license": "MIT" }, + "node_modules/mvt-to-geojson": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.2.tgz", + "integrity": "sha512-DLi1Hgowqy6ygOUIuOhtI5RLdph9VpQSP6Ct3qbOY/y0dSTBjTvpIXgbK3J0XSO9feBRrhjcQAMkzOVD/KkuDA==", + "dependencies": { + "@types/geojson": "^7946.0.14", + "pbf": "^3.2.1" + } + }, "node_modules/n3": { "version": "1.17.3", "license": "MIT", @@ -30231,6 +30240,15 @@ "murmurhash-js": { "version": "1.0.0" }, + "mvt-to-geojson": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.2.tgz", + "integrity": "sha512-DLi1Hgowqy6ygOUIuOhtI5RLdph9VpQSP6Ct3qbOY/y0dSTBjTvpIXgbK3J0XSO9feBRrhjcQAMkzOVD/KkuDA==", + "requires": { + "@types/geojson": "^7946.0.14", + "pbf": "^3.2.1" + } + }, "n3": { "version": "1.17.3", "requires": { diff --git a/package.json b/package.json index 8182bd57f3..2f161e592b 100644 --- a/package.json +++ b/package.json @@ -200,6 +200,7 @@ "maplibre-gl": "^4.1.1", "marked": "^12.0.2", "monaco-editor": "^0.46.0", + "mvt-to-geojson": "^0.0.2", "name-suggestion-index": "^6.0.20240422", "npm": "^10.7.0", "opening_hours": "^3.6.0", @@ -208,7 +209,6 @@ "panoramax-js": "^0.1.7", "panzoom": "^9.4.3", "papaparse": "^5.3.1", - "pbf": "^3.2.1", "pg": "^8.11.3", "pic4carto": "^2.1.15", "pmtiles": "^3.0.5", diff --git a/src/Logic/FeatureSource/Sources/MvtSource.ts b/src/Logic/FeatureSource/Sources/MvtSource.ts index 1605ba177e..b655950160 100644 --- a/src/Logic/FeatureSource/Sources/MvtSource.ts +++ b/src/Logic/FeatureSource/Sources/MvtSource.ts @@ -2,332 +2,8 @@ import { Feature as GeojsonFeature, Geometry } from "geojson" import { Store, UIEventSource } from "../../UIEventSource" import { FeatureSourceForTile, UpdatableFeatureSource } from "../FeatureSource" -import Pbf from "pbf" +import { MvtToGeojson } from "mvt-to-geojson" -type Coords = [number, number][] - -class MvtFeatureBuilder { - private static readonly geom_types = ["Unknown", "Point", "LineString", "Polygon"] as const - private readonly _size: number - private readonly _x0: number - private readonly _y0: number - - constructor(extent: number, x: number, y: number, z: number) { - this._size = extent * Math.pow(2, z) - this._x0 = extent * x - this._y0 = extent * y - } - - private static signedArea(ring: Coords): number { - let sum = 0 - const len = ring.length - // J is basically (i - 1) % len - let j = len - 1 - let p1 - let p2 - for (let i = 0; i < len; i++) { - p1 = ring[i] - p2 = ring[j] - sum += (p2.x - p1.x) * (p1.y + p2.y) - j = i - } - return sum - } - - /** - * - * const rings = [ [ [ 3.208361864089966, 51.186908820014736 ], [ 3.2084155082702637, 51.18689537073311 ], [ 3.208436965942383, 51.186888646090836 ], [ 3.2084155082702637, 51.18686174751187 ], [ 3.2084155082702637, 51.18685502286465 ], [ 3.2083725929260254, 51.18686847215807 ], [ 3.2083404064178467, 51.18687519680333 ], [ 3.208361864089966, 51.186908820014736 ] ] ] - * MvtFeatureBuilder.classifyRings(rings) // => [rings] - */ - private static classifyRings(rings: Coords[]): Coords[][] { - if (rings.length <= 0) { - throw "Now rings in polygon found" - } - if (rings.length == 1) { - return [rings] - } - - const polygons: Coords[][] = [] - let currentPolygon: Coords[] - - for (let i = 0; i < rings.length; i++) { - let ring = rings[i] - const area = this.signedArea(ring) - if (area === 0) { - // Weird, degenerate ring - continue - } - const ccw = area < 0 - - if (ccw === area < 0) { - if (currentPolygon) { - polygons.push(currentPolygon) - } - currentPolygon = [ring] - } else { - currentPolygon.push(ring) - } - } - if (currentPolygon) { - polygons.push(currentPolygon) - } - - return polygons - } - - public toGeoJson(geometry: number[], typeIndex: 1 | 2 | 3, properties: any): GeojsonFeature { - let coords: Coords[] = this.encodeGeometry(geometry) - let classified = undefined - switch (typeIndex) { - case 1: - const points = [] - for (let i = 0; i < coords.length; i++) { - points[i] = coords[i][0] - } - coords = points - this.project(coords) - break - - case 2: - for (let i = 0; i < coords.length; i++) { - this.project(coords[i]) - } - break - - case 3: - classified = MvtFeatureBuilder.classifyRings(coords) - for (let i = 0; i < classified.length; i++) { - for (let j = 0; j < classified[i].length; j++) { - this.project(classified[i][j]) - } - } - break - } - - let type: string = MvtFeatureBuilder.geom_types[typeIndex] - let polygonCoords: Coords | Coords[] | Coords[][] - if (coords.length === 1) { - polygonCoords = (classified ?? coords)[0] - } else { - polygonCoords = classified ?? coords - type = "Multi" + type - } - - return { - type: "Feature", - geometry: { - type: type, - coordinates: polygonCoords, - }, - properties, - } - } - - /** - * - * const geometry = [9,233,8704,130,438,1455,270,653,248,423,368,493,362,381,330,267,408,301,406,221,402,157,1078,429,1002,449,1036,577,800,545,1586,1165,164,79,40] - * const builder = new MvtFeatureBuilder(4096, 66705, 43755, 17) - * const expected = [[3.2106759399175644,51.213658395282124],[3.2108227908611298,51.21396418776169],[3.2109133154153824,51.21410154168976],[3.210996463894844,51.214190590500664],[3.211119845509529,51.214294340548975],[3.211241215467453,51.2143745681588],[3.2113518565893173,51.21443085341426],[3.211488649249077,51.21449427925393],[3.2116247713565826,51.214540903490956],[3.211759552359581,51.21457408647774],[3.2121209800243378,51.214664394485254],[3.212456926703453,51.21475890267553],[3.2128042727708817,51.214880292910834],[3.213072493672371,51.214994962285544],[3.2136042416095734,51.21523984134939],[3.2136592268943787,51.21525664260963],[3.213672637939453,51.21525664260963]] - * builder.project(builder.encodeGeometry(geometry)[0]) // => expected - * @param geometry - * @private - */ - private encodeGeometry(geometry: number[]): Coords[] { - let cX = 0 - let cY = 0 - const coordss: Coords[] = [] - let currentRing: Coords = [] - for (let i = 0; i < geometry.length; i++) { - const commandInteger = geometry[i] - const commandId = commandInteger & 0x7 - const commandCount = commandInteger >> 3 - /* - Command Id Parameters Parameter Count - MoveTo 1 dX, dY 2 - LineTo 2 dX, dY 2 - ClosePath 7 No parameters 0 - */ - if (commandId === 1) { - // MoveTo means: we start a new ring - if (currentRing.length !== 0) { - coordss.push(currentRing) - currentRing = [] - } - } - if (commandId === 1 || commandId === 2) { - for (let j = 0; j < commandCount; j++) { - const dx = geometry[i + j * 2 + 1] - cX += (dx >> 1) ^ -(dx & 1) - const dy = geometry[i + j * 2 + 2] - cY += (dy >> 1) ^ -(dy & 1) - currentRing.push([cX, cY]) - } - i += commandCount * 2 - } - if (commandId === 7) { - if (currentRing.length === 0) { - console.error( - "Invalid MVT file: got a 'closePath', but the currentRing is empty. Full command:", - commandInteger - ) - } else { - currentRing.push([...currentRing[0]]) - } - i++ - } - } - if (currentRing.length > 0) { - coordss.push(currentRing) - } - return coordss - } - - /** - * Inline replacement of the location by projecting - * @param line the line which will be rewritten inline - * @return line - */ - private project(line: Coords) { - const y0 = this._y0 - const x0 = this._x0 - const size = this._size - for (let i = 0; i < line.length; i++) { - let p = line[i] - let y2 = 180 - ((p[1] + y0) * 360) / size - line[i] = [ - ((p[0] + x0) * 360) / size - 180, - (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90, - ] - } - return line - } -} - -class Layer { - public static read(pbf, end) { - return pbf.readFields( - Layer._readField, - { version: 0, name: "", features: [], keys: [], values: [], extent: 0 }, - end - ) - } - - static _readField(tag, obj, pbf) { - if (tag === 15) obj.version = pbf.readVarint() - else if (tag === 1) obj.name = pbf.readString() - else if (tag === 2) obj.features.push(Feature.read(pbf, pbf.readVarint() + pbf.pos)) - else if (tag === 3) obj.keys.push(pbf.readString()) - else if (tag === 4) obj.values.push(Value.read(pbf, pbf.readVarint() + pbf.pos)) - else if (tag === 5) obj.extent = pbf.readVarint() - } - - public static write(obj, pbf) { - if (obj.version) pbf.writeVarintField(15, obj.version) - if (obj.name) pbf.writeStringField(1, obj.name) - if (obj.features) - for (var i = 0; i < obj.features.length; i++) - pbf.writeMessage(2, Feature.write, obj.features[i]) - if (obj.keys) for (i = 0; i < obj.keys.length; i++) pbf.writeStringField(3, obj.keys[i]) - if (obj.values) - for (i = 0; i < obj.values.length; i++) pbf.writeMessage(4, Value.write, obj.values[i]) - if (obj.extent) pbf.writeVarintField(5, obj.extent) - } -} - -class Feature { - static read(pbf, end) { - return pbf.readFields(Feature._readField, { id: 0, tags: [], type: 0, geometry: [] }, end) - } - - static _readField(tag, obj, pbf) { - if (tag === 1) obj.id = pbf.readVarint() - else if (tag === 2) pbf.readPackedVarint(obj.tags) - else if (tag === 3) obj.type = pbf.readVarint() - else if (tag === 4) pbf.readPackedVarint(obj.geometry) - } - - public static write(obj, pbf) { - if (obj.id) pbf.writeVarintField(1, obj.id) - if (obj.tags) pbf.writePackedVarint(2, obj.tags) - if (obj.type) pbf.writeVarintField(3, obj.type) - if (obj.geometry) pbf.writePackedVarint(4, obj.geometry) - } -} - -class Value { - public static read(pbf, end) { - return pbf.readFields( - Value._readField, - { - string_value: "", - float_value: 0, - double_value: 0, - int_value: 0, - uint_value: 0, - sint_value: 0, - bool_value: false, - }, - end - ) - } - - static _readField = function (tag, obj, pbf) { - if (tag === 1) obj.string_value = pbf.readString() - else if (tag === 2) obj.float_value = pbf.readFloat() - else if (tag === 3) obj.double_value = pbf.readDouble() - else if (tag === 4) obj.int_value = pbf.readVarint(true) - else if (tag === 5) obj.uint_value = pbf.readVarint() - else if (tag === 6) obj.sint_value = pbf.readSVarint() - else if (tag === 7) obj.bool_value = pbf.readBoolean() - } - - public static write(obj, pbf) { - if (obj.string_value) pbf.writeStringField(1, obj.string_value) - if (obj.float_value) pbf.writeFloatField(2, obj.float_value) - if (obj.double_value) pbf.writeDoubleField(3, obj.double_value) - if (obj.int_value) pbf.writeVarintField(4, obj.int_value) - if (obj.uint_value) pbf.writeVarintField(5, obj.uint_value) - if (obj.sint_value) pbf.writeSVarintField(6, obj.sint_value) - if (obj.bool_value) pbf.writeBooleanField(7, obj.bool_value) - } -} - -class Tile { - // code generated by pbf v3.2.1 - - static GeomType = { - UNKNOWN: { - value: 0, - options: {}, - }, - POINT: { - value: 1, - options: {}, - }, - LINESTRING: { - value: 2, - options: {}, - }, - POLYGON: { - value: 3, - options: {}, - }, - } - - public static read(pbf, end) { - return pbf.readFields(Tile._readField, { layers: [] }, end) - } - - static _readField(tag, obj, pbf) { - if (tag === 3) obj.layers.push(Layer.read(pbf, pbf.readVarint() + pbf.pos)) - } - - static write(obj, pbf) { - if (obj.layers) - for (var i = 0; i < obj.layers.length; i++) - pbf.writeMessage(3, Layer.write, obj.layers[i]) - } -} export default class MvtSource implements FeatureSourceForTile, UpdatableFeatureSource { public readonly features: Store[]> @@ -352,7 +28,7 @@ export default class MvtSource implements FeatureSourceForTile, UpdatableFeature y: number, z: number, layerName?: string, - isActive?: Store + isActive?: Store, ) { this._url = url this._layerName = layerName @@ -367,7 +43,7 @@ export default class MvtSource implements FeatureSourceForTile, UpdatableFeature } return fs }, - [isActive] + [isActive], ) } @@ -378,39 +54,6 @@ export default class MvtSource implements FeatureSourceForTile, UpdatableFeature await this.currentlyRunning } - private getValue(v: { - // Exactly one of these values must be present in a valid message - string_value?: string - float_value?: number - double_value?: number - int_value?: number - uint_value?: number - sint_value?: number - bool_value?: boolean - }): string | number | undefined | boolean { - if (v.string_value !== "") { - return v.string_value - } - if (v.double_value !== 0) { - return v.double_value - } - if (v.float_value !== 0) { - return v.float_value - } - if (v.int_value !== 0) { - return v.int_value - } - if (v.uint_value !== 0) { - return v.uint_value - } - if (v.sint_value !== 0) { - return v.sint_value - } - if (v.bool_value !== false) { - return v.bool_value - } - return undefined - } private async download(): Promise { try { @@ -420,52 +63,12 @@ export default class MvtSource implements FeatureSourceForTile, UpdatableFeature return } const buffer = await result.arrayBuffer() - const data = Tile.read(new Pbf(buffer), undefined) - const layers = data.layers - let layer = data.layers[0] - if (layers.length > 1) { - if (!this._layerName) { - throw "Multiple layers in the downloaded tile, but no layername is given to choose from" - } - layer = layers.find((l) => l.name === this._layerName) - } - if (!layer) { - return - } - const builder = new MvtFeatureBuilder(layer.extent, this.x, this.y, this.z) - const features: GeojsonFeature[] = [] - - for (const feature of layer.features) { - const properties = this.inflateProperties(feature.tags, layer.keys, layer.values) - features.push(builder.toGeoJson(feature.geometry, feature.type, properties)) - } + const features = await MvtToGeojson.fromBuffer(buffer, this.x, this.y, this.z) this._features.setData(features) } catch (e) { console.error("Could not download MVT " + this._url + " tile due to", e) } } - private inflateProperties(tags: number[], keys: string[], values: { string_value: string }[]) { - const properties = {} - for (let i = 0; i < tags.length; i += 2) { - properties[keys[tags[i]]] = this.getValue(values[tags[i + 1]]) - } - let type: string - switch (properties["osm_type"]) { - case "N": - type = "node" - break - case "W": - type = "way" - break - case "R": - type = "relation" - break - } - properties["id"] = type + "/" + properties["osm_id"] - delete properties["osm_id"] - delete properties["osm_type"] - return properties - } } From 5fd1d75efb0fbd49cac3eb5f7a37104887f92f10 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 01:08:07 +0200 Subject: [PATCH 49/84] Feat: more integrations of panoramax: add panoramax to nearby images view, add to drawer, add icon, see #1451 --- assets/svg/license_info.json | 20 ++ assets/svg/panoramax.svg | 187 ++++++++++++++++ assets/svg/panoramax.svg.license | 2 + assets/svg/panoramax_bw.svg | 217 +++++++++++++++++++ assets/svg/panoramax_bw.svg.license | 2 + langs/en.json | 2 + langs/layers/en.json | 3 + package-lock.json | 28 +-- package.json | 4 +- src/Logic/BBox.ts | 7 + src/Logic/FeatureSource/Sources/MvtSource.ts | 23 +- src/Logic/GeoOperations.ts | 7 + src/Logic/ImageProviders/ImageProvider.ts | 5 +- src/Logic/ImageProviders/Mapillary.ts | 3 +- src/Logic/ImageProviders/Panoramax.ts | 21 +- src/Logic/Web/NearbyImagesSearch.ts | 62 +++++- src/UI/BigComponents/MenuDrawer.svelte | 2 + src/UI/BigComponents/PanoramaxLink.svelte | 40 ++++ src/UI/Image/ImageAttribution.svelte | 2 +- src/UI/Image/NearbyImages.svelte | 2 +- src/Utils.ts | 1 - src/assets/svg/Circle.svelte | 2 +- src/assets/svg/Panoramax.svelte | 4 + src/assets/svg/Panoramax_bw.svelte | 4 + 24 files changed, 617 insertions(+), 33 deletions(-) create mode 100644 assets/svg/panoramax.svg create mode 100644 assets/svg/panoramax.svg.license create mode 100644 assets/svg/panoramax_bw.svg create mode 100644 assets/svg/panoramax_bw.svg.license create mode 100644 src/UI/BigComponents/PanoramaxLink.svelte create mode 100644 src/assets/svg/Panoramax.svelte create mode 100644 src/assets/svg/Panoramax_bw.svelte diff --git a/assets/svg/license_info.json b/assets/svg/license_info.json index 9a67141900..8543720f27 100644 --- a/assets/svg/license_info.json +++ b/assets/svg/license_info.json @@ -877,6 +877,26 @@ "https://www.OpenStreetMap.org" ] }, + { + "path": "panoramax.svg", + "license": "LOGO", + "authors": [ + "Panoramax" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Panoramax.svg" + ] + }, + { + "path": "panoramax_bw.svg", + "license": "LOGO", + "authors": [ + "Panoramax" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Panoramax.svg" + ] + }, { "path": "party.svg", "license": "CC-BY-4.0", diff --git a/assets/svg/panoramax.svg b/assets/svg/panoramax.svg new file mode 100644 index 0000000000..ed1746c881 --- /dev/null +++ b/assets/svg/panoramax.svg @@ -0,0 +1,187 @@ + + + +image/svg+xml diff --git a/assets/svg/panoramax.svg.license b/assets/svg/panoramax.svg.license new file mode 100644 index 0000000000..f0263b4cbe --- /dev/null +++ b/assets/svg/panoramax.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Panoramax +SPDX-License-Identifier: LicenseRef-LOGO \ No newline at end of file diff --git a/assets/svg/panoramax_bw.svg b/assets/svg/panoramax_bw.svg new file mode 100644 index 0000000000..e50264ff39 --- /dev/null +++ b/assets/svg/panoramax_bw.svg @@ -0,0 +1,217 @@ + + + +image/svg+xml + + + + + + diff --git a/assets/svg/panoramax_bw.svg.license b/assets/svg/panoramax_bw.svg.license new file mode 100644 index 0000000000..f0263b4cbe --- /dev/null +++ b/assets/svg/panoramax_bw.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Panoramax +SPDX-License-Identifier: LicenseRef-LOGO \ No newline at end of file diff --git a/langs/en.json b/langs/en.json index 300dca8a21..7e5907479c 100644 --- a/langs/en.json +++ b/langs/en.json @@ -202,7 +202,9 @@ "openMapillary": "Open Mapillary here", "openOsmcha": "See latest edits made with {theme}", "openOsmchaLastWeek": "See edits from the last 7 days", + "openPanoramax": "Open Panoramax here", "openThemeDocumentation": "Open the documentation for thematic map {name}", + "panoramaxHelp": "Panoramax is an online service which gathers street-level pictures and offers them under a free license. Contributors are allowed to use these pictures to improve OpenStreetMap", "seeOnMapillary": "See this image on Mapillary", "themeBy": "Theme maintained by {author}", "title": "Copyright and attribution", diff --git a/langs/layers/en.json b/langs/layers/en.json index 9158b0c40c..60daa81133 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -4142,6 +4142,9 @@ }, "2": { "then": "This drinking water is closed" + }, + "3": { + "then": "This drinking water is permanently closed" } }, "question": "Is this drinking water spot still operational?", diff --git a/package-lock.json b/package-lock.json index cea1831a32..ef5e1ba5d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,13 +58,13 @@ "maplibre-gl": "^4.1.1", "marked": "^12.0.2", "monaco-editor": "^0.46.0", - "mvt-to-geojson": "^0.0.2", + "mvt-to-geojson": "^0.0.5", "name-suggestion-index": "^6.0.20240422", "npm": "^10.7.0", "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", - "panoramax-js": "^0.1.7", + "panoramax-js": "^0.3.6", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pg": "^8.11.3", @@ -13146,9 +13146,9 @@ "license": "MIT" }, "node_modules/mvt-to-geojson": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.2.tgz", - "integrity": "sha512-DLi1Hgowqy6ygOUIuOhtI5RLdph9VpQSP6Ct3qbOY/y0dSTBjTvpIXgbK3J0XSO9feBRrhjcQAMkzOVD/KkuDA==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.5.tgz", + "integrity": "sha512-IG4bJJP9nxY/9LenWBY0yi5SEv9a1G06trP5b4Tg01LCrzB32US/FO9bygJr7c+ZVbt175AzBwJiiawaxfLTbA==", "dependencies": { "@types/geojson": "^7946.0.14", "pbf": "^3.2.1" @@ -16003,9 +16003,9 @@ "license": "MIT" }, "node_modules/panoramax-js": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.7.tgz", - "integrity": "sha512-G5m0cs+kODGyxmuLI06m+BcQecey2d6zhk+bajUMTkeXqvIIxP+CUS6NKnmN0WyIntd4q91gdGJeOR0Q2I/jeg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.3.6.tgz", + "integrity": "sha512-CRdXwh91H6chd1PYptG070ukx+S6IkVaUeQVG91ySevoJoCYOuBT65qkMhRo49X2um1nGcs9UqolW90R57875g==", "dependencies": { "@ogcapi-js/features": "^1.1.1", "@ogcapi-js/shared": "^1.1.1", @@ -30241,9 +30241,9 @@ "version": "1.0.0" }, "mvt-to-geojson": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.2.tgz", - "integrity": "sha512-DLi1Hgowqy6ygOUIuOhtI5RLdph9VpQSP6Ct3qbOY/y0dSTBjTvpIXgbK3J0XSO9feBRrhjcQAMkzOVD/KkuDA==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.5.tgz", + "integrity": "sha512-IG4bJJP9nxY/9LenWBY0yi5SEv9a1G06trP5b4Tg01LCrzB32US/FO9bygJr7c+ZVbt175AzBwJiiawaxfLTbA==", "requires": { "@types/geojson": "^7946.0.14", "pbf": "^3.2.1" @@ -32074,9 +32074,9 @@ "version": "1.0.0" }, "panoramax-js": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.7.tgz", - "integrity": "sha512-G5m0cs+kODGyxmuLI06m+BcQecey2d6zhk+bajUMTkeXqvIIxP+CUS6NKnmN0WyIntd4q91gdGJeOR0Q2I/jeg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.3.6.tgz", + "integrity": "sha512-CRdXwh91H6chd1PYptG070ukx+S6IkVaUeQVG91ySevoJoCYOuBT65qkMhRo49X2um1nGcs9UqolW90R57875g==", "requires": { "@ogcapi-js/features": "^1.1.1", "@ogcapi-js/shared": "^1.1.1", diff --git a/package.json b/package.json index 2f161e592b..7137590a05 100644 --- a/package.json +++ b/package.json @@ -200,13 +200,13 @@ "maplibre-gl": "^4.1.1", "marked": "^12.0.2", "monaco-editor": "^0.46.0", - "mvt-to-geojson": "^0.0.2", + "mvt-to-geojson": "^0.0.5", "name-suggestion-index": "^6.0.20240422", "npm": "^10.7.0", "opening_hours": "^3.6.0", "osm-auth": "^2.5.0", "osmtogeojson": "^3.0.0-beta.5", - "panoramax-js": "^0.1.7", + "panoramax-js": "^0.3.6", "panzoom": "^9.4.3", "papaparse": "^5.3.1", "pg": "^8.11.3", diff --git a/src/Logic/BBox.ts b/src/Logic/BBox.ts index b54928418d..5f98cb726c 100644 --- a/src/Logic/BBox.ts +++ b/src/Logic/BBox.ts @@ -249,6 +249,13 @@ export class BBox { ] } + toLngLatFlat(): [number, number, number, number] { + return [ + this.minLon, this.minLat, + this.maxLon, this.maxLat, + ] + } + public asGeojsonCached() { if (this["geojsonCache"] === undefined) { this["geojsonCache"] = this.asGeoJson({}) diff --git a/src/Logic/FeatureSource/Sources/MvtSource.ts b/src/Logic/FeatureSource/Sources/MvtSource.ts index b655950160..6342fea90c 100644 --- a/src/Logic/FeatureSource/Sources/MvtSource.ts +++ b/src/Logic/FeatureSource/Sources/MvtSource.ts @@ -63,7 +63,28 @@ export default class MvtSource implements FeatureSourceForTile, UpdatableFeature return } const buffer = await result.arrayBuffer() - const features = await MvtToGeojson.fromBuffer(buffer, this.x, this.y, this.z) + const features = MvtToGeojson.fromBuffer(buffer, this.x, this.y, this.z) + for (const feature of features) { + const properties = feature.properties + if(!properties["osm_type"]){ + continue + } + let type: string = "node" + switch (properties["osm_type"]) { + case "N": + type = "node" + break + case "W": + type = "way" + break + case "R": + type = "relation" + break + } + properties["id"] = type + "/" + properties["osm_id"] + delete properties["osm_id"] + delete properties["osm_type"] + } this._features.setData(features) } catch (e) { console.error("Could not download MVT " + this._url + " tile due to", e) diff --git a/src/Logic/GeoOperations.ts b/src/Logic/GeoOperations.ts index 7c3dabb6ce..ab37951820 100644 --- a/src/Logic/GeoOperations.ts +++ b/src/Logic/GeoOperations.ts @@ -92,6 +92,13 @@ export class GeoOperations { return turf.distance(lonlat0, lonlat1, { units: "meters" }) } + /** + * Starting on `from`, travels `distance` meters in the direction of the `bearing` (default: 90) + */ + static destination(from: Coord | [number,number],distance: number, bearing: number = 90): [number,number]{ + return <[number,number]> turf.destination(from, distance, bearing, {units: "meters"}).geometry.coordinates + } + static convexHull(featureCollection, options: { concavity?: number }) { return turf.convex(featureCollection, options) } diff --git a/src/Logic/ImageProviders/ImageProvider.ts b/src/Logic/ImageProviders/ImageProvider.ts index 50878a94a7..4588297c83 100644 --- a/src/Logic/ImageProviders/ImageProvider.ts +++ b/src/Logic/ImageProviders/ImageProvider.ts @@ -17,7 +17,8 @@ export interface ProvidedImage { */ rotation?: number lat?: number, - lon?: number + lon?: number, + host?: string } export default abstract class ImageProvider { @@ -25,7 +26,7 @@ export default abstract class ImageProvider { public abstract readonly name: string - public abstract SourceIcon(id?: string, location?: { lon: number; lat: number }): BaseUIElement + public abstract SourceIcon(img?: {id: string, url: string, host?: string}, location?: { lon: number; lat: number }): BaseUIElement /** diff --git a/src/Logic/ImageProviders/Mapillary.ts b/src/Logic/ImageProviders/Mapillary.ts index 5a26e31c26..2cc370f32b 100644 --- a/src/Logic/ImageProviders/Mapillary.ts +++ b/src/Logic/ImageProviders/Mapillary.ts @@ -118,13 +118,14 @@ export class Mapillary extends ImageProvider { } SourceIcon( - id: string, + img: {id: string, url: string}, location?: { lon: number lat: number } ): BaseUIElement { let url: string = undefined + const id = img.id if (id) { url = Mapillary.createLink(location, 16, "" + id) } diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts index 9536facb69..0fc4da4256 100644 --- a/src/Logic/ImageProviders/Panoramax.ts +++ b/src/Logic/ImageProviders/Panoramax.ts @@ -7,6 +7,9 @@ import { LicenseInfo } from "./LicenseInfo" import { GeoOperations } from "../GeoOperations" import Constants from "../../Models/Constants" import { Store, Stores, UIEventSource } from "../UIEventSource" +import SvelteUIElement from "../../UI/Base/SvelteUIElement" +import Panoramax_bw from "../../assets/svg/Panoramax_bw.svelte" +import Link from "../../UI/Base/Link" export default class PanoramaxImageProvider extends ImageProvider { @@ -14,13 +17,18 @@ export default class PanoramaxImageProvider extends ImageProvider { public static readonly singleton = new PanoramaxImageProvider() private static readonly xyz = new PanoramaxXYZ() private static defaultPanoramax = new AuthorizedPanoramax(Constants.panoramax.url, Constants.panoramax.token) + public defaultKeyPrefixes: string[] = ["panoramax"] public readonly name: string = "panoramax" private static knownMeta: Record = {} - public SourceIcon(id?: string, location?: { lon: number; lat: number; }): BaseUIElement { - return undefined + public SourceIcon(img?: { id: string, url: string, host?: string }, location?: { lon: number; lat: number; }): BaseUIElement { + const p = new Panoramax(img.host) + return new Link(new SvelteUIElement(Panoramax_bw), p.createViewLink({ + imageId: img?.id, + location + }), true) } public addKnownMeta(meta: ImageData) { @@ -35,7 +43,7 @@ export default class PanoramaxImageProvider extends ImageProvider { private async getInfoFromMapComplete(id: string): Promise<{ data: ImageData, url: string }> { const sequence = "6e702976-580b-419c-8fb3-cf7bd364e6f8" // We always reuse this sequence const url = `https://panoramax.mapcomplete.org/` - const data = await PanoramaxImageProvider.defaultPanoramax.imageInfo(sequence, id) + const data = await PanoramaxImageProvider.defaultPanoramax.imageInfo(id, sequence) return { url, data } } @@ -67,10 +75,14 @@ export default class PanoramaxImageProvider extends ImageProvider { } const [lon, lat] = GeoOperations.centerpointCoordinates(meta) + const hd = meta.properties + console.log(">>>",meta) + // const hdUrl = new URL(hd) return { id: meta.id, url: makeAbsolute(meta.assets.sd.href), url_hd: makeAbsolute(meta.assets.hd.href), + host: meta["links"].find(l => l.rel === "root")?.href, lon, lat, key: "panoramax", provider: this, @@ -103,8 +115,9 @@ export default class PanoramaxImageProvider extends ImageProvider { } return undefined } + public async ExtractUrls(key: string, value: string): Promise { - if(!Panoramax.isId(value)){ + if (!Panoramax.isId(value)) { return undefined } return [await this.getInfoFor(value).then(r => this.featureToImage(r))] diff --git a/src/Logic/Web/NearbyImagesSearch.ts b/src/Logic/Web/NearbyImagesSearch.ts index 49853485d5..bf9f571f49 100644 --- a/src/Logic/Web/NearbyImagesSearch.ts +++ b/src/Logic/Web/NearbyImagesSearch.ts @@ -10,6 +10,7 @@ import { Point } from "geojson" import MvtSource from "../FeatureSource/Sources/MvtSource" import AllImageProviders from "../ImageProviders/AllImageProviders" import { Imgur } from "../ImageProviders/Imgur" +import { Panoramax, PanoramaxXYZ } from "panoramax-js/dist" interface ImageFetcher { /** @@ -102,7 +103,7 @@ class P4CImageFetcher implements ImageFetcher { { mindate: new Date().getTime() - maxAgeSeconds, towardscenter: false, - } + }, ) } catch (e) { console.log("P4C image fetcher failed with", e) @@ -163,6 +164,55 @@ class ImagesInLoadedDataFetcher implements ImageFetcher { } } +class ImagesFromPanoramaxFetcher implements ImageFetcher { + private readonly _radius: number + private readonly _panoramax: Panoramax + name: string = "panoramax" + + constructor(url?: string, radius: number = 100) { + this._radius = radius + if (url) { + + this._panoramax = new Panoramax(url) + } else { + this._panoramax = new PanoramaxXYZ() + } + } + + + public async fetchImages(lat: number, lon: number): Promise { + + const bboxObj = new BBox([ + GeoOperations.destination([lon, lat], this._radius * Math.sqrt(2), -45), + GeoOperations.destination([lon, lat], this._radius * Math.sqrt(2), 135), + ]) + const bbox: [number, number, number, number] = bboxObj.toLngLatFlat() + const images = await this._panoramax.search({ bbox, limit: 1000 }) + + return images.map(i => { + const [lng, lat] = i.geometry.coordinates + return ({ + pictureUrl: i.assets.sd.href, + coordinates: { lng, lat }, + + provider: "panoramax", + direction: i.properties["view:azimuth"], + osmTags: { + "panoramax": i.id, + }, + thumbUrl: i.assets.thumb.href, + date: new Date(i.properties.datetime).getTime(), + license: i.properties["geovisio:license"], + author: i.providers.at(-1).name, + detailsUrl: i.id, + details: { + isSpherical: i.properties["exif"]["Xmp.GPano.ProjectionType"] === "equirectangular", + }, + }) + }) + } +} + class ImagesFromCacheServerFetcher implements ImageFetcher { private readonly _searchRadius: number public readonly name = "fromCacheServer" @@ -186,7 +236,7 @@ class ImagesFromCacheServerFetcher implements ImageFetcher { async fetchImagesForType( targetlat: number, targetlon: number, - type: "lines" | "pois" | "polygons" + type: "lines" | "pois" | "polygons", ): Promise { const { x, y, z } = Tiles.embedded_tile(targetlat, targetlon, 14) @@ -203,7 +253,7 @@ class ImagesFromCacheServerFetcher implements ImageFetcher { }), x, y, - z + z, ) await src.updateAsync() return src.features.data @@ -360,6 +410,8 @@ export class CombinedFetcher { this.sources = [ new ImagesInLoadedDataFetcher(indexedFeatures, radius), new ImagesFromCacheServerFetcher(radius), + new ImagesFromPanoramaxFetcher(), + new ImagesFromPanoramaxFetcher(Constants.panoramax.url), new MapillaryFetcher({ panoramas: "no", max_images: 25, @@ -375,7 +427,7 @@ export class CombinedFetcher { lat: number, lon: number, state: UIEventSource>, - sink: UIEventSource + sink: UIEventSource, ): Promise { try { const pics = await source.fetchImages(lat, lon) @@ -408,7 +460,7 @@ export class CombinedFetcher { public getImagesAround( lon: number, - lat: number + lat: number, ): { images: Store state: Store> diff --git a/src/UI/BigComponents/MenuDrawer.svelte b/src/UI/BigComponents/MenuDrawer.svelte index 989e19ebe9..8e95253db6 100644 --- a/src/UI/BigComponents/MenuDrawer.svelte +++ b/src/UI/BigComponents/MenuDrawer.svelte @@ -48,6 +48,7 @@ import Copyright from "../../assets/svg/Copyright.svelte" import Pencil from "../../assets/svg/Pencil.svelte" import Squares2x2 from "@babeard/svelte-heroicons/mini/Squares2x2" + import PanoramaxLink from "./PanoramaxLink.svelte" export let state: ThemeViewState let userdetails = state.osmConnection.userDetails @@ -229,6 +230,7 @@ +
diff --git a/src/UI/BigComponents/PanoramaxLink.svelte b/src/UI/BigComponents/PanoramaxLink.svelte new file mode 100644 index 0000000000..058674c067 --- /dev/null +++ b/src/UI/BigComponents/PanoramaxLink.svelte @@ -0,0 +1,40 @@ + + + + + {#if large} +
+ + +
+ {:else} + + {/if} +
diff --git a/src/UI/Image/ImageAttribution.svelte b/src/UI/Image/ImageAttribution.svelte index 9594c87d80..46bb525fc2 100644 --- a/src/UI/Image/ImageAttribution.svelte +++ b/src/UI/Image/ImageAttribution.svelte @@ -16,7 +16,7 @@ let license: Store = UIEventSource.FromPromise( image.provider?.DownloadAttribution(image) ) - let icon = image.provider?.SourceIcon(image.id) + let icon = image.provider?.SourceIcon(image) {#if $license !== undefined} diff --git a/src/UI/Image/NearbyImages.svelte b/src/UI/Image/NearbyImages.svelte index d70dc2ba52..ca9f3ceb81 100644 --- a/src/UI/Image/NearbyImages.svelte +++ b/src/UI/Image/NearbyImages.svelte @@ -130,7 +130,7 @@ for (const f of features) { bbox = bbox.unionWith(BBox.get(f)) } - mapProperties.maxbounds.set(bbox.pad(1.1)) + mapProperties.maxbounds.set(bbox.pad(4)) }) ) diff --git a/src/Utils.ts b/src/Utils.ts index b2b7f879ff..421c6c5cfc 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -1488,7 +1488,6 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be if (!element) { return } - console.log("Scrolling into view:", element) // Is the element completely in the view? const parentRect = Utils.findParentWithScrolling(element)?.getBoundingClientRect() if (!parentRect) { diff --git a/src/assets/svg/Circle.svelte b/src/assets/svg/Circle.svelte index f1926471ab..510ddce250 100644 --- a/src/assets/svg/Circle.svelte +++ b/src/assets/svg/Circle.svelte @@ -1,4 +1,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/svg/Panoramax.svelte b/src/assets/svg/Panoramax.svelte new file mode 100644 index 0000000000..6a20baf159 --- /dev/null +++ b/src/assets/svg/Panoramax.svelte @@ -0,0 +1,4 @@ + + image/svg+xml \ No newline at end of file diff --git a/src/assets/svg/Panoramax_bw.svelte b/src/assets/svg/Panoramax_bw.svelte new file mode 100644 index 0000000000..71900d7f08 --- /dev/null +++ b/src/assets/svg/Panoramax_bw.svelte @@ -0,0 +1,4 @@ + + image/svg+xml \ No newline at end of file From 494fbaa320f18f34f7c2f7b95a24d1adc93f2926 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 01:20:00 +0200 Subject: [PATCH 50/84] chore(release): 0.46.12 --- CHANGELOG.md | 18 ++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5099f6d72..95cc447ad7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.46.12](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.11...v0.46.12) (2024-09-29) + + +### Features + +* more integrations of panoramax: add panoramax to nearby images view, add to drawer, add icon, see [#1451](https://github.com/pietervdvn/MapComplete/issues/1451) ([5fd1d75](https://github.com/USERNAME/REPOSITORY_NAME/commits5fd1d75efb0fbd49cac3eb5f7a37104887f92f10)) + + +### Bug Fixes + +* add panoramax.xyz to CSP list ([89d31f5](https://github.com/USERNAME/REPOSITORY_NAME/commits89d31f54bcd9f7f2bf62a663d67aa5bf1308307a)) +* load external panoramax images ([df9c44a](https://github.com/USERNAME/REPOSITORY_NAME/commitsdf9c44aaed7b2670134e8f9128343022e92c6e8d)) + + +### Theme improvements + +* **drinking water:** fix [#2184](https://github.com/pietervdvn/MapComplete/issues/2184) ([308d2ba](https://github.com/USERNAME/REPOSITORY_NAME/commits308d2ba4c62cc66d9c30cd1536549411c0abcb88)) + ### [0.46.11](https://github.com/USERNAME/REPOSITORY_NAME/compare/v0.46.10...v0.46.11) (2024-09-28) diff --git a/package-lock.json b/package-lock.json index ef5e1ba5d4..e5dc330abb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mapcomplete", - "version": "0.46.11", + "version": "0.46.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mapcomplete", - "version": "0.46.11", + "version": "0.46.12", "license": "GPL-3.0-or-later", "dependencies": { "@comunica/core": "^3.0.1", diff --git a/package.json b/package.json index 7137590a05..0742d2f40f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapcomplete", - "version": "0.46.11", + "version": "0.46.12", "repository": "https://github.com/pietervdvn/MapComplete", "description": "A small website to edit OSM easily", "bugs": "https://github.com/pietervdvn/MapComplete/issues", From 1aef862b11dfcb1a359144c70cd7d26db51dd6f2 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 01:54:09 +0200 Subject: [PATCH 51/84] Themes: tighten minzooms --- assets/layers/police/checkpoint.svg.license | 2 +- assets/layers/public_bookcase/public_bookcase.json | 2 +- assets/layers/shops/shops.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/layers/police/checkpoint.svg.license b/assets/layers/police/checkpoint.svg.license index 2452bee1e8..ed02883002 100644 --- a/assets/layers/police/checkpoint.svg.license +++ b/assets/layers/police/checkpoint.svg.license @@ -1,2 +1,2 @@ SPDX-FileCopyrightText: Pieter Vander Vennet -SPDX-License-Identifier: CC0 \ No newline at end of file +SPDX-License-Identifier: CC0-1.0 \ No newline at end of file diff --git a/assets/layers/public_bookcase/public_bookcase.json b/assets/layers/public_bookcase/public_bookcase.json index 9937f96cda..df57265a2e 100644 --- a/assets/layers/public_bookcase/public_bookcase.json +++ b/assets/layers/public_bookcase/public_bookcase.json @@ -24,7 +24,7 @@ "source": { "osmTags": "amenity=public_bookcase" }, - "minzoom": 7, + "minzoom": 10, "title": { "render": { "en": "Bookcase", diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json index 3eae7b7d14..5f1c7489aa 100644 --- a/assets/layers/shops/shops.json +++ b/assets/layers/shops/shops.json @@ -41,7 +41,7 @@ ] } }, - "minzoom": 12, + "minzoom": 15, "title": { "render": { "en": "Shop", From d6eca3717a7fb3ac8d17d20861870d17a0da44bb Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 01:54:21 +0200 Subject: [PATCH 52/84] Fix: enable summary server again --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 4ab761cd46..cccd333a71 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,7 @@ }, "mvt_layer_server": "https://cache.mapcomplete.org/public.{type}_{layer}/{z}/{x}/{y}.pbf", "#summary_server": "Should be the endpoint; appending status.json should work", - "disabled:summary_server": "https://cache.mapcomplete.org/", - "summary_server": null, + "summary_server": "https://cache.mapcomplete.org/", "geoip_server": "https://ipinfo.mapcomplete.org/", "error_server": "https://report.mapcomplete.org/report", "api_keys": { From c4ae41e0e1fffa925f293f2a65c277979308a694 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 01:59:27 +0200 Subject: [PATCH 53/84] Themes(shops): make 'shops' only appear on zoomlevel 15 --- assets/themes/shops/shops.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/themes/shops/shops.json b/assets/themes/shops/shops.json index 7c1ef5543a..3e733c2234 100644 --- a/assets/themes/shops/shops.json +++ b/assets/themes/shops/shops.json @@ -57,7 +57,7 @@ "ice_cream" ], "override": { - "minzoom": 12, + "minzoom": 15, "syncSelection": "theme-only" } }, From d772edb7e04bfe39f99a151c029818c0c2276616 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 02:46:11 +0200 Subject: [PATCH 54/84] chore(release): 0.47.4 --- CHANGELOG.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 4 +-- package.json | 2 +- 3 files changed, 68 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e6dfab286..b9106e740e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,74 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.47.4](https://github.com/pietervdvn/mapcomplete/compare/v0.46.12...v0.47.4) (2024-09-30) +### Features +* **studio:** add possibility to directly write into the theme files ([0be7c64](https://github.com/pietervdvn/mapcomplete/commits0be7c64ea1dae928ef658b0ef91ad6ad662f0f36)) + + +### Bug Fixes + +* enable summary server again ([d6eca37](https://github.com/pietervdvn/mapcomplete/commitsd6eca3717a7fb3ac8d17d20861870d17a0da44bb)) +* fix [#2183](https://github.com/pietervdvn/MapComplete/issues/2183) by updating wikidata-sdk to latest wikibase-sdk ([021e5f2](https://github.com/pietervdvn/mapcomplete/commits021e5f2734c46de3d51860f6c717b667dd8d1427)) + + +### Theme improvements + +* **bicycle_counter:** add images, fix center location ([ea133c5](https://github.com/pietervdvn/mapcomplete/commitsea133c5effeaad3f5e09e6e2991f0f1f6a12bbc4)) +* **police:** add jail and checkpoint icons ([169ee29](https://github.com/pietervdvn/mapcomplete/commits169ee2941498e9968dfbf42f65c8504b6bcb7f37)) +* **shops:** make 'shops' only appear on zoomlevel 15 ([c4ae41e](https://github.com/pietervdvn/mapcomplete/commitsc4ae41e0e1fffa925f293f2a65c277979308a694)) +* tighten minzooms ([1aef862](https://github.com/pietervdvn/mapcomplete/commits1aef862b11dfcb1a359144c70cd7d26db51dd6f2)) + +### [0.47.2](https://github.com/pietervdvn/mapcomplete/compare/v0.47.1...v0.47.2) (2024-09-24) + + +### Bug Fixes + +* correctly apply previous refactoring ([2a53f99](https://github.com/pietervdvn/mapcomplete/commits2a53f99dd50695768ff9b625665ca69bf0bec4c1)) +* delete entry from 'localStorage' ([22c8a45](https://github.com/pietervdvn/mapcomplete/commits22c8a45012be60dad215f8b0d72501133665454e)) +* don't add buildings to database, reevaluate builddb script ([ce87edf](https://github.com/pietervdvn/mapcomplete/commitsce87edf80009bd65c9f185d9ff68b023c5486adc)) +* fix wrong location in theme ([8b0b24b](https://github.com/pietervdvn/mapcomplete/commits8b0b24b01eefa5dbe86d97ac9c3baf38fd2fad0d)) +* remove stray word ([a6598fd](https://github.com/pietervdvn/mapcomplete/commitsa6598fd52d588ba7a5a6b05e2df8ff8ae460a37b)) +* use 'isCounted' instead of 'doCount', add check for this ([3a8fc42](https://github.com/pietervdvn/mapcomplete/commits3a8fc4248b7aa6a9cea8c2529a02a7cc11325cc8)) + +### [0.47.1](https://github.com/pietervdvn/mapcomplete/compare/v0.47.0...v0.47.1) (2024-09-19) + + +### Bug Fixes + +* actually read preferences ([a5b3342](https://github.com/pietervdvn/mapcomplete/commitsa5b3342415e843d5a33b1d3eb2dce4a95b14932a)) +* use correct overflow ([c668698](https://github.com/pietervdvn/mapcomplete/commitsc668698b1eb16f0d96c5ae0e4e7e79209b6abd95)) + + +### Theme improvements + +* **food:** add search keywords ([53b7597](https://github.com/pietervdvn/mapcomplete/commits53b75973f6734bcad6d1081299e826d2e00e0551)) +* **sport:** add sport pitches filter on sports, fix [#2159](https://github.com/pietervdvn/MapComplete/issues/2159) ([58cec96](https://github.com/pietervdvn/mapcomplete/commits58cec96fb50284dca79716ffe43d0a75b4cb6597)) + +## [0.47.0](https://github.com/pietervdvn/mapcomplete/compare/v0.46.9...v0.47.0) (2024-09-17) + + +### Features + +* add download as json to 'allTags'-panel (for debugging) ([af2905d](https://github.com/pietervdvn/mapcomplete/commitsaf2905dc6d1cbbcfb2d9cd2583369eebd90ced70)) + + +### Bug Fixes + +* actually search for keywords in theme view ([cdc1e05](https://github.com/pietervdvn/mapcomplete/commitscdc1e05499ffc41d093503ccd24defa347eea50e)) + + +### Theme improvements + +* allow to disable auto filters ([b349293](https://github.com/pietervdvn/mapcomplete/commitsb3492930b8e5090e9a9d3449d6e9abc365fc1780)) +* **healthcare:** add payment options to pharmacy layer ([6c5b619](https://github.com/pietervdvn/mapcomplete/commits6c5b61924a63e8bb82afd2dc963cc4fe38caa9ad)) +* **shop:** 'open_now' filter is introduced automatically ([ed2bec1](https://github.com/pietervdvn/mapcomplete/commitsed2bec139cf4e4094973aba2f4734522802898f3)) +* **shop:** don't show trolley bay on low zoom levels ([cdb62df](https://github.com/pietervdvn/mapcomplete/commitscdb62dfe58f5a6264c17e9d88bb590ea3f984b09)) +* some tweaks for the search feature ([bc52c05](https://github.com/pietervdvn/mapcomplete/commitsbc52c05a9b47ba6dbf8c3f79a131f8281b8c5197)) +* **waste:** add filter for 'recycling centre' ([5da63bf](https://github.com/pietervdvn/mapcomplete/commits5da63bf83aa7d8b230c8dbc082be3fba33344289)) ### [0.47.2](https://github.com/pietervdvn/mapcomplete/compare/v0.47.1...v0.47.2) (2024-09-24) diff --git a/package-lock.json b/package-lock.json index 94ebd094b9..19aace4dc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mapcomplete", - "version": "0.47.3", + "version": "0.47.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mapcomplete", - "version": "0.47.3", + "version": "0.47.4", "license": "GPL-3.0-or-later", "dependencies": { "@comunica/core": "^3.0.1", diff --git a/package.json b/package.json index cccd333a71..5167250ca9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapcomplete", - "version": "0.47.3", + "version": "0.47.4", "repository": "https://github.com/pietervdvn/MapComplete", "description": "A small website to edit OSM easily", "bugs": "https://github.com/pietervdvn/MapComplete/issues", From 06363e808ff16fae528d620e16a0972f9f8b5053 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 12:44:44 +0200 Subject: [PATCH 55/84] Feat: add panoramax link to 'browse nearby images' --- public/css/index-tailwind-output.css | 20 ++++---- src/UI/Image/NearbyImages.svelte | 71 ++++++++++++++-------------- 2 files changed, 48 insertions(+), 43 deletions(-) diff --git a/public/css/index-tailwind-output.css b/public/css/index-tailwind-output.css index 790502ded5..5608392954 100644 --- a/public/css/index-tailwind-output.css +++ b/public/css/index-tailwind-output.css @@ -1462,10 +1462,6 @@ input[type="range"].range-lg::-moz-range-thumb { margin-right: 4rem; } -.mb-4 { - margin-bottom: 1rem; -} - .mt-4 { margin-top: 1rem; } @@ -1482,6 +1478,10 @@ input[type="range"].range-lg::-moz-range-thumb { margin-bottom: 4rem; } +.mb-4 { + margin-bottom: 1rem; +} + .ml-1 { margin-left: 0.25rem; } @@ -1698,14 +1698,14 @@ input[type="range"].range-lg::-moz-range-thumb { height: 6rem; } -.h-screen { - height: 100vh; -} - .h-full { height: 100%; } +.h-screen { + height: 100vh; +} + .h-fit { height: -webkit-fit-content; height: -moz-fit-content; @@ -2536,6 +2536,10 @@ input[type="range"].range-lg::-moz-range-thumb { row-gap: 2rem; } +.gap-x-8 { + column-gap: 2rem; +} + .space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); diff --git a/src/UI/Image/NearbyImages.svelte b/src/UI/Image/NearbyImages.svelte index ca9f3ceb81..59e5a50417 100644 --- a/src/UI/Image/NearbyImages.svelte +++ b/src/UI/Image/NearbyImages.svelte @@ -23,6 +23,7 @@ import type { LayerConfigJson } from "../../Models/ThemeConfig/Json/LayerConfigJson" import { onDestroy } from "svelte" import { BBox } from "../../Logic/BBox" + import PanoramaxLink from "../BigComponents/PanoramaxLink.svelte" export let tags: UIEventSource @@ -37,7 +38,7 @@ let imagesProvider = state.nearbyImageSearcher let loadedImages = AllImageProviders.LoadImagesFor(tags).mapD( - (loaded) => new Set(loaded.map((img) => img.url)) + (loaded) => new Set(loaded.map((img) => img.url)), ) let imageState = imagesProvider.getImagesAround(lon, lat) let result: Store = imageState.images.mapD( @@ -46,22 +47,22 @@ .filter( (p: P4CPicture) => !loadedImages.data.has(p.pictureUrl) && // We don't show any image which is already linked - !p.details.isSpherical + !p.details.isSpherical, ) .slice(0, 25), - [loadedImages] + [loadedImages], ) let asFeatures = result.map(p4cs => p4cs.map(p4c => (>{ type: "Feature", geometry: { type: "Point", - coordinates: [p4c.coordinates.lng, p4c.coordinates.lat] + coordinates: [p4c.coordinates.lng, p4c.coordinates.lat], }, properties: { id: p4c.pictureUrl, - rotation: p4c.direction - } + rotation: p4c.direction, + }, }))) let selected = new UIEventSource(undefined) @@ -70,28 +71,28 @@ type: "Feature", geometry: { type: "Point", - coordinates: [s.coordinates.lng, s.coordinates.lat] + coordinates: [s.coordinates.lng, s.coordinates.lat], }, properties: { id: s.pictureUrl, selected: "yes", - rotation: s.direction - } + rotation: s.direction, + }, }] }) let someLoading = imageState.state.mapD((stateRecord) => - Object.values(stateRecord).some((v) => v === "loading") + Object.values(stateRecord).some((v) => v === "loading"), ) let errors = imageState.state.mapD((stateRecord) => - Object.keys(stateRecord).filter((k) => stateRecord[k] === "error") + Object.keys(stateRecord).filter((k) => stateRecord[k] === "error"), ) let highlighted = new UIEventSource(undefined) onDestroy(highlighted.addCallbackD(hl => { const p4c = result.data?.find(i => i.pictureUrl === hl) selected.set(p4c) - } + }, )) let map: UIEventSource = new UIEventSource(undefined) @@ -111,28 +112,27 @@ zoomToFeatures: true, onClick: (feature) => { highlighted.set(feature.properties.id) - } + }, }) ShowDataLayer.showMultipleLayers( map, new StaticFeatureSource([feature]), - state.layout.layers + state.layout.layers, ) onDestroy( - asFeatures.addCallbackAndRunD(features => { - if(features.length == 0){ - return - } - let bbox = BBox.get(features[0]) - for (const f of features) { - bbox = bbox.unionWith(BBox.get(f)) - } - mapProperties.maxbounds.set(bbox.pad(4)) - }) - + asFeatures.addCallbackAndRunD(features => { + if (features.length == 0) { + return + } + let bbox = BBox.get(features[0]) + for (const f of features) { + bbox = bbox.unionWith(BBox.get(f)) + } + mapProperties.maxbounds.set(bbox.pad(4)) + }), ) new ShowDataLayer(map, { @@ -140,12 +140,10 @@ layer: geocodedImageLayer, onClick: (feature) => { highlighted.set(feature.properties.id) - } + }, }) - -
@@ -169,13 +167,16 @@ {/each}
{/if} - - - - +
+ + +
From 85a12971ab1cb14a2e78805c5f35742ef924752a Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 13:11:29 +0200 Subject: [PATCH 56/84] UX: add dots menu to images with overflow menu --- public/css/index-tailwind-output.css | 16 +++++------ src/UI/Base/DotMenu.svelte | 42 +++++++++++++++++++++++----- src/UI/Image/ImageOperations.svelte | 22 +++++++++------ 3 files changed, 57 insertions(+), 23 deletions(-) diff --git a/public/css/index-tailwind-output.css b/public/css/index-tailwind-output.css index 790502ded5..e7fcac6605 100644 --- a/public/css/index-tailwind-output.css +++ b/public/css/index-tailwind-output.css @@ -1462,10 +1462,6 @@ input[type="range"].range-lg::-moz-range-thumb { margin-right: 4rem; } -.mb-4 { - margin-bottom: 1rem; -} - .mt-4 { margin-top: 1rem; } @@ -1482,6 +1478,10 @@ input[type="range"].range-lg::-moz-range-thumb { margin-bottom: 4rem; } +.mb-4 { + margin-bottom: 1rem; +} + .ml-1 { margin-left: 0.25rem; } @@ -1698,14 +1698,14 @@ input[type="range"].range-lg::-moz-range-thumb { height: 6rem; } -.h-screen { - height: 100vh; -} - .h-full { height: 100%; } +.h-screen { + height: 100vh; +} + .h-fit { height: -webkit-fit-content; height: -moz-fit-content; diff --git a/src/UI/Base/DotMenu.svelte b/src/UI/Base/DotMenu.svelte index 1ee5703c33..05d41c7ff9 100644 --- a/src/UI/Base/DotMenu.svelte +++ b/src/UI/Base/DotMenu.svelte @@ -7,6 +7,21 @@ */ export let open = new UIEventSource(false) + export let dotsSize = `w-6 h-6` + export let dotsPosition = `top-0 right-0` + export let hideBackground= false + let menuPosition = `` + if(dotsPosition.indexOf("left-0") >= 0){ + menuPosition = "left-0" + }else{ + menuPosition = `right-0` + } + + if(dotsPosition.indexOf("top-0") > 0){ + menuPosition += " bottom-0" + }else{ + menuPosition += ` top-0` + } function toggle() { open.set(!open.data) @@ -17,18 +32,22 @@
- +
+ .st0{fill:url(#SVGID_1_);} + .st1{fill:#FFFFFF;} + .st2{display:none;fill:none;stroke:#E62054;stroke-width:7.5;stroke-miterlimit:10;} + + + export let color = "#000000" - image/svg+xml \ No newline at end of file + image/svg+xml \ No newline at end of file From e71cfe605cc498aadf870f12e6562b29517a2326 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 18:18:21 +0200 Subject: [PATCH 77/84] Chore: regen docs --- Docs/BuiltinIndex.md | 29 +- Docs/BuiltinQuestions.md | 145 +-- Docs/Hotkeys.md | 1 + Docs/Layers/advertising.md | 60 +- Docs/Layers/advertising_wall_paintings.md | 29 +- Docs/Layers/aerialway.md | 8 + Docs/Layers/all_vending_machine.md | 34 +- Docs/Layers/ambulancestation.md | 3 +- Docs/Layers/animal_shelter.md | 10 +- Docs/Layers/artwork.md | 5 +- Docs/Layers/assembly_point.md | 2 +- Docs/Layers/assisted_repair.md | 10 +- Docs/Layers/atm.md | 2 +- Docs/Layers/barrier.md | 5 +- Docs/Layers/bbq.md | 2 +- Docs/Layers/bench.md | 2 +- .../bicycle_assisted_repair_workshop.md | 8 + Docs/Layers/bicycle_counter.md | 127 +++ Docs/Layers/bicycle_library.md | 10 +- Docs/Layers/bicycle_rental.md | 21 +- Docs/Layers/bicycle_rental_non_docking.md | 16 + Docs/Layers/bike_cafe.md | 10 +- Docs/Layers/bike_cleaning.md | 2 +- Docs/Layers/bike_parking.md | 13 +- Docs/Layers/bike_repair_station.md | 16 +- Docs/Layers/bike_shop.md | 42 +- Docs/Layers/bike_themed_object.md | 8 + Docs/Layers/binocular.md | 2 +- Docs/Layers/birdhide.md | 5 +- Docs/Layers/brothel.md | 10 +- Docs/Layers/cafe_pub.md | 14 +- Docs/Layers/car_rental.md | 2 +- Docs/Layers/caravansites.md | 11 +- Docs/Layers/charging_station.md | 5 +- Docs/Layers/charging_station_ebikes.md | 16 + Docs/Layers/climbing_area.md | 2 +- Docs/Layers/climbing_club.md | 13 +- Docs/Layers/climbing_gym.md | 25 +- Docs/Layers/climbing_route.md | 2 +- Docs/Layers/clock.md | 5 +- Docs/Layers/crossings.md | 5 +- Docs/Layers/crossings_no_traffic_lights.md | 2 +- Docs/Layers/defibrillator.md | 6 +- Docs/Layers/dentist.md | 2 +- Docs/Layers/disaster_response.md | 2 +- Docs/Layers/doctors.md | 3 +- Docs/Layers/dogfoodb.md | 62 +- Docs/Layers/dogpark.md | 10 +- Docs/Layers/dogshop.md | 192 +++- Docs/Layers/drinking_water.md | 13 +- Docs/Layers/dumpstations.md | 11 +- Docs/Layers/elevator.md | 2 +- Docs/Layers/elongated_coin.md | 2 +- Docs/Layers/entrance.md | 5 +- Docs/Layers/extinguisher.md | 3 +- Docs/Layers/facadegardens.md | 2 +- Docs/Layers/fire_station.md | 3 +- Docs/Layers/firepit.md | 2 +- Docs/Layers/fitness_centre.md | 2 +- Docs/Layers/fitness_station.md | 2 +- Docs/Layers/food.md | 70 +- Docs/Layers/food_courts.md | 8 + Docs/Layers/food_glutenfree.md | 62 +- Docs/Layers/food_lactosefree.md | 62 +- Docs/Layers/friture.md | 62 +- Docs/Layers/ghost_bike.md | 2 +- Docs/Layers/ghostsign.md | 116 +++ Docs/Layers/ghostsigns.md | 96 -- Docs/Layers/governments.md | 2 +- Docs/Layers/grave.md | 2 +- Docs/Layers/guidepost.md | 2 +- Docs/Layers/hackerspace.md | 23 +- Docs/Layers/hydrant.md | 3 +- Docs/Layers/ice_cream.md | 30 +- Docs/Layers/icecream_glutenfree.md | 28 + Docs/Layers/icecream_lactosefree.md | 28 + Docs/Layers/indoors.md | 19 +- Docs/Layers/information_board.md | 2 +- Docs/Layers/kerbs.md | 2 +- Docs/Layers/kindergarten_childcare.md | 13 +- Docs/Layers/lighthouse.md | 2 +- Docs/Layers/love_hotel.md | 2 +- Docs/Layers/map.md | 2 +- Docs/Layers/maproulette.md | 4 +- Docs/Layers/medical_shops.md | 182 +++- Docs/Layers/memorial.md | 2 +- Docs/Layers/mountain_rescue.md | 2 +- Docs/Layers/nature_reserve.md | 2 +- Docs/Layers/note.md | 86 +- Docs/Layers/observation_tower.md | 12 + Docs/Layers/outdoor_seating.md | 15 +- Docs/Layers/parcel_lockers.md | 2 +- Docs/Layers/parking.md | 2 +- Docs/Layers/parking_ticket_machine.md | 14 +- Docs/Layers/pharmacy.md | 20 +- Docs/Layers/physiotherapist.md | 2 +- Docs/Layers/picnic_table.md | 2 +- Docs/Layers/play_forest.md | 2 +- Docs/Layers/playground.md | 12 +- Docs/Layers/playground_equipment.md | 2 +- Docs/Layers/police.md | 173 ++++ Docs/Layers/postboxes.md | 2 +- Docs/Layers/postoffices.md | 2 +- Docs/Layers/public_bookcase.md | 4 +- Docs/Layers/rainbow_crossings.md | 2 +- Docs/Layers/reception_desk.md | 2 +- Docs/Layers/recycling.md | 11 +- Docs/Layers/route_marker.md | 2 +- Docs/Layers/school.md | 2 +- Docs/Layers/shops.md | 194 +++- Docs/Layers/shops_glutenfree.md | 190 +++- Docs/Layers/shops_lactosefree.md | 190 +++- Docs/Layers/shops_second_hand.md | 206 ++++- .../Layers/shops_with_climbing_shoe_repair.md | 190 +++- Docs/Layers/shower.md | 2 +- Docs/Layers/souvenir_coin.md | 2 +- Docs/Layers/souvenir_note.md | 2 +- Docs/Layers/speed_camera.md | 2 +- Docs/Layers/speed_display.md | 2 +- Docs/Layers/sport_pitch.md | 21 +- Docs/Layers/sport_shops.md | 192 +++- Docs/Layers/sports_centre.md | 2 +- Docs/Layers/street_lamps.md | 2 +- Docs/Layers/stripclub.md | 10 +- Docs/Layers/surveillance_camera.md | 11 +- Docs/Layers/tertiary_education.md | 2 +- Docs/Layers/ticket_machine.md | 14 +- Docs/Layers/ticket_validator.md | 14 +- Docs/Layers/toilet.md | 5 +- Docs/Layers/tool_library.md | 10 +- Docs/Layers/tourism_accomodation.md | 26 +- Docs/Layers/tree_node.md | 8 +- Docs/Layers/trolley_bay.md | 2 +- Docs/Layers/vending_machine.md | 36 +- Docs/Layers/vending_machine_bicycle.md | 34 +- Docs/Layers/veterinary.md | 10 +- Docs/Layers/viewpoint.md | 2 +- Docs/Layers/walls_and_buildings.md | 3 +- Docs/Layers/waste_basket.md | 2 +- Docs/Layers/waste_disposal.md | 2 +- Docs/Layers/windturbine.md | 2 +- Docs/Schemas/DenominationConfigJsonJSC.ts | 65 ++ Docs/Schemas/FilterConfigJsonJSC.ts | 108 ++- Docs/Schemas/IconConfigJsonJSC.ts | 65 ++ Docs/Schemas/LayerConfigJsonJSC.ts | 195 ++-- Docs/Schemas/LayoutConfigJsonJSC.ts | 221 +++-- Docs/Schemas/LineRenderingConfigJsonJSC.ts | 83 +- Docs/Schemas/MappingConfigJsonJSC.ts | 86 +- .../MinimalTagRenderingConfigJsonJSC.ts | 65 ++ Docs/Schemas/MoveConfigJsonJSC.ts | 65 ++ Docs/Schemas/PointRenderingConfigJsonJSC.ts | 83 +- .../QuestionableTagRenderingConfigJsonJSC.ts | 106 ++- Docs/Schemas/RewritableConfigJsonJSC.ts | 86 +- Docs/Schemas/TagRenderingConfigJsonJSC.ts | 83 +- Docs/Schemas/UnitConfigJsonJSC.ts | 65 ++ Docs/SpecialInputElements.md | 13 +- Docs/SpecialRenderings.md | 20 +- Docs/TagInfo/mapcomplete_advertising.json | 20 + .../TagInfo/mapcomplete_bicycle_parkings.json | 5 + Docs/TagInfo/mapcomplete_cafes_and_pubs.json | 10 + .../TagInfo/mapcomplete_circular_economy.json | 5 + Docs/TagInfo/mapcomplete_climbing.json | 22 +- Docs/TagInfo/mapcomplete_cycle_infra.json | 76 ++ Docs/TagInfo/mapcomplete_cyclofix.json | 98 +- .../mapcomplete_disaster_response.json | 853 ++++++++++++++++-- Docs/TagInfo/mapcomplete_drinking_water.json | 12 +- Docs/TagInfo/mapcomplete_food.json | 60 +- Docs/TagInfo/mapcomplete_fritures.json | 55 +- Docs/TagInfo/mapcomplete_ghostsigns.json | 211 +++-- Docs/TagInfo/mapcomplete_glutenfree.json | 60 +- Docs/TagInfo/mapcomplete_hackerspaces.json | 10 + Docs/TagInfo/mapcomplete_healthcare.json | 20 + Docs/TagInfo/mapcomplete_hotels.json | 5 + Docs/TagInfo/mapcomplete_indoors.json | 5 + Docs/TagInfo/mapcomplete_lactosefree.json | 60 +- Docs/TagInfo/mapcomplete_nature.json | 12 +- Docs/TagInfo/mapcomplete_onwheels.json | 85 +- Docs/TagInfo/mapcomplete_personal.json | 423 ++++++++- Docs/TagInfo/mapcomplete_pets.json | 60 +- Docs/TagInfo/mapcomplete_postboxes.json | 5 + Docs/TagInfo/mapcomplete_shops.json | 20 + Docs/TagInfo/mapcomplete_ski.json | 67 +- Docs/TagInfo/mapcomplete_sports.json | 5 + Docs/TagInfo/mapcomplete_surveillance.json | 80 ++ Docs/TagInfo/mapcomplete_transit.json | 5 + Docs/TagInfo/mapcomplete_vending_machine.json | 5 + Docs/Themes/benches.md | 1 + Docs/Themes/bicycle_parkings.md | 2 + Docs/Themes/blind_osm.md | 1 + Docs/Themes/buurtnatuur.md | 6 +- Docs/Themes/circular_economy.md | 208 ++++- Docs/Themes/climbing.md | 190 +++- Docs/Themes/cycle_infra.md | 1 + Docs/Themes/cyclenodes.md | 4 +- Docs/Themes/cyclofix.md | 75 +- Docs/Themes/disaster_response.md | 14 +- Docs/Themes/facadegardens.md | 2 +- Docs/Themes/fireplace.md | 2 + Docs/Themes/fritures.md | 62 +- Docs/Themes/ghostsigns.md | 121 +-- Docs/Themes/glutenfree.md | 282 +++++- Docs/Themes/grb.md | 2 +- Docs/Themes/healthcare.md | 182 +++- Docs/Themes/items_with_image.md | 1 + Docs/Themes/kerbs_and_crossings.md | 2 +- Docs/Themes/lactosefree.md | 282 +++++- Docs/Themes/lighthouses.md | 2 + Docs/Themes/mapcomplete-changes.md | 13 +- Docs/Themes/openlovemap.md | 183 +++- Docs/Themes/personal.md | 3 + Docs/Themes/pets.md | 254 +++++- Docs/Themes/sports.md | 192 +++- Docs/Themes/stations.md | 2 +- Docs/Themes/surveillance.md | 1 + Docs/Themes/toerisme_vlaanderen.md | 39 +- Docs/Themes/velopark.md | 13 +- Docs/Themes/vending_machine.md | 34 +- Docs/Themes/walkingnodes.md | 4 +- Docs/URL_Parameters.md | 60 +- 219 files changed, 8150 insertions(+), 1507 deletions(-) create mode 100644 Docs/Layers/bicycle_counter.md create mode 100644 Docs/Layers/ghostsign.md delete mode 100644 Docs/Layers/ghostsigns.md create mode 100644 Docs/Layers/police.md diff --git a/Docs/BuiltinIndex.md b/Docs/BuiltinIndex.md index 942769bc80..ac37d036af 100644 --- a/Docs/BuiltinIndex.md +++ b/Docs/BuiltinIndex.md @@ -19,6 +19,7 @@ - bbq - bench - bench_at_pt + - bicycle_counter - bicycle_library - bicycle_rental - bike_cafe @@ -59,6 +60,7 @@ - food - food_courts - ghost_bike + - ghostsign - governments - grave - guidepost @@ -87,6 +89,7 @@ - play_forest - playground - playground_equipment + - police - postboxes - postoffices - public_bookcase @@ -147,6 +150,7 @@ - ice_cream - kindergarten_childcare - pharmacy + - police - postoffices - questions - questions @@ -175,6 +179,7 @@ - love_hotel - pharmacy - playground + - police - shops - stripclub - tourism_accomodation @@ -206,7 +211,6 @@ - nature_reserve - observation_tower - outdoor_seating - - pharmacy - physiotherapist - playground - recycling @@ -238,7 +242,6 @@ - governments - hackerspace - kindergarten_childcare - - pharmacy - physiotherapist - recycling - school @@ -266,7 +269,6 @@ - governments - hackerspace - kindergarten_childcare - - pharmacy - physiotherapist - recycling - school @@ -312,6 +314,8 @@ - hospital - ice_cream - love_hotel + - pharmacy + - police - stripclub - tool_library - tourism_accomodation @@ -368,6 +372,7 @@ - food - ice_cream - observation_tower + - pharmacy - questions - questions - shops @@ -523,6 +528,7 @@ - cycle_highways - fixme + - search - summary ### seasonal @@ -582,6 +588,14 @@ - food - shops + ### advertising.historic + + - ghostsign + + ### advertising.type + + - ghostsign + ### export_as_gpx - gps_track @@ -618,6 +632,11 @@ - ticket_machine - vending_machine + ### {preset_type_select()} + + - police + - tourism_accomodation + ### single_level - questions @@ -678,10 +697,6 @@ - toilet_at_amenity - ### {preset_type_select()} - - - tourism_accomodation - ### brand - tourism_accomodation diff --git a/Docs/BuiltinQuestions.md b/Docs/BuiltinQuestions.md index 8b443f36bc..ecb607582e 100644 --- a/Docs/BuiltinQuestions.md +++ b/Docs/BuiltinQuestions.md @@ -13,58 +13,60 @@ This is a special layer - data is not sourced from OpenStreetMap ## Table of contents -1. [questions](#questions) -2. [images](#images) -3. [mapillary](#mapillary) -4. [export_as_gpx](#export_as_gpx) -5. [export_as_geojson](#export_as_geojson) -6. [wikipedia](#wikipedia) -7. [reviews](#reviews) -8. [phone](#phone) -9. [mastodon](#mastodon) -10. [facebook](#facebook) -11. [osmlink](#osmlink) -12. [email](#email) -13. [website](#website) -14. [wheelchair-access](#wheelchair-access) -15. [dog-access](#dog-access) -16. [description](#description) -17. [opening_hours](#opening_hours) -18. [Opening hours](#opening-hours) -19. [opening_hours_24_7](#opening_hours_24_7) -20. [Opening hours](#opening-hours) -21. [opening_hours_24_7_default](#opening_hours_24_7_default) -22. [Opening hours](#opening-hours) -23. [opening_hours_by_appointment](#opening_hours_by_appointment) -24. [Opening hours](#opening-hours) -25. [service:electricity](#serviceelectricity) -26. [payment-options](#payment-options) -27. [payment-options-split](#payment-options-split) -28. [payment-options-advanced](#payment-options-advanced) -29. [denominations-coins](#denominations-coins) -30. [denominations-notes](#denominations-notes) -31. [all_tags](#all_tags) -32. [multilevels](#multilevels) -33. [repeated](#repeated) -34. [single_level](#single_level) -35. [smoking](#smoking) -36. [induction-loop](#induction-loop) -37. [internet](#internet) -38. [internet-fee](#internet-fee) -39. [internet-ssid](#internet-ssid) -40. [luminous_or_lit](#luminous_or_lit) -41. [survey_date](#survey_date) -42. [check_date](#check_date) -43. [sugar_free](#sugar_free) -44. [lactose_free](#lactose_free) -45. [gluten_free](#gluten_free) -46. [vegan](#vegan) -47. [lod](#lod) -48. [split_button](#split_button) -49. [seasonal](#seasonal) -50. [shower](#shower) -51. [preset_description](#preset_description) -52. [brand](#brand) +1. [Supported attributes](#supported-attributes) + - [questions](#questions) + - [images](#images) + - [mapillary](#mapillary) + - [export_as_gpx](#export_as_gpx) + - [export_as_geojson](#export_as_geojson) + - [wikipedia](#wikipedia) + - [reviews](#reviews) + - [phone](#phone) + - [mastodon](#mastodon) + - [facebook](#facebook) + - [osmlink](#osmlink) + - [email](#email) + - [website](#website) + - [wheelchair-access](#wheelchair-access) + - [dog-access](#dog-access) + - [description](#description) + - [opening_hours](#opening_hours) + - [Opening hours](#opening-hours) + - [opening_hours_24_7](#opening_hours_24_7) + - [Opening hours](#opening-hours) + - [opening_hours_24_7_default](#opening_hours_24_7_default) + - [Opening hours](#opening-hours) + - [opening_hours_by_appointment](#opening_hours_by_appointment) + - [Opening hours](#opening-hours) + - [service:electricity](#serviceelectricity) + - [payment-options](#payment-options) + - [payment-options-split](#payment-options-split) + - [payment-options-advanced](#payment-options-advanced) + - [denominations-coins](#denominations-coins) + - [denominations-notes](#denominations-notes) + - [all_tags](#all_tags) + - [multilevels](#multilevels) + - [repeated](#repeated) + - [single_level](#single_level) + - [smoking](#smoking) + - [induction-loop](#induction-loop) + - [internet](#internet) + - [internet-fee](#internet-fee) + - [internet-ssid](#internet-ssid) + - [luminous_or_lit](#luminous_or_lit) + - [survey_date](#survey_date) + - [check_date](#check_date) + - [sugar_free](#sugar_free) + - [lactose_free](#lactose_free) + - [gluten_free](#gluten_free) + - [vegan](#vegan) + - [lod](#lod) + - [split_button](#split_button) + - [seasonal](#seasonal) + - [shower](#shower) + - [preset_description](#preset_description) + - [brand](#brand) +2. [Filters](#filters) ## Supported attributes @@ -92,7 +94,7 @@ This is a special layer - data is not sourced from OpenStreetMap | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [hearing_loop](https://wiki.openstreetmap.org/wiki/Key:hearing_loop) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dno) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [survey:date](https://wiki.openstreetmap.org/wiki/Key:survey:date) | [date](../SpecialInputElements.md#date) | [](https://wiki.openstreetmap.org/wiki/Tag:survey:date%3D) | @@ -391,6 +393,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -531,6 +534,42 @@ The question is `Is {title()} part of a bigger brand?` - *Not part of a bigger brand* is shown if with nobrand=yes +## Filters + +| id | question | osmTags | +-----|-----|----- | +| dogs.0 | *No preference towards dogs* (default) | | +| dogs.1 | Dogs allowed | dog=unleashed | dog=yes | +| dogs.2 | No dogs allowed | dog=no | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + +| id | question | osmTags | +-----|-----|----- | +| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + This document is autogenerated from [assets/layers/questions/questions.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/questions/questions.json) diff --git a/Docs/Hotkeys.md b/Docs/Hotkeys.md index 1092b7d2ff..f9fa1a0477 100644 --- a/Docs/Hotkeys.md +++ b/Docs/Hotkeys.md @@ -22,6 +22,7 @@ MapComplete supports the following keys: | `P` | Set the background to aerial or satellite imagery. Toggles between the two best, available layers | | `S` | Opens the POI-layers and filter panel | | `Spacebar` | Select the POI which is closest to the map center (crosshair). Only when in keyboard navigation is used | +| `ctrl+F` | Select the search bar to search locations | | `shift+M` | Set the background to a map from external sources. Toggles between the two best, available layers | | `shift+O` | Set the background layer to on OpenStreetMap-based map (or disable the background raster layer) | | `shift+P` | Set the background to aerial or satellite imagery. Toggles between the two best, available layers | diff --git a/Docs/Layers/advertising.md b/Docs/Layers/advertising.md index 3726e4e173..8bd55398b6 100644 --- a/Docs/Layers/advertising.md +++ b/Docs/Layers/advertising.md @@ -28,6 +28,7 @@ We will complete data from advertising features with reference, operator and lit - [message_type](#message_type) - [Sides](#sides) - [ref](#ref) + - [historic](#historic) - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [delete-button](#delete-button) @@ -42,37 +43,22 @@ We will complete data from advertising features with reference, operator and lit The following options to create new points are included: -**a billboard** which has the following tags:advertising=billboard - -**a billboard mounted to a wall** which has the following tags:advertising=billboard (snaps to layers `walls_and_buildings`) - -**a freestanding poster box** which has the following tags:advertising=poster_box - -**a poster box mounted on a wall** which has the following tags:advertising=poster_box (snaps to layers `walls_and_buildings`) - -**a poster box part of a public transport shelter** which has the following tags:advertising=poster_box & support=street_furniture:transit_shelter (snaps to layers `shelter`) - -**a board** which has the following tags:advertising=board - -**a column** which has the following tags:advertising=column - -**a flag** which has the following tags:advertising=flag & man_made=pole - -**a screen** which has the following tags:advertising=screen - -**a screen mounted on a wall** which has the following tags:advertising=screen (snaps to layers `walls_and_buildings`) - -**a screen mounted on a transit shelter** which has the following tags:advertising=screen & support=street_furniture:transit_shelter (snaps to layers `shelter`) - -**a tarp** which has the following tags:advertising=tarp (snaps to layers `walls_and_buildings`) - -**a totem** which has the following tags:advertising=totem - -**a sign** which has the following tags:advertising=sign (snaps to layers `walls_and_buildings`) - -**a sculpture** which has the following tags:advertising=sculpture - -**a wall painting** which has the following tags:advertising=wall_painting (snaps to layers `walls_and_buildings`) + - **a billboard** which has the following tags:advertising=billboard + - **a billboard mounted to a wall** which has the following tags:advertising=billboard (snaps to layers `walls_and_buildings`) + - **a freestanding poster box** which has the following tags:advertising=poster_box + - **a poster box mounted on a wall** which has the following tags:advertising=poster_box (snaps to layers `walls_and_buildings`) + - **a poster box part of a public transport shelter** which has the following tags:advertising=poster_box & support=street_furniture:transit_shelter (snaps to layers `shelter`) + - **a board** which has the following tags:advertising=board + - **a column** which has the following tags:advertising=column + - **a flag** which has the following tags:advertising=flag & man_made=pole + - **a screen** which has the following tags:advertising=screen + - **a screen mounted on a wall** which has the following tags:advertising=screen (snaps to layers `walls_and_buildings`) + - **a screen mounted on a transit shelter** which has the following tags:advertising=screen & support=street_furniture:transit_shelter (snaps to layers `shelter`) + - **a tarp** which has the following tags:advertising=tarp (snaps to layers `walls_and_buildings`) + - **a totem** which has the following tags:advertising=totem + - **a sign** which has the following tags:advertising=sign (snaps to layers `walls_and_buildings`) + - **a sculpture** which has the following tags:advertising=sculpture + - **a wall painting** which has the following tags:advertising=wall_painting (snaps to layers `walls_and_buildings`) ## Basic tags for this layer @@ -89,11 +75,12 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | -| [advertising](https://wiki.openstreetmap.org/wiki/Key:advertising) | [string](../SpecialInputElements.md#string) | [billboard](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dbillboard) [board](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dboard) [column](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dcolumn) [flag](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dflag) [poster_box](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dposter_box) [screen](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dscreen) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsculpture) [sign](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsign) [tarp](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtarp) [totem](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtotem) [wall_painting](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dwall_painting) | +| [advertising](https://wiki.openstreetmap.org/wiki/Key:advertising) | [string](../SpecialInputElements.md#string) | [billboard](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dbillboard) [board](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dboard) [column](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dcolumn) [flag](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dflag) [poster_box](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dposter_box) [screen](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dscreen) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsculpture) [sign](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsign) [tarp](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtarp) [totem](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtotem) [wall_painting](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dwall_painting) [tilework](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtilework) [relief](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Drelief) | | [animated](https://wiki.openstreetmap.org/wiki/Key:animated) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dno) [digital_display](https://wiki.openstreetmap.org/wiki/Tag:animated%3Ddigital_display) [trivision_blades](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dtrivision_blades) [winding_posters](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dwinding_posters) [revolving](https://wiki.openstreetmap.org/wiki/Tag:animated%3Drevolving) | | [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) | | | [sides](https://wiki.openstreetmap.org/wiki/Key:sides) | Multiple choice | [1](https://wiki.openstreetmap.org/wiki/Tag:sides%3D1) [2](https://wiki.openstreetmap.org/wiki/Tag:sides%3D2) | | [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) | | +| [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images @@ -116,6 +103,8 @@ The question is `Which type of advertising feature is this?` - *This is a tarp (a weatherproof piece of textile with an advertising message)* is shown if with advertising=tarp - *This is a totem* is shown if with advertising=totem - *This is a wall painting* is shown if with advertising=wall_painting + - *This is tilework - the advertisement is painted on tiles* is shown if with advertising=tilework + - *This is a relief* is shown if with advertising=relief ### animated @@ -171,6 +160,13 @@ This tagrendering is only visible in the popup if the following condition is met The question is `Wich is the reference number?` *Reference number is {ref}* is shown if `ref` is set +### historic + +The question is `Is this sign for a business that no longer exists or no longer being maintained?` + + - *This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)* is shown if with historic=advertising + - *This advertisement sign has no historic value (the business still exists and has no heritage value)* is shown if with historic= + ### leftover-questions _This tagrendering has no question and is thus read-only_ diff --git a/Docs/Layers/advertising_wall_paintings.md b/Docs/Layers/advertising_wall_paintings.md index 380baead2b..d8cb1e18b1 100644 --- a/Docs/Layers/advertising_wall_paintings.md +++ b/Docs/Layers/advertising_wall_paintings.md @@ -13,7 +13,6 @@ We will complete data from advertising features with reference, operator and lit 1. [Themes using this layer](#themes-using-this-layer) 2. [Basic tags for this layer](#basic-tags-for-this-layer) 3. [Supported attributes](#supported-attributes) - - [historic](#historic) - [images](#images) - [type](#type) - [animated](#animated) @@ -22,6 +21,7 @@ We will complete data from advertising features with reference, operator and lit - [message_type](#message_type) - [Sides](#sides) - [ref](#ref) + - [historic](#historic) - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [delete-button](#delete-button) @@ -33,9 +33,12 @@ We will complete data from advertising features with reference, operator and lit ## Basic tags for this layer -Elements must match the expression **advertising=wall_painting** +Elements must match **all** of the following expressions: -[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22advertising%22%3D%22wall_painting%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) +0. advertising~.+ +1. advertising!=no + +[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22advertising%22%5D%5B%22advertising%22!%3D%22no%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) ## Supported attributes @@ -43,19 +46,12 @@ Elements must match the expression ** [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | -| [advertising](https://wiki.openstreetmap.org/wiki/Key:advertising) | [string](../SpecialInputElements.md#string) | [billboard](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dbillboard) [board](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dboard) [column](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dcolumn) [flag](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dflag) [poster_box](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dposter_box) [screen](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dscreen) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsculpture) [sign](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsign) [tarp](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtarp) [totem](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtotem) [wall_painting](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dwall_painting) | +| [advertising](https://wiki.openstreetmap.org/wiki/Key:advertising) | [string](../SpecialInputElements.md#string) | [billboard](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dbillboard) [board](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dboard) [column](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dcolumn) [flag](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dflag) [poster_box](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dposter_box) [screen](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dscreen) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsculpture) [sign](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsign) [tarp](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtarp) [totem](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtotem) [wall_painting](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dwall_painting) [tilework](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtilework) [relief](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Drelief) | | [animated](https://wiki.openstreetmap.org/wiki/Key:animated) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dno) [digital_display](https://wiki.openstreetmap.org/wiki/Tag:animated%3Ddigital_display) [trivision_blades](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dtrivision_blades) [winding_posters](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dwinding_posters) [revolving](https://wiki.openstreetmap.org/wiki/Tag:animated%3Drevolving) | | [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) | | | [sides](https://wiki.openstreetmap.org/wiki/Key:sides) | Multiple choice | [1](https://wiki.openstreetmap.org/wiki/Tag:sides%3D1) [2](https://wiki.openstreetmap.org/wiki/Tag:sides%3D2) | | [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) | | - -### historic - -The question is `Is this a ghost sign?` - - - *This is a ghost sign* is shown if with historic=advertising - - *This is not a ghost sign* is shown if with historic= +| [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images @@ -78,6 +74,8 @@ The question is `Which type of advertising feature is this?` - *This is a tarp (a weatherproof piece of textile with an advertising message)* is shown if with advertising=tarp - *This is a totem* is shown if with advertising=totem - *This is a wall painting* is shown if with advertising=wall_painting + - *This is tilework - the advertisement is painted on tiles* is shown if with advertising=tilework + - *This is a relief* is shown if with advertising=relief ### animated @@ -133,6 +131,13 @@ This tagrendering is only visible in the popup if the following condition is met The question is `Wich is the reference number?` *Reference number is {ref}* is shown if `ref` is set +### historic + +The question is `Is this sign for a business that no longer exists or no longer being maintained?` + + - *This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)* is shown if with historic=advertising + - *This advertisement sign has no historic value (the business still exists and has no heritage value)* is shown if with historic= + ### leftover-questions _This tagrendering has no question and is thus read-only_ diff --git a/Docs/Layers/aerialway.md b/Docs/Layers/aerialway.md index f4d06612a0..b814842ad8 100644 --- a/Docs/Layers/aerialway.md +++ b/Docs/Layers/aerialway.md @@ -21,6 +21,7 @@ Various forms of transport for passengers and goods that use wires, including ca - [length](#length) - [leftover-questions](#leftover-questions) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -112,5 +113,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/aerialway/aerialway.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/aerialway/aerialway.json) diff --git a/Docs/Layers/all_vending_machine.md b/Docs/Layers/all_vending_machine.md index 958bbe6cea..7ebb2ca256 100644 --- a/Docs/Layers/all_vending_machine.md +++ b/Docs/Layers/all_vending_machine.md @@ -58,7 +58,7 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | -| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | +| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [ice_cream](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dice_cream) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | | [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | [Continental](https://wiki.openstreetmap.org/wiki/Tag:brand%3DContinental) [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:brand%3DSchwalbe) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | | [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR) [0.05 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 CHF) [0.10 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 CHF) [0.20 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 CHF) [0.50 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 CHF) [1 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 CHF) [2 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 CHF) [5 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D5 CHF) | @@ -117,6 +117,7 @@ The question is `What does this vending machine sell?` - *Milk is sold* is shown if with vending=milk - *Bread is sold* is shown if with vending=bread - *Eggs are sold* is shown if with vending=eggs + - *Ice cream is sold* is shown if with vending=ice_cream - *Cheese is sold* is shown if with vending=cheese - *Honey is sold* is shown if with vending=honey - *Potatoes are sold* is shown if with vending=potatoes @@ -312,21 +313,22 @@ This tagrendering has labels | vending.10 | Sale of milk | vending~^(.*milk.*)$ | | vending.11 | Sale of bread | vending~^(.*bread.*)$ | | vending.12 | Sale of eggs | vending~^(.*eggs.*)$ | -| vending.13 | Sale of cheese | vending~^(.*cheese.*)$ | -| vending.14 | Sale of honey | vending~^(.*honey.*)$ | -| vending.15 | Sale of potatoes | vending~^(.*potatoes.*)$ | -| vending.16 | Sale of meat | vending~^(.*meat.*)$ | -| vending.17 | Sale of fruit | vending~^(.*fruit.*)$ | -| vending.18 | Sale of strawberries | vending~^(.*strawberries.*)$ | -| vending.19 | Sale of flowers | vending~^(.*flowers.*)$ | -| vending.20 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | -| vending.21 | Sale of pressed pennies | vending=elongated_coin | -| vending.22 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | -| vending.23 | Sale of bicycle lights | vending=bicycle_light | -| vending.24 | Sale of gloves | vending=gloves | -| vending.25 | Sale of bicycle repair kits | vending=bicycle_repair_kit | -| vending.26 | Sale of bicycle pumps | vending=bicycle_pump | -| vending.27 | Sale of bicycle locks | vending=bicycle_lock | +| vending.13 | Sale of ice cream | vending~^(.*ice_cream.*)$ | +| vending.14 | Sale of cheese | vending~^(.*cheese.*)$ | +| vending.15 | Sale of honey | vending~^(.*honey.*)$ | +| vending.16 | Sale of potatoes | vending~^(.*potatoes.*)$ | +| vending.17 | Sale of meat | vending~^(.*meat.*)$ | +| vending.18 | Sale of fruit | vending~^(.*fruit.*)$ | +| vending.19 | Sale of strawberries | vending~^(.*strawberries.*)$ | +| vending.20 | Sale of flowers | vending~^(.*flowers.*)$ | +| vending.21 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | +| vending.22 | Sale of pressed pennies | vending=elongated_coin | +| vending.23 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | +| vending.24 | Sale of bicycle lights | vending=bicycle_light | +| vending.25 | Sale of gloves | vending=gloves | +| vending.26 | Sale of bicycle repair kits | vending=bicycle_repair_kit | +| vending.27 | Sale of bicycle pumps | vending=bicycle_pump | +| vending.28 | Sale of bicycle locks | vending=bicycle_lock | | id | question | osmTags | -----|-----|----- | diff --git a/Docs/Layers/ambulancestation.md b/Docs/Layers/ambulancestation.md index 349373c8b1..c643b01d27 100644 --- a/Docs/Layers/ambulancestation.md +++ b/Docs/Layers/ambulancestation.md @@ -24,6 +24,7 @@ An ambulance station is an area for storage of ambulance vehicles, medical equip ## Themes using this layer + - [disaster_response](https://mapcomplete.org/disaster_response) - [hailhydrant](https://mapcomplete.org/hailhydrant) - [personal](https://mapcomplete.org/personal) @@ -31,7 +32,7 @@ An ambulance station is an area for storage of ambulance vehicles, medical equip The following options to create new points are included: -**an ambulance station** which has the following tags:emergency=ambulance_station + - **an ambulance station** which has the following tags:emergency=ambulance_station ## Basic tags for this layer diff --git a/Docs/Layers/animal_shelter.md b/Docs/Layers/animal_shelter.md index 6cd94dea5c..46c7cb81ba 100644 --- a/Docs/Layers/animal_shelter.md +++ b/Docs/Layers/animal_shelter.md @@ -26,6 +26,7 @@ An animal shelter is a facility where animals in trouble are brought and facilit - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -36,7 +37,7 @@ An animal shelter is a facility where animals in trouble are brought and facilit The following options to create new points are included: -**an animal shelter** which has the following tags:amenity=animal_shelter + - **an animal shelter** which has the following tags:amenity=animal_shelter ## Basic tags for this layer @@ -155,5 +156,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/animal_shelter/animal_shelter.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/animal_shelter/animal_shelter.json) diff --git a/Docs/Layers/artwork.md b/Docs/Layers/artwork.md index 551ce50ce0..58616f2fd3 100644 --- a/Docs/Layers/artwork.md +++ b/Docs/Layers/artwork.md @@ -49,9 +49,8 @@ An open map of statues, busts, graffitis and other artwork all over the world The following options to create new points are included: -**an artwork** which has the following tags:tourism=artwork - -**an artwork on a wall** which has the following tags:tourism=artwork (snaps to layers `walls_and_buildings`) + - **an artwork** which has the following tags:tourism=artwork + - **an artwork on a wall** which has the following tags:tourism=artwork (snaps to layers `walls_and_buildings`) ## Basic tags for this layer diff --git a/Docs/Layers/assembly_point.md b/Docs/Layers/assembly_point.md index f5870a27fc..9123523400 100644 --- a/Docs/Layers/assembly_point.md +++ b/Docs/Layers/assembly_point.md @@ -29,7 +29,7 @@ This layer contains assembly points and waiting areas where all employees, passe The following options to create new points are included: -**an assembly point** which has the following tags:emergency=assembly_point + - **an assembly point** which has the following tags:emergency=assembly_point ## Basic tags for this layer diff --git a/Docs/Layers/assisted_repair.md b/Docs/Layers/assisted_repair.md index eb3980222d..65afedb66b 100644 --- a/Docs/Layers/assisted_repair.md +++ b/Docs/Layers/assisted_repair.md @@ -27,6 +27,7 @@ A self-assisted workshop is a location where people can come and repair their go - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -37,7 +38,7 @@ A self-assisted workshop is a location where people can come and repair their go The following options to create new points are included: -**an assisted repair workshop** which has the following tags:amenity=workshop & repair=assisted_self_service + - **an assisted repair workshop** which has the following tags:amenity=workshop & repair=assisted_self_service ## Basic tags for this layer @@ -158,5 +159,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/assisted_repair/assisted_repair.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/assisted_repair/assisted_repair.json) diff --git a/Docs/Layers/atm.md b/Docs/Layers/atm.md index 9b39cbcde1..b0051a35ea 100644 --- a/Docs/Layers/atm.md +++ b/Docs/Layers/atm.md @@ -39,7 +39,7 @@ ATMs to withdraw money The following options to create new points are included: -**an ATM** which has the following tags:amenity=atm + - **an ATM** which has the following tags:amenity=atm ## Basic tags for this layer diff --git a/Docs/Layers/barrier.md b/Docs/Layers/barrier.md index 461e35269f..75283e8587 100644 --- a/Docs/Layers/barrier.md +++ b/Docs/Layers/barrier.md @@ -37,9 +37,8 @@ Obstacles while cycling, such as bollards and cycle barriers The following options to create new points are included: -**a bollard** which has the following tags:barrier=bollard (snaps to layers `cycleways_and_roads`) - -**a cycle barrier** which has the following tags:barrier=cycle_barrier (snaps to layers `cycleways_and_roads`) + - **a bollard** which has the following tags:barrier=bollard (snaps to layers `cycleways_and_roads`) + - **a cycle barrier** which has the following tags:barrier=cycle_barrier (snaps to layers `cycleways_and_roads`) ## Basic tags for this layer diff --git a/Docs/Layers/bbq.md b/Docs/Layers/bbq.md index 0b823e1882..f74231d3cb 100644 --- a/Docs/Layers/bbq.md +++ b/Docs/Layers/bbq.md @@ -32,7 +32,7 @@ A permanently installed barbecue, typically accessible to the public. The following options to create new points are included: -**BBQ** which has the following tags:amenity=bbq + - **BBQ** which has the following tags:amenity=bbq ## Basic tags for this layer diff --git a/Docs/Layers/bench.md b/Docs/Layers/bench.md index 7676426afe..dc2242465c 100644 --- a/Docs/Layers/bench.md +++ b/Docs/Layers/bench.md @@ -49,7 +49,7 @@ A bench is a wooden, metal, stone, … surface where a human can sit. This layer The following options to create new points are included: -**a bench** which has the following tags:amenity=bench + - **a bench** which has the following tags:amenity=bench ## Basic tags for this layer diff --git a/Docs/Layers/bicycle_assisted_repair_workshop.md b/Docs/Layers/bicycle_assisted_repair_workshop.md index 1a5aa48d66..b3e51ff63e 100644 --- a/Docs/Layers/bicycle_assisted_repair_workshop.md +++ b/Docs/Layers/bicycle_assisted_repair_workshop.md @@ -28,6 +28,7 @@ A self-assisted workshop is a location where people can come and repair their go - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -155,5 +156,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/themes/cyclofix/cyclofix.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/cyclofix/cyclofix.json) diff --git a/Docs/Layers/bicycle_counter.md b/Docs/Layers/bicycle_counter.md new file mode 100644 index 0000000000..4444099e8c --- /dev/null +++ b/Docs/Layers/bicycle_counter.md @@ -0,0 +1,127 @@ +[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources) + +# bicycle_counter + +Layer showing monitoring stations for bicycle traffic + + - This layer is shown at zoomlevel **13** and higher + +## Table of contents + +1. [Themes using this layer](#themes-using-this-layer) +2. [Presets](#presets) +3. [Basic tags for this layer](#basic-tags-for-this-layer) +4. [Supported attributes](#supported-attributes) + - [images](#images) + - [display](#display) + - [name](#name) + - [start_date](#start_date) + - [clock](#clock) + - [ref](#ref) + - [website](#website) + - [leftover-questions](#leftover-questions) + - [move-button](#move-button) + - [delete-button](#delete-button) + - [lod](#lod) + +## Themes using this layer + + - [cycle_infra](https://mapcomplete.org/cycle_infra) + - [cyclofix](https://mapcomplete.org/cyclofix) + - [personal](https://mapcomplete.org/personal) + +## Presets + +The following options to create new points are included: + + - **a bicycle counter** which has the following tags:man_made=monitoring_station & monitoring:bicycle=yes + +## Basic tags for this layer + +Elements must match **all** of the following expressions: + +0. man_made=monitoring_station +1. monitoring:bicycle=yes + +[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22man_made%22%3D%22monitoring_station%22%5D%5B%22monitoring%3Abicycle%22%3D%22yes%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) + +## Supported attributes + +**Warning:**,this quick overview is incomplete, + +| attribute | type | values which are supported by this layer | +-----|-----|----- | +| [display](https://wiki.openstreetmap.org/wiki/Key:display) | Multiple choice | [digital](https://wiki.openstreetmap.org/wiki/Tag:display%3Ddigital) [analog](https://wiki.openstreetmap.org/wiki/Tag:display%3Danalog) [no](https://wiki.openstreetmap.org/wiki/Tag:display%3Dno) | +| [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | | +| [start_date](https://wiki.openstreetmap.org/wiki/Key:start_date) | [date](../SpecialInputElements.md#date) | | +| [amenity](https://wiki.openstreetmap.org/wiki/Key:amenity) | Multiple choice | [clock](https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dclock) [](https://wiki.openstreetmap.org/wiki/Tag:amenity%3D) | +| [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) | | +| [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | | + +### images +This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images +_This tagrendering has no question and is thus read-only_ +*{image_carousel()}{image_upload()}* + +### display + +The question is `Does this bicycle counter have a display showing the number of passing bicycles?` + + - *This counter has a digital display* is shown if with display=digital + - *This counter has an analog display* is shown if with display=analog + - *This counter has no display* is shown if with display=no + +### name + +The question is `What is the name of the counted location?` +*Name of the counted location: {name}* is shown if `name` is set + +### start_date + +The question is `When did this counter start counting?` +*This counter started counting on {start_date}* is shown if `start_date` is set + +### clock + +The question is `Does this bicycle counter have a clock?` + + - *This counter has a clock* is shown if with amenity=clock + - *This counter has no clock* is shown if with amenity= + +### ref + +The question is `What is the reference number of this counter?` +*Reference number of the counter: {ref}* is shown if `ref` is set + + - *This counter has no reference number* is shown if with noref=yes + +### website + +The question is `Is there a website for this bicycle counter?` +*Website of the counter: {website}* is shown if `website` is set + +### leftover-questions + +_This tagrendering has no question and is thus read-only_ +*{questions( ,)}* + +### move-button + +_This tagrendering has no question and is thus read-only_ +*{move_button()}* + +### delete-button + +_This tagrendering has no question and is thus read-only_ +*{delete_button()}* + +### lod + +_This tagrendering has no question and is thus read-only_ +*{linked_data_from_website()}* + +This tagrendering has labels +`added_by_default` + + +This document is autogenerated from [assets/layers/bicycle_counter/bicycle_counter.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bicycle_counter/bicycle_counter.json) diff --git a/Docs/Layers/bicycle_library.md b/Docs/Layers/bicycle_library.md index e29329c224..26591835cc 100644 --- a/Docs/Layers/bicycle_library.md +++ b/Docs/Layers/bicycle_library.md @@ -26,6 +26,7 @@ A facility where bicycles can be lent for longer period of times - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -38,7 +39,7 @@ A facility where bicycles can be lent for longer period of times The following options to create new points are included: -**a bicycle library** which has the following tags:amenity=bicycle_library + - **a bicycle library** which has the following tags:amenity=bicycle_library ## Basic tags for this layer @@ -153,5 +154,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/bicycle_library/bicycle_library.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bicycle_library/bicycle_library.json) diff --git a/Docs/Layers/bicycle_rental.md b/Docs/Layers/bicycle_rental.md index 3b01c78341..214e83e273 100644 --- a/Docs/Layers/bicycle_rental.md +++ b/Docs/Layers/bicycle_rental.md @@ -33,6 +33,7 @@ Bicycle rental stations - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -47,9 +48,8 @@ Bicycle rental stations The following options to create new points are included: -**a bicycle rental shop** which has the following tags:amenity=bicycle_rental & bicycle_rental=shop - -**a bicycle rental** which has the following tags:amenity=bicycle_rental + - **a bicycle rental shop** which has the following tags:amenity=bicycle_rental & bicycle_rental=shop + - **a bicycle rental** which has the following tags:amenity=bicycle_rental ## Basic tags for this layer @@ -263,5 +263,20 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/layers/bicycle_rental/bicycle_rental.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bicycle_rental/bicycle_rental.json) diff --git a/Docs/Layers/bicycle_rental_non_docking.md b/Docs/Layers/bicycle_rental_non_docking.md index b7dd214b48..2b9bdfd11a 100644 --- a/Docs/Layers/bicycle_rental_non_docking.md +++ b/Docs/Layers/bicycle_rental_non_docking.md @@ -34,6 +34,7 @@ Bicycle rental stations - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -250,5 +251,20 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/themes/cyclofix/cyclofix.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/cyclofix/cyclofix.json) diff --git a/Docs/Layers/bike_cafe.md b/Docs/Layers/bike_cafe.md index a70ffe1692..9e8375d5e7 100644 --- a/Docs/Layers/bike_cafe.md +++ b/Docs/Layers/bike_cafe.md @@ -26,6 +26,7 @@ A bike café is a café geared towards cyclists, for example with services such - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -36,7 +37,7 @@ A bike café is a café geared towards cyclists, for example with services such The following options to create new points are included: -**a bike cafe** which has the following tags:amenity=pub & pub=cycling + - **a bike cafe** which has the following tags:amenity=pub & pub=cycling ## Basic tags for this layer @@ -154,5 +155,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/bike_cafe/bike_cafe.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bike_cafe/bike_cafe.json) diff --git a/Docs/Layers/bike_cleaning.md b/Docs/Layers/bike_cleaning.md index 4793fcf75b..b8d706d04a 100644 --- a/Docs/Layers/bike_cleaning.md +++ b/Docs/Layers/bike_cleaning.md @@ -29,7 +29,7 @@ A layer showing facilities where one can clean their bike The following options to create new points are included: -**a bike cleaning service** which has the following tags:amenity=bicycle_wash + - **a bike cleaning service** which has the following tags:amenity=bicycle_wash ## Basic tags for this layer diff --git a/Docs/Layers/bike_parking.md b/Docs/Layers/bike_parking.md index 59445c1ca2..4ed03e6d33 100644 --- a/Docs/Layers/bike_parking.md +++ b/Docs/Layers/bike_parking.md @@ -33,6 +33,7 @@ A layer showing where you can park your bike - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -47,7 +48,7 @@ A layer showing where you can park your bike The following options to create new points are included: -**a bike parking** which has the following tags:amenity=bicycle_parking + - **a bike parking** which has the following tags:amenity=bicycle_parking ## Basic tags for this layer @@ -61,7 +62,7 @@ Elements must match the expression ** [bicycle_parking](https://wiki.openstreetmap.org/wiki/Key:bicycle_parking) | [string](../SpecialInputElements.md#string) | [stands](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dstands) [wall_loops](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dwall_loops) [handlebar_holder](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dhandlebar_holder) [rack](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Drack) [two_tier](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dtwo_tier) [shed](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dshed) [bollard](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dbollard) [floor](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dfloor) [lockers](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dlockers) | +| [bicycle_parking](https://wiki.openstreetmap.org/wiki/Key:bicycle_parking) | [string](../SpecialInputElements.md#string) | [stands](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dstands) [safe_loops](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dsafe_loops) [wall_loops](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dwall_loops) [handlebar_holder](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dhandlebar_holder) [rack](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Drack) [two_tier](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dtwo_tier) [shed](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dshed) [bollard](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dbollard) [floor](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dfloor) [lockers](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dlockers) | | [location](https://wiki.openstreetmap.org/wiki/Key:location) | Multiple choice | [underground](https://wiki.openstreetmap.org/wiki/Tag:location%3Dunderground) [surface](https://wiki.openstreetmap.org/wiki/Tag:location%3Dsurface) [rooftop](https://wiki.openstreetmap.org/wiki/Tag:location%3Drooftop) | | [covered](https://wiki.openstreetmap.org/wiki/Key:covered) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:covered%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:covered%3Dno) | | [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [nat](../SpecialInputElements.md#nat) | | @@ -88,6 +89,7 @@ The question is `What is the type of this bicycle parking?` *This is a bicycle parking of the type: {bicycle_parking}* is shown if `bicycle_parking` is set - *Stands* is shown if with bicycle_parking=stands + - *Rack with side loops* is shown if with bicycle_parking=safe_loops - *Wheelbenders / rack* is shown if with bicycle_parking=wall_loops - *Handlebar holder* is shown if with bicycle_parking=handlebar_holder - *Rack* is shown if with bicycle_parking=rack @@ -221,5 +223,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/bike_parking/bike_parking.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bike_parking/bike_parking.json) diff --git a/Docs/Layers/bike_repair_station.md b/Docs/Layers/bike_repair_station.md index 0df6f65859..973cff0fdb 100644 --- a/Docs/Layers/bike_repair_station.md +++ b/Docs/Layers/bike_repair_station.md @@ -33,6 +33,7 @@ A layer showing bicycle pumps and bicycle repair tool stands - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -46,11 +47,9 @@ A layer showing bicycle pumps and bicycle repair tool stands The following options to create new points are included: -**a bike pump** which has the following tags:amenity=bicycle_repair_station & service:bicycle:tools=no & service:bicycle:pump=yes - -**a bike repair station and pump** which has the following tags:amenity=bicycle_repair_station & service:bicycle:tools=yes & service:bicycle:pump=yes - -**a bike repair station without pump** which has the following tags:amenity=bicycle_repair_station & service:bicycle:tools=yes & service:bicycle:pump=no + - **a bike pump** which has the following tags:amenity=bicycle_repair_station & service:bicycle:tools=no & service:bicycle:pump=yes + - **a bike repair station and pump** which has the following tags:amenity=bicycle_repair_station & service:bicycle:tools=yes & service:bicycle:pump=yes + - **a bike repair station without pump** which has the following tags:amenity=bicycle_repair_station & service:bicycle:tools=yes & service:bicycle:pump=no ## Basic tags for this layer @@ -245,5 +244,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/bike_repair_station/bike_repair_station.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bike_repair_station/bike_repair_station.json) diff --git a/Docs/Layers/bike_shop.md b/Docs/Layers/bike_shop.md index 14e912e0b9..0d8bff4a74 100644 --- a/Docs/Layers/bike_shop.md +++ b/Docs/Layers/bike_shop.md @@ -9,8 +9,9 @@ A shop specifically selling bicycles or related items ## Table of contents 1. [Themes using this layer](#themes-using-this-layer) -2. [Basic tags for this layer](#basic-tags-for-this-layer) -3. [Supported attributes](#supported-attributes) +2. [Presets](#presets) +3. [Basic tags for this layer](#basic-tags-for-this-layer) +4. [Supported attributes](#supported-attributes) - [images](#images) - [reviews](#reviews) - [shops-name](#shops-name) @@ -56,13 +57,19 @@ A shop specifically selling bicycles or related items - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) -4. [Filters](#filters) +5. [Filters](#filters) ## Themes using this layer - [cyclofix](https://mapcomplete.org/cyclofix) - [personal](https://mapcomplete.org/personal) +## Presets + +The following options to create new points are included: + + - **a bike repair/shop** which has the following tags:shop=bicycle + ## Basic tags for this layer Elements must match **any** of the following expressions: @@ -300,6 +307,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -587,7 +597,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired - - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -706,30 +716,6 @@ This tagrendering has labels -----|-----|----- | | open_now.0 | Open now | _isOpen=yes | -| id | question | osmTags | ------|-----|----- | -| accepts_cash.0 | Accepts cash | payment:cash=yes | - -| id | question | osmTags | ------|-----|----- | -| accepts_cards.0 | Accepts payment cards | payment:cards=yes | - -| id | question | osmTags | ------|-----|----- | -| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | - -| id | question | osmTags | ------|-----|----- | -| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | - -| id | question | osmTags | ------|-----|----- | -| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | - -| id | question | osmTags | ------|-----|----- | -| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | - This document is autogenerated from [assets/layers/bike_shop/bike_shop.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bike_shop/bike_shop.json) diff --git a/Docs/Layers/bike_themed_object.md b/Docs/Layers/bike_themed_object.md index 659f5a2e41..7cf5bdb6cf 100644 --- a/Docs/Layers/bike_themed_object.md +++ b/Docs/Layers/bike_themed_object.md @@ -20,6 +20,7 @@ A layer with bike-themed objects but who don't match any other layer - [Opening hours](#opening-hours) - [leftover-questions](#leftover-questions) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -115,5 +116,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/bike_themed_object/bike_themed_object.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/bike_themed_object/bike_themed_object.json) diff --git a/Docs/Layers/binocular.md b/Docs/Layers/binocular.md index e8f4268993..cbb8a48305 100644 --- a/Docs/Layers/binocular.md +++ b/Docs/Layers/binocular.md @@ -30,7 +30,7 @@ Binoculars The following options to create new points are included: -**a binocular** which has the following tags:amenity=binoculars + - **a binocular** which has the following tags:amenity=binoculars ## Basic tags for this layer diff --git a/Docs/Layers/birdhide.md b/Docs/Layers/birdhide.md index 3ad6ece079..a06143994d 100644 --- a/Docs/Layers/birdhide.md +++ b/Docs/Layers/birdhide.md @@ -31,9 +31,8 @@ A birdhide The following options to create new points are included: -**a birdhide** which has the following tags:leisure=bird_hide & building=yes & shelter=yes & amenity=shelter - -**a bird blind** which has the following tags:leisure=bird_hide & building=no & shelter=no + - **a birdhide** which has the following tags:leisure=bird_hide & building=yes & shelter=yes & amenity=shelter + - **a bird blind** which has the following tags:leisure=bird_hide & building=no & shelter=no ## Basic tags for this layer diff --git a/Docs/Layers/brothel.md b/Docs/Layers/brothel.md index dd0338c61c..4b01042701 100644 --- a/Docs/Layers/brothel.md +++ b/Docs/Layers/brothel.md @@ -24,6 +24,7 @@ An establishment specifically dedicated to prostitution. - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -33,7 +34,7 @@ An establishment specifically dedicated to prostitution. The following options to create new points are included: -**a brothel** which has the following tags:amenity=brothel + - **a brothel** which has the following tags:amenity=brothel ## Basic tags for this layer @@ -129,5 +130,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/brothel/brothel.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/brothel/brothel.json) diff --git a/Docs/Layers/cafe_pub.md b/Docs/Layers/cafe_pub.md index 40a047d1e0..e28effae91 100644 --- a/Docs/Layers/cafe_pub.md +++ b/Docs/Layers/cafe_pub.md @@ -48,13 +48,10 @@ A layer showing cafés and pubs where one can gather around a drink. The layer a The following options to create new points are included: -**a pub** which has the following tags:amenity=pub - -**a bar** which has the following tags:amenity=bar - -**a cafe** which has the following tags:amenity=cafe - -**a nightclub or disco** which has the following tags:amenity=nightclub + - **a pub** which has the following tags:amenity=pub + - **a bar** which has the following tags:amenity=bar + - **a cafe** which has the following tags:amenity=cafe + - **a nightclub or disco** which has the following tags:amenity=nightclub ## Basic tags for this layer @@ -85,7 +82,7 @@ Elements must match **any** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -224,6 +221,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` diff --git a/Docs/Layers/car_rental.md b/Docs/Layers/car_rental.md index 763b0ea883..768dfd3b58 100644 --- a/Docs/Layers/car_rental.md +++ b/Docs/Layers/car_rental.md @@ -32,7 +32,7 @@ Places where you can rent a car The following options to create new points are included: -**a car rental** which has the following tags:amenity=car_rental + - **a car rental** which has the following tags:amenity=car_rental ## Basic tags for this layer diff --git a/Docs/Layers/caravansites.md b/Docs/Layers/caravansites.md index 3f6d163395..78991c33ac 100644 --- a/Docs/Layers/caravansites.md +++ b/Docs/Layers/caravansites.md @@ -9,8 +9,9 @@ camper sites ## Table of contents 1. [Themes using this layer](#themes-using-this-layer) -2. [Basic tags for this layer](#basic-tags-for-this-layer) -3. [Supported attributes](#supported-attributes) +2. [Presets](#presets) +3. [Basic tags for this layer](#basic-tags-for-this-layer) +4. [Supported attributes](#supported-attributes) - [images](#images) - [caravansites-name](#caravansites-name) - [caravansites-fee](#caravansites-fee) @@ -33,6 +34,12 @@ camper sites - [campersite](https://mapcomplete.org/campersite) - [personal](https://mapcomplete.org/personal) +## Presets + +The following options to create new points are included: + + - **a camper site** which has the following tags:tourism=caravan_site + ## Basic tags for this layer Elements must match **all** of the following expressions: diff --git a/Docs/Layers/charging_station.md b/Docs/Layers/charging_station.md index 81ee3542cc..49c4f42cbc 100644 --- a/Docs/Layers/charging_station.md +++ b/Docs/Layers/charging_station.md @@ -139,9 +139,8 @@ A charging station The following options to create new points are included: -**charging station for electrical bikes** which has the following tags:amenity=charging_station & motorcar=no & bicycle=yes - -**charging station for cars** which has the following tags:amenity=charging_station & motorcar=yes & bicycle=no + - **charging station for electrical bikes** which has the following tags:amenity=charging_station & motorcar=no & bicycle=yes + - **charging station for cars** which has the following tags:amenity=charging_station & motorcar=yes & bicycle=no ## Basic tags for this layer diff --git a/Docs/Layers/charging_station_ebikes.md b/Docs/Layers/charging_station_ebikes.md index f601d13bd9..54325ea57d 100644 --- a/Docs/Layers/charging_station_ebikes.md +++ b/Docs/Layers/charging_station_ebikes.md @@ -126,6 +126,7 @@ A charging station - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -1365,5 +1366,20 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/themes/cyclofix/cyclofix.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/cyclofix/cyclofix.json) diff --git a/Docs/Layers/climbing_area.md b/Docs/Layers/climbing_area.md index d487e14d17..9f7b9d5c64 100644 --- a/Docs/Layers/climbing_area.md +++ b/Docs/Layers/climbing_area.md @@ -40,7 +40,7 @@ An area where climbing is possible, e.g. a crag, site, boulder, … Contains agg The following options to create new points are included: -**a climbing opportunity** which has the following tags:sport=climbing + - **a climbing opportunity** which has the following tags:sport=climbing ## Basic tags for this layer diff --git a/Docs/Layers/climbing_club.md b/Docs/Layers/climbing_club.md index 459974dc2c..1a1f04aab8 100644 --- a/Docs/Layers/climbing_club.md +++ b/Docs/Layers/climbing_club.md @@ -21,6 +21,7 @@ A climbing club or organisation - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -31,9 +32,8 @@ A climbing club or organisation The following options to create new points are included: -**a climbing club** which has the following tags:club=sport & sport=climbing - -**a climbing ngo** which has the following tags:office=ngo & sport=climbing + - **a climbing club** which has the following tags:club=sport & sport=climbing + - **a climbing ngo** which has the following tags:office=ngo & sport=climbing ## Basic tags for this layer @@ -117,5 +117,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/climbing_club/climbing_club.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/climbing_club/climbing_club.json) diff --git a/Docs/Layers/climbing_gym.md b/Docs/Layers/climbing_gym.md index 852c3ea9f1..fe3ac70c8a 100644 --- a/Docs/Layers/climbing_gym.md +++ b/Docs/Layers/climbing_gym.md @@ -41,6 +41,7 @@ A climbing gym - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -51,7 +52,7 @@ A climbing gym The following options to create new points are included: -**Climbing gym** which has the following tags:leisure=sports_centre & sport=climbing + - **Climbing gym** which has the following tags:leisure=sports_centre & sport=climbing ## Basic tags for this layer @@ -86,7 +87,7 @@ Elements must match **all** of the following expressions: | [climbing:bolts:max](https://wiki.openstreetmap.org/wiki/Key:climbing:bolts:max) | [pnat](../SpecialInputElements.md#pnat) | | | [climbing:speed](https://wiki.openstreetmap.org/wiki/Key:climbing:speed) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:climbing:speed%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:climbing:speed%3Dno) | | [shower](https://wiki.openstreetmap.org/wiki/Key:shower) | Multiple choice | [hot](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dhot) [cold](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dcold) [yes](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:shower%3Dno) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -269,6 +270,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -314,5 +316,24 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | + + This document is autogenerated from [assets/layers/climbing_gym/climbing_gym.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/climbing_gym/climbing_gym.json) diff --git a/Docs/Layers/climbing_route.md b/Docs/Layers/climbing_route.md index 20370ddd7b..5eb5d803c2 100644 --- a/Docs/Layers/climbing_route.md +++ b/Docs/Layers/climbing_route.md @@ -34,7 +34,7 @@ A single climbing route and its properties. Some properties are derived from the The following options to create new points are included: -**a climbing route** which has the following tags:sport=climbing & climbing=route (snaps to layers `climbing_opportunity`) + - **a climbing route** which has the following tags:sport=climbing & climbing=route (snaps to layers `climbing_opportunity`) ## Basic tags for this layer diff --git a/Docs/Layers/clock.md b/Docs/Layers/clock.md index 8dc1985e55..03bb9a4341 100644 --- a/Docs/Layers/clock.md +++ b/Docs/Layers/clock.md @@ -38,9 +38,8 @@ Layer with public clocks The following options to create new points are included: -**a clock** which has the following tags:amenity=clock - -**a wall-mounted clock** which has the following tags:amenity=clock & support=wall_mounted (snaps to layers `walls_and_buildings`) + - **a clock** which has the following tags:amenity=clock + - **a wall-mounted clock** which has the following tags:amenity=clock & support=wall_mounted (snaps to layers `walls_and_buildings`) ## Basic tags for this layer diff --git a/Docs/Layers/crossings.md b/Docs/Layers/crossings.md index 2671ed9457..b5bd109215 100644 --- a/Docs/Layers/crossings.md +++ b/Docs/Layers/crossings.md @@ -42,9 +42,8 @@ Crossings for pedestrians and cyclists The following options to create new points are included: -**a crossing** which has the following tags:highway=crossing (snaps to layers `cycleways_and_roads`) - -**a traffic signal** which has the following tags:highway=traffic_signals (snaps to layers `cycleways_and_roads`) + - **a crossing** which has the following tags:highway=crossing (snaps to layers `cycleways_and_roads`) + - **a traffic signal** which has the following tags:highway=traffic_signals (snaps to layers `cycleways_and_roads`) ## Basic tags for this layer diff --git a/Docs/Layers/crossings_no_traffic_lights.md b/Docs/Layers/crossings_no_traffic_lights.md index e14cd8f904..4149b71268 100644 --- a/Docs/Layers/crossings_no_traffic_lights.md +++ b/Docs/Layers/crossings_no_traffic_lights.md @@ -41,7 +41,7 @@ Crossings for pedestrians and cyclists The following options to create new points are included: -**a crossing** which has the following tags:highway=crossing (snaps to layers `cycleways_and_roads`) + - **a crossing** which has the following tags:highway=crossing (snaps to layers `cycleways_and_roads`) ## Basic tags for this layer diff --git a/Docs/Layers/defibrillator.md b/Docs/Layers/defibrillator.md index c013e21d78..4a7c12c069 100644 --- a/Docs/Layers/defibrillator.md +++ b/Docs/Layers/defibrillator.md @@ -39,15 +39,15 @@ A layer showing defibrillators which can be used in case of emergency. This cont ## Themes using this layer - [aed](https://mapcomplete.org/aed) + - [disaster_response](https://mapcomplete.org/disaster_response) - [personal](https://mapcomplete.org/personal) ## Presets The following options to create new points are included: -**a defibrillator** which has the following tags:emergency=defibrillator - -**a defibrillator mounted on a wall** which has the following tags:emergency=defibrillator (snaps to layers `walls_and_buildings`) + - **a defibrillator** which has the following tags:emergency=defibrillator + - **a defibrillator mounted on a wall** which has the following tags:emergency=defibrillator (snaps to layers `walls_and_buildings`) ## Basic tags for this layer diff --git a/Docs/Layers/dentist.md b/Docs/Layers/dentist.md index 674e871ca4..401003dfd1 100644 --- a/Docs/Layers/dentist.md +++ b/Docs/Layers/dentist.md @@ -34,7 +34,7 @@ This layer shows dentist offices The following options to create new points are included: -**a dentists office** which has the following tags:amenity=dentist + - **a dentists office** which has the following tags:amenity=dentist ## Basic tags for this layer diff --git a/Docs/Layers/disaster_response.md b/Docs/Layers/disaster_response.md index f2cfa09e5d..5afef953c8 100644 --- a/Docs/Layers/disaster_response.md +++ b/Docs/Layers/disaster_response.md @@ -28,7 +28,7 @@ This layer contains organizations that have the main objective to help the civil The following options to create new points are included: -**a disaster response organization** which has the following tags:emergency=disaster_response + - **a disaster response organization** which has the following tags:emergency=disaster_response ## Basic tags for this layer diff --git a/Docs/Layers/doctors.md b/Docs/Layers/doctors.md index 792566c747..6cb4082a90 100644 --- a/Docs/Layers/doctors.md +++ b/Docs/Layers/doctors.md @@ -28,6 +28,7 @@ This layer shows doctor offices ## Themes using this layer + - [disaster_response](https://mapcomplete.org/disaster_response) - [healthcare](https://mapcomplete.org/healthcare) - [onwheels](https://mapcomplete.org/onwheels) - [personal](https://mapcomplete.org/personal) @@ -36,7 +37,7 @@ This layer shows doctor offices The following options to create new points are included: -**a doctors office** which has the following tags:amenity=doctors + - **a doctors office** which has the following tags:amenity=doctors ## Basic tags for this layer diff --git a/Docs/Layers/dogfoodb.md b/Docs/Layers/dogfoodb.md index 52c549709f..fa2b8dd09f 100644 --- a/Docs/Layers/dogfoodb.md +++ b/Docs/Layers/dogfoodb.md @@ -84,7 +84,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -104,7 +104,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -213,21 +213,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -426,6 +430,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -534,6 +539,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Layers/dogpark.md b/Docs/Layers/dogpark.md index 49d1c565d7..4d18685801 100644 --- a/Docs/Layers/dogpark.md +++ b/Docs/Layers/dogpark.md @@ -24,6 +24,7 @@ A layer showing dogparks, which are areas where dog are allowed to run without a - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -34,7 +35,7 @@ A layer showing dogparks, which are areas where dog are allowed to run without a The following options to create new points are included: -**a dog park** which has the following tags:leisure=dog_park + - **a dog park** which has the following tags:leisure=dog_park ## Basic tags for this layer @@ -127,5 +128,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/dogpark/dogpark.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/dogpark/dogpark.json) diff --git a/Docs/Layers/dogshop.md b/Docs/Layers/dogshop.md index f15680e027..026801f300 100644 --- a/Docs/Layers/dogshop.md +++ b/Docs/Layers/dogshop.md @@ -6,7 +6,7 @@ This layer is based on [shops](../Layers/shops.md) A shop - - This layer is shown at zoomlevel **12** and higher + - This layer is shown at zoomlevel **15** and higher ## Table of contents @@ -105,7 +105,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -299,6 +299,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -586,6 +589,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -692,18 +696,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -712,6 +704,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Layers/drinking_water.md b/Docs/Layers/drinking_water.md index b35ebf24be..ac67eab082 100644 --- a/Docs/Layers/drinking_water.md +++ b/Docs/Layers/drinking_water.md @@ -33,6 +33,7 @@ A layer showing drinking water fountains - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -48,7 +49,7 @@ A layer showing drinking water fountains The following options to create new points are included: -**a drinking water** which has the following tags:amenity=drinking_water + - **a drinking water** which has the following tags:amenity=drinking_water ## Basic tags for this layer @@ -88,9 +89,10 @@ _This tagrendering has no question and is thus read-only_ The question is `Is this drinking water spot still operational?` *The operational status is {operational_status}* is shown if `operational_status` is set - - *This drinking water works* is shown if with operational_status= + - *This drinking water works* is shown if with operational_status= & disused:amenity= - *This drinking water is broken* is shown if with operational_status=broken - *This drinking water is closed* is shown if with operational_status=closed + - *This drinking water is permanently closed* is shown if with disused:amenity=drinking_water ### type @@ -228,5 +230,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/drinking_water/drinking_water.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/drinking_water/drinking_water.json) diff --git a/Docs/Layers/dumpstations.md b/Docs/Layers/dumpstations.md index 9e02d0f0b5..f5427792ca 100644 --- a/Docs/Layers/dumpstations.md +++ b/Docs/Layers/dumpstations.md @@ -9,8 +9,9 @@ Sanitary dump stations ## Table of contents 1. [Themes using this layer](#themes-using-this-layer) -2. [Basic tags for this layer](#basic-tags-for-this-layer) -3. [Supported attributes](#supported-attributes) +2. [Presets](#presets) +3. [Basic tags for this layer](#basic-tags-for-this-layer) +4. [Supported attributes](#supported-attributes) - [images](#images) - [dumpstations-fee](#dumpstations-fee) - [dumpstations-charge](#dumpstations-charge) @@ -28,6 +29,12 @@ Sanitary dump stations - [campersite](https://mapcomplete.org/campersite) - [personal](https://mapcomplete.org/personal) +## Presets + +The following options to create new points are included: + + - **a sanitary dump station** which has the following tags:amenity=sanitary_dump_station + ## Basic tags for this layer Elements must match **all** of the following expressions: diff --git a/Docs/Layers/elevator.md b/Docs/Layers/elevator.md index 6dbcf73dff..ef4555be0b 100644 --- a/Docs/Layers/elevator.md +++ b/Docs/Layers/elevator.md @@ -41,7 +41,7 @@ This layer show elevators and asks for operational status and elevator dimension The following options to create new points are included: -**an elevator** which has the following tags:highway=elevator + - **an elevator** which has the following tags:highway=elevator ## Basic tags for this layer diff --git a/Docs/Layers/elongated_coin.md b/Docs/Layers/elongated_coin.md index 26effa57db..bc53c3ed05 100644 --- a/Docs/Layers/elongated_coin.md +++ b/Docs/Layers/elongated_coin.md @@ -42,7 +42,7 @@ Layer showing penny presses. The following options to create new points are included: -**a penny press** which has the following tags:amenity=vending_machine & vending=elongated_coin & payment:coins=yes + - **a penny press** which has the following tags:amenity=vending_machine & vending=elongated_coin & payment:coins=yes ## Basic tags for this layer diff --git a/Docs/Layers/entrance.md b/Docs/Layers/entrance.md index 413228300a..0c56121f86 100644 --- a/Docs/Layers/entrance.md +++ b/Docs/Layers/entrance.md @@ -40,9 +40,8 @@ A layer showing entrances and offering capabilities to survey some advanced data The following options to create new points are included: -**an entrance** which has the following tags:entrance=yes (snaps to layers `walls_and_buildings`, `pedestrian_path`) - -**an indoor door** which has the following tags:indoor=door (snaps to layers `indoors`) + - **an entrance** which has the following tags:entrance=yes (snaps to layers `walls_and_buildings`, `pedestrian_path`) + - **an indoor door** which has the following tags:indoor=door (snaps to layers `indoors`) ## Basic tags for this layer diff --git a/Docs/Layers/extinguisher.md b/Docs/Layers/extinguisher.md index ec492ca772..a67e0215b4 100644 --- a/Docs/Layers/extinguisher.md +++ b/Docs/Layers/extinguisher.md @@ -20,6 +20,7 @@ Map layer to show fire extinguishers. ## Themes using this layer + - [disaster_response](https://mapcomplete.org/disaster_response) - [hailhydrant](https://mapcomplete.org/hailhydrant) - [personal](https://mapcomplete.org/personal) @@ -27,7 +28,7 @@ Map layer to show fire extinguishers. The following options to create new points are included: -**a fire extinguisher** which has the following tags:emergency=fire_extinguisher + - **a fire extinguisher** which has the following tags:emergency=fire_extinguisher ## Basic tags for this layer diff --git a/Docs/Layers/facadegardens.md b/Docs/Layers/facadegardens.md index fd518ac486..6c45bcd836 100644 --- a/Docs/Layers/facadegardens.md +++ b/Docs/Layers/facadegardens.md @@ -34,7 +34,7 @@ Facade gardens The following options to create new points are included: -**a facade garden** which has the following tags:leisure=garden & garden:type=facade_garden (snaps to layers `walls_and_buildings`) + - **a facade garden** which has the following tags:leisure=garden & garden:type=facade_garden (snaps to layers `walls_and_buildings`) ## Basic tags for this layer diff --git a/Docs/Layers/fire_station.md b/Docs/Layers/fire_station.md index b50000d75b..5ba0f31dda 100644 --- a/Docs/Layers/fire_station.md +++ b/Docs/Layers/fire_station.md @@ -24,6 +24,7 @@ Map layer to show fire stations. ## Themes using this layer + - [disaster_response](https://mapcomplete.org/disaster_response) - [hailhydrant](https://mapcomplete.org/hailhydrant) - [personal](https://mapcomplete.org/personal) @@ -31,7 +32,7 @@ Map layer to show fire stations. The following options to create new points are included: -**a fire station** which has the following tags:amenity=fire_station + - **a fire station** which has the following tags:amenity=fire_station ## Basic tags for this layer diff --git a/Docs/Layers/firepit.md b/Docs/Layers/firepit.md index 2273a62740..68c6fcb237 100644 --- a/Docs/Layers/firepit.md +++ b/Docs/Layers/firepit.md @@ -30,7 +30,7 @@ An outdoor place to make a fire, typically open to the public. The following options to create new points are included: -**Firepit** which has the following tags:leisure=firepit + - **Firepit** which has the following tags:leisure=firepit ## Basic tags for this layer diff --git a/Docs/Layers/fitness_centre.md b/Docs/Layers/fitness_centre.md index e0f258ac18..9daf0d19d3 100644 --- a/Docs/Layers/fitness_centre.md +++ b/Docs/Layers/fitness_centre.md @@ -37,7 +37,7 @@ Layer showing fitness centres The following options to create new points are included: -**a fitness centre** which has the following tags:leisure=fitness_centre + - **a fitness centre** which has the following tags:leisure=fitness_centre ## Basic tags for this layer diff --git a/Docs/Layers/fitness_station.md b/Docs/Layers/fitness_station.md index cc35e3b37f..bc5725acf9 100644 --- a/Docs/Layers/fitness_station.md +++ b/Docs/Layers/fitness_station.md @@ -32,7 +32,7 @@ Find a fitness station near you, and add missing ones. The following options to create new points are included: -**a fitness station** which has the following tags:leisure=fitness_station & sport=fitness + - **a fitness station** which has the following tags:leisure=fitness_station & sport=fitness ## Basic tags for this layer diff --git a/Docs/Layers/food.md b/Docs/Layers/food.md index 667b4e3bfb..c81387bc17 100644 --- a/Docs/Layers/food.md +++ b/Docs/Layers/food.md @@ -72,11 +72,9 @@ A layer showing restaurants and fast-food amenities (with a special rendering fo The following options to create new points are included: -**a restaurant** which has the following tags:amenity=restaurant - -**a fastfood** which has the following tags:amenity=fast_food - -**a fries shop** which has the following tags:amenity=fast_food & cuisine=friture + - **a restaurant** which has the following tags:amenity=restaurant + - **a fastfood** which has the following tags:amenity=fast_food + - **a fries shop** which has the following tags:amenity=fast_food & cuisine=friture ## Basic tags for this layer @@ -101,7 +99,7 @@ Elements must match **any** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -121,7 +119,7 @@ Elements must match **any** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -230,21 +228,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -443,6 +445,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -551,6 +554,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Layers/food_courts.md b/Docs/Layers/food_courts.md index 21a1206c62..0f7d418d63 100644 --- a/Docs/Layers/food_courts.md +++ b/Docs/Layers/food_courts.md @@ -23,6 +23,7 @@ Food courts with a variety of food options. - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -126,5 +127,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/food_courts/food_courts.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/food_courts/food_courts.json) diff --git a/Docs/Layers/food_glutenfree.md b/Docs/Layers/food_glutenfree.md index 1cddd2c7ca..d632f82d0d 100644 --- a/Docs/Layers/food_glutenfree.md +++ b/Docs/Layers/food_glutenfree.md @@ -86,7 +86,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -105,7 +105,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -226,21 +226,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -427,6 +431,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -535,6 +540,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Layers/food_lactosefree.md b/Docs/Layers/food_lactosefree.md index 2b7e34b1dc..f6ac96d20f 100644 --- a/Docs/Layers/food_lactosefree.md +++ b/Docs/Layers/food_lactosefree.md @@ -86,7 +86,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -105,7 +105,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -226,21 +226,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -427,6 +431,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -535,6 +540,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Layers/friture.md b/Docs/Layers/friture.md index 71869bb3eb..9b2160aee9 100644 --- a/Docs/Layers/friture.md +++ b/Docs/Layers/friture.md @@ -84,7 +84,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -104,7 +104,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -213,21 +213,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -426,6 +430,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -534,6 +539,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Layers/ghost_bike.md b/Docs/Layers/ghost_bike.md index 0517278396..9e53460b17 100644 --- a/Docs/Layers/ghost_bike.md +++ b/Docs/Layers/ghost_bike.md @@ -35,7 +35,7 @@ A layer showing memorials for cyclists, killed in road accidents The following options to create new points are included: -**a ghost bike** which has the following tags:historic=memorial & memorial=ghost_bike + - **a ghost bike** which has the following tags:historic=memorial & memorial=ghost_bike ## Basic tags for this layer diff --git a/Docs/Layers/ghostsign.md b/Docs/Layers/ghostsign.md new file mode 100644 index 0000000000..2702f6048e --- /dev/null +++ b/Docs/Layers/ghostsign.md @@ -0,0 +1,116 @@ +[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources) + +# ghostsign + +Layer showing disused signs on buildings + + - This layer is shown at zoomlevel **10** and higher + - This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a ghost sign` snaps to this layer (ghostsign.presets[0]) + +## Table of contents + +1. [Themes using this layer](#themes-using-this-layer) +2. [Presets](#presets) +3. [Basic tags for this layer](#basic-tags-for-this-layer) +4. [Supported attributes](#supported-attributes) + - [images](#images) + - [historic](#historic) + - [type](#type) + - [inscription](#inscription) + - [brand](#brand) + - [leftover-questions](#leftover-questions) + - [move-button](#move-button) + - [lod](#lod) + +## Themes using this layer + + - [ghostsigns](https://mapcomplete.org/ghostsigns) + - [personal](https://mapcomplete.org/personal) + +## Presets + +The following options to create new points are included: + + - **a ghost sign** which has the following tags:historic=advertising & advertising=wall_painting (snaps to layers `walls_and_buildings`) + +## Basic tags for this layer + +Elements must match **all** of the following expressions: + +0. advertising~.+ +1. historic~.+ + +[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22advertising%22%5D%5B%22historic%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) + +## Supported attributes + +**Warning:**,this quick overview is incomplete, + +| attribute | type | values which are supported by this layer | +-----|-----|----- | +| [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | +| [advertising](https://wiki.openstreetmap.org/wiki/Key:advertising) | [string](../SpecialInputElements.md#string) | [billboard](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dbillboard) [board](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dboard) [column](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dcolumn) [flag](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dflag) [poster_box](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dposter_box) [screen](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dscreen) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsculpture) [sign](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsign) [tarp](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtarp) [totem](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtotem) [wall_painting](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dwall_painting) [tilework](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtilework) [relief](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Drelief) | +| [inscription](https://wiki.openstreetmap.org/wiki/Key:inscription) | [text](../SpecialInputElements.md#text) | | +| [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | | + +### images +This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images +_This tagrendering has no question and is thus read-only_ +*{image_carousel()}{image_upload()}* + +### historic + +The question is `Is this sign for a business that no longer exists or no longer being maintained?` + + - *This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)* is shown if with historic=advertising + - *This advertisement sign has no historic value (the business still exists and has no heritage value)* is shown if with historic= + +### type + +The question is `Which type of advertising feature is this?` +*This is a {advertising}* is shown if `advertising` is set + + - *This is a billboard* is shown if with advertising=billboard + - *This is a board* is shown if with advertising=board + - *This is a column* is shown if with advertising=column + - *This is a flag* is shown if with advertising=flag + - *This is a poster Box* is shown if with advertising=poster_box + - *This is a screen* is shown if with advertising=screen + - *This is a sculpture* is shown if with advertising=sculpture + - *This is a sign* is shown if with advertising=sign + - *This is a tarp (a weatherproof piece of textile with an advertising message)* is shown if with advertising=tarp + - *This is a totem* is shown if with advertising=totem + - *This is a wall painting* is shown if with advertising=wall_painting + - *This is tilework - the advertisement is painted on tiles* is shown if with advertising=tilework + - *This is a relief* is shown if with advertising=relief + +### inscription + +The question is `What is the text on the sign?` +*The text on the sign is: {inscription}* is shown if `inscription` is set + +### brand + +The question is `For what business was this sign made?` +*This sign was made for: {brand}* is shown if `brand` is set + +### leftover-questions + +_This tagrendering has no question and is thus read-only_ +*{questions( ,)}* + +### move-button + +_This tagrendering has no question and is thus read-only_ +*{move_button()}* + +### lod + +_This tagrendering has no question and is thus read-only_ +*{linked_data_from_website()}* + +This tagrendering has labels +`added_by_default` + + +This document is autogenerated from [assets/layers/ghostsign/ghostsign.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/ghostsign/ghostsign.json) diff --git a/Docs/Layers/ghostsigns.md b/Docs/Layers/ghostsigns.md deleted file mode 100644 index b760c08616..0000000000 --- a/Docs/Layers/ghostsigns.md +++ /dev/null @@ -1,96 +0,0 @@ -[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources) - -# ghostsigns - -Layer showing disused signs on buildings - - - This layer is shown at zoomlevel **10** and higher - - This layer will automatically load [walls_and_buildings](./walls_and_buildings.md) into the layout as it depends on it: preset `a ghost sign` snaps to this layer (ghostsigns.presets[0]) - -## Table of contents - -1. [Themes using this layer](#themes-using-this-layer) -2. [Presets](#presets) -3. [Basic tags for this layer](#basic-tags-for-this-layer) -4. [Supported attributes](#supported-attributes) - - [historic](#historic) - - [images](#images) - - [name](#name) - - [inscription](#inscription) - - [brand](#brand) - - [leftover-questions](#leftover-questions) - - [lod](#lod) - -## Themes using this layer - - - [ghostsigns](https://mapcomplete.org/ghostsigns) - -## Presets - -The following options to create new points are included: - -**a ghost sign** which has the following tags:historic=advertising & advertising=wall_painting (snaps to layers `walls_and_buildings`) - -## Basic tags for this layer - -Elements must match **all** of the following expressions: - -0. advertising=wall_painting -1. historic~.+ - -[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22advertising%22%3D%22wall_painting%22%5D%5B%22historic%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) - -## Supported attributes - -**Warning:**,this quick overview is incomplete, - -| attribute | type | values which are supported by this layer | ------|-----|----- | -| [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | -| [inscription](https://wiki.openstreetmap.org/wiki/Key:inscription) | [text](../SpecialInputElements.md#text) | | -| [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | | - -### historic - -The question is `Is this a ghost sign?` - - - *This is a ghost sign* is shown if with historic=advertising - - *This is not a ghost sign, answering this will hide the sign from the map* is shown if with historic= - -### images -This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images -_This tagrendering has no question and is thus read-only_ -*{image_carousel()}{image_upload()}* - -### name - -_This tagrendering has no question and is thus read-only_ -*{name}* - -This tagrendering is only visible in the popup if the following condition is met: name~.+ - -### inscription - -The question is `What is the text on the sign?` -*The text on the sign is: {inscription}* is shown if `inscription` is set - -### brand - -The question is `For what business was this sign made?` -*This sign was made for: {brand}* is shown if `brand` is set - -### leftover-questions - -_This tagrendering has no question and is thus read-only_ -*{questions( ,)}* - -### lod - -_This tagrendering has no question and is thus read-only_ -*{linked_data_from_website()}* - -This tagrendering has labels -`added_by_default` - - -This document is autogenerated from [assets/themes/ghostsigns/ghostsigns.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ghostsigns/ghostsigns.json) diff --git a/Docs/Layers/governments.md b/Docs/Layers/governments.md index b8f9d5f7c6..ed9f8341ca 100644 --- a/Docs/Layers/governments.md +++ b/Docs/Layers/governments.md @@ -30,7 +30,7 @@ This layer show governmental buildings. It was setup as commissioned layer for t The following options to create new points are included: -**a Governmental Office** which has the following tags:office=government + - **a Governmental Office** which has the following tags:office=government ## Basic tags for this layer diff --git a/Docs/Layers/grave.md b/Docs/Layers/grave.md index 5aca473c63..b14de1d39e 100644 --- a/Docs/Layers/grave.md +++ b/Docs/Layers/grave.md @@ -29,7 +29,7 @@ Tombstones (and graves) indicate where a person was buried. On this map, those c The following options to create new points are included: -**a tombstone** which has the following tags:historic=tomb + - **a tombstone** which has the following tags:historic=tomb ## Basic tags for this layer diff --git a/Docs/Layers/guidepost.md b/Docs/Layers/guidepost.md index 31b815e6d5..c385e9c69b 100644 --- a/Docs/Layers/guidepost.md +++ b/Docs/Layers/guidepost.md @@ -31,7 +31,7 @@ Guideposts (also known as fingerposts or finger posts) are often found along off The following options to create new points are included: -**a guidepost** which has the following tags:information=guidepost & tourism=information + - **a guidepost** which has the following tags:information=guidepost & tourism=information ## Basic tags for this layer diff --git a/Docs/Layers/hackerspace.md b/Docs/Layers/hackerspace.md index 62089b2a49..32613d2fa6 100644 --- a/Docs/Layers/hackerspace.md +++ b/Docs/Layers/hackerspace.md @@ -43,6 +43,7 @@ Hackerspace - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -53,9 +54,8 @@ Hackerspace The following options to create new points are included: -**a hackerspace** which has the following tags:leisure=hackerspace - -**a makerspace** which has the following tags:leisure=hackerspace & hackerspace=makerspace + - **a hackerspace** which has the following tags:leisure=hackerspace + - **a makerspace** which has the following tags:leisure=hackerspace & hackerspace=makerspace ## Basic tags for this layer @@ -69,7 +69,7 @@ Elements must match the expression ** [hackerspace](https://wiki.openstreetmap.org/wiki/Key:hackerspace) | Multiple choice | [makerspace](https://wiki.openstreetmap.org/wiki/Tag:hackerspace%3Dmakerspace) [](https://wiki.openstreetmap.org/wiki/Tag:hackerspace%3D) | +| [hackerspace](https://wiki.openstreetmap.org/wiki/Key:hackerspace) | Multiple choice | [makerspace](https://wiki.openstreetmap.org/wiki/Tag:hackerspace%3Dmakerspace) [](https://wiki.openstreetmap.org/wiki/Tag:hackerspace%3D) [hacklab](https://wiki.openstreetmap.org/wiki/Tag:hackerspace%3Dhacklab) | | [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | | @@ -89,7 +89,7 @@ Elements must match the expression ** [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | | [drink:club-mate](https://wiki.openstreetmap.org/wiki/Key:drink:club-mate) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:drink:club-mate%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:drink:club-mate%3Dno) | | [start_date](https://wiki.openstreetmap.org/wiki/Key:start_date) | [date](../SpecialInputElements.md#date) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -109,6 +109,7 @@ The question is `Is this a hackerspace or a makerspace?` - *This is a makerspace* is shown if with hackerspace=makerspace - *This is a traditional (software oriented) hackerspace* is shown if with hackerspace= + - *This is a hacklab which is mostly focussed on basic computer skills, using recycled devices and/or providing internet to the community. This is typically located in autonomous spaces, squats or social facilities* is shown if with hackerspace=hacklab ### hackerspaces-name @@ -284,6 +285,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -334,5 +336,16 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | + + This document is autogenerated from [assets/layers/hackerspace/hackerspace.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/hackerspace/hackerspace.json) diff --git a/Docs/Layers/hydrant.md b/Docs/Layers/hydrant.md index e820b5a157..a7b62dacbe 100644 --- a/Docs/Layers/hydrant.md +++ b/Docs/Layers/hydrant.md @@ -26,6 +26,7 @@ Map layer to show fire hydrants. ## Themes using this layer + - [disaster_response](https://mapcomplete.org/disaster_response) - [hailhydrant](https://mapcomplete.org/hailhydrant) - [personal](https://mapcomplete.org/personal) @@ -33,7 +34,7 @@ Map layer to show fire hydrants. The following options to create new points are included: -**a fire hydrant** which has the following tags:emergency=fire_hydrant + - **a fire hydrant** which has the following tags:emergency=fire_hydrant ## Basic tags for this layer diff --git a/Docs/Layers/ice_cream.md b/Docs/Layers/ice_cream.md index e27a17cb86..17e238581e 100644 --- a/Docs/Layers/ice_cream.md +++ b/Docs/Layers/ice_cream.md @@ -29,6 +29,7 @@ A place where ice cream is sold over the counter - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -43,7 +44,7 @@ A place where ice cream is sold over the counter The following options to create new points are included: -**an ice cream parlor** which has the following tags:amenity=ice_cream + - **an ice cream parlor** which has the following tags:amenity=ice_cream ## Basic tags for this layer @@ -204,5 +205,32 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/layers/ice_cream/ice_cream.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/ice_cream/ice_cream.json) diff --git a/Docs/Layers/icecream_glutenfree.md b/Docs/Layers/icecream_glutenfree.md index 586645fbb7..dac2cdd7c0 100644 --- a/Docs/Layers/icecream_glutenfree.md +++ b/Docs/Layers/icecream_glutenfree.md @@ -30,6 +30,7 @@ A place where ice cream is sold over the counter - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -198,5 +199,32 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/themes/glutenfree/glutenfree.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/glutenfree/glutenfree.json) diff --git a/Docs/Layers/icecream_lactosefree.md b/Docs/Layers/icecream_lactosefree.md index 984c3a2d04..5155623a57 100644 --- a/Docs/Layers/icecream_lactosefree.md +++ b/Docs/Layers/icecream_lactosefree.md @@ -30,6 +30,7 @@ A place where ice cream is sold over the counter - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -198,5 +199,32 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/themes/lactosefree/lactosefree.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/lactosefree/lactosefree.json) diff --git a/Docs/Layers/indoors.md b/Docs/Layers/indoors.md index a020b1995e..f39084c74b 100644 --- a/Docs/Layers/indoors.md +++ b/Docs/Layers/indoors.md @@ -37,6 +37,7 @@ Basic indoor mapping: shows room outlines - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -67,7 +68,7 @@ Elements must match **any** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) | | | [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | | -| [room](https://wiki.openstreetmap.org/wiki/Key:room) | Multiple choice | [administration](https://wiki.openstreetmap.org/wiki/Tag:room%3Dadministration) [auditorium](https://wiki.openstreetmap.org/wiki/Tag:room%3Dauditorium) [bedroom](https://wiki.openstreetmap.org/wiki/Tag:room%3Dbedroom) [chapel](https://wiki.openstreetmap.org/wiki/Tag:room%3Dchapel) [class](https://wiki.openstreetmap.org/wiki/Tag:room%3Dclass) [computer](https://wiki.openstreetmap.org/wiki/Tag:room%3Dcomputer) [conference](https://wiki.openstreetmap.org/wiki/Tag:room%3Dconference) [crypt](https://wiki.openstreetmap.org/wiki/Tag:room%3Dcrypt) [kitchen](https://wiki.openstreetmap.org/wiki/Tag:room%3Dkitchen) [laboratory](https://wiki.openstreetmap.org/wiki/Tag:room%3Dlaboratory) [library](https://wiki.openstreetmap.org/wiki/Tag:room%3Dlibrary) [locker](https://wiki.openstreetmap.org/wiki/Tag:room%3Dlocker) [nursery](https://wiki.openstreetmap.org/wiki/Tag:room%3Dnursery) [office](https://wiki.openstreetmap.org/wiki/Tag:room%3Doffice) [prison_cell](https://wiki.openstreetmap.org/wiki/Tag:room%3Dprison_cell) [restaurant](https://wiki.openstreetmap.org/wiki/Tag:room%3Drestaurant) [security_check](https://wiki.openstreetmap.org/wiki/Tag:room%3Dsecurity_check) [sport](https://wiki.openstreetmap.org/wiki/Tag:room%3Dsport) [storage](https://wiki.openstreetmap.org/wiki/Tag:room%3Dstorage) [technical](https://wiki.openstreetmap.org/wiki/Tag:room%3Dtechnical) [toilets](https://wiki.openstreetmap.org/wiki/Tag:room%3Dtoilets) [waiting](https://wiki.openstreetmap.org/wiki/Tag:room%3Dwaiting) | +| [room](https://wiki.openstreetmap.org/wiki/Key:room) | Multiple choice | [administration](https://wiki.openstreetmap.org/wiki/Tag:room%3Dadministration) [auditorium](https://wiki.openstreetmap.org/wiki/Tag:room%3Dauditorium) [bedroom](https://wiki.openstreetmap.org/wiki/Tag:room%3Dbedroom) [chapel](https://wiki.openstreetmap.org/wiki/Tag:room%3Dchapel) [class](https://wiki.openstreetmap.org/wiki/Tag:room%3Dclass) [computer](https://wiki.openstreetmap.org/wiki/Tag:room%3Dcomputer) [conference](https://wiki.openstreetmap.org/wiki/Tag:room%3Dconference) [crypt](https://wiki.openstreetmap.org/wiki/Tag:room%3Dcrypt) [kitchen](https://wiki.openstreetmap.org/wiki/Tag:room%3Dkitchen) [laboratory](https://wiki.openstreetmap.org/wiki/Tag:room%3Dlaboratory) [library](https://wiki.openstreetmap.org/wiki/Tag:room%3Dlibrary) [locker](https://wiki.openstreetmap.org/wiki/Tag:room%3Dlocker) [nursery](https://wiki.openstreetmap.org/wiki/Tag:room%3Dnursery) [office](https://wiki.openstreetmap.org/wiki/Tag:room%3Doffice) [printer](https://wiki.openstreetmap.org/wiki/Tag:room%3Dprinter) [prison_cell](https://wiki.openstreetmap.org/wiki/Tag:room%3Dprison_cell) [restaurant](https://wiki.openstreetmap.org/wiki/Tag:room%3Drestaurant) [security_check](https://wiki.openstreetmap.org/wiki/Tag:room%3Dsecurity_check) [sport](https://wiki.openstreetmap.org/wiki/Tag:room%3Dsport) [storage](https://wiki.openstreetmap.org/wiki/Tag:room%3Dstorage) [technical](https://wiki.openstreetmap.org/wiki/Tag:room%3Dtechnical) [toilets](https://wiki.openstreetmap.org/wiki/Tag:room%3Dtoilets) [waiting](https://wiki.openstreetmap.org/wiki/Tag:room%3Dwaiting) | | [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [pnat](../SpecialInputElements.md#pnat) | | | [name:etymology:wikidata](https://wiki.openstreetmap.org/wiki/Key:name:etymology:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) | | | [access](https://wiki.openstreetmap.org/wiki/Key:access) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:access%3Dyes) [customers](https://wiki.openstreetmap.org/wiki/Tag:access%3Dcustomers) [no](https://wiki.openstreetmap.org/wiki/Tag:access%3Dno) [key](https://wiki.openstreetmap.org/wiki/Tag:access%3Dkey) | @@ -143,6 +144,7 @@ The question is `What type of room is this?` - *This is a locker room* is shown if with room=locker - *This is a nursery* is shown if with room=nursery - *This is an office* is shown if with room=office + - *This is a copy room* is shown if with room=printer - *This is a prison_cell* is shown if with room=prison_cell - *This is a restaurant* is shown if with room=restaurant - *This is a room to perform security checks* is shown if with room=security_check @@ -328,5 +330,20 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/indoors/indoors.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/indoors/indoors.json) diff --git a/Docs/Layers/information_board.md b/Docs/Layers/information_board.md index 02eab60ca0..837b8e4087 100644 --- a/Docs/Layers/information_board.md +++ b/Docs/Layers/information_board.md @@ -28,7 +28,7 @@ A layer showing touristical, road side information boards (e.g. giving informati The following options to create new points are included: -**an information board** which has the following tags:tourism=information & information=board + - **an information board** which has the following tags:tourism=information & information=board ## Basic tags for this layer diff --git a/Docs/Layers/kerbs.md b/Docs/Layers/kerbs.md index 24303ce8a1..e78c6e21e5 100644 --- a/Docs/Layers/kerbs.md +++ b/Docs/Layers/kerbs.md @@ -35,7 +35,7 @@ A layer showing kerbs. The following options to create new points are included: -**a kerb** which has the following tags:barrier=kerb (snaps to layers `cycleways_and_roads`, `kerbs`) + - **a kerb** which has the following tags:barrier=kerb (snaps to layers `cycleways_and_roads`, `kerbs`) ## Basic tags for this layer diff --git a/Docs/Layers/kindergarten_childcare.md b/Docs/Layers/kindergarten_childcare.md index e17726f139..eaa254e6a5 100644 --- a/Docs/Layers/kindergarten_childcare.md +++ b/Docs/Layers/kindergarten_childcare.md @@ -24,6 +24,7 @@ Shows kindergartens and preschools. Both are grouped in one layer, as they are r - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -34,9 +35,8 @@ Shows kindergartens and preschools. Both are grouped in one layer, as they are r The following options to create new points are included: -**a kindergarten** which has the following tags:amenity=kindergarten & isced:level=0 & isced:2011:level=early_childhood - -**a childcare** which has the following tags:amenity=kindergarten + - **a kindergarten** which has the following tags:amenity=kindergarten & isced:level=0 & isced:2011:level=early_childhood + - **a childcare** which has the following tags:amenity=kindergarten ## Basic tags for this layer @@ -142,5 +142,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/kindergarten_childcare/kindergarten_childcare.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/kindergarten_childcare/kindergarten_childcare.json) diff --git a/Docs/Layers/lighthouse.md b/Docs/Layers/lighthouse.md index 55ebf271c4..7d3599c30d 100644 --- a/Docs/Layers/lighthouse.md +++ b/Docs/Layers/lighthouse.md @@ -26,7 +26,7 @@ The following options to create new points are included: -**a lighthouse** which has the following tags:man_made=lighthouse + - **a lighthouse** which has the following tags:man_made=lighthouse ## Basic tags for this layer diff --git a/Docs/Layers/love_hotel.md b/Docs/Layers/love_hotel.md index 0a1aeb1e55..be183b8e5a 100644 --- a/Docs/Layers/love_hotel.md +++ b/Docs/Layers/love_hotel.md @@ -32,7 +32,7 @@ A love hotel is a type of short-stay hotel found around the world operated prima The following options to create new points are included: -**a love hotel** which has the following tags:amenity=love_hotel + - **a love hotel** which has the following tags:amenity=love_hotel ## Basic tags for this layer diff --git a/Docs/Layers/map.md b/Docs/Layers/map.md index 8b091ecc71..cd1e8081d3 100644 --- a/Docs/Layers/map.md +++ b/Docs/Layers/map.md @@ -33,7 +33,7 @@ A map, meant for tourists which is permanently installed in the public space The following options to create new points are included: -**a map** which has the following tags:tourism=information & information=map + - **a map** which has the following tags:tourism=information & information=map ## Basic tags for this layer diff --git a/Docs/Layers/maproulette.md b/Docs/Layers/maproulette.md index 7c5523c951..d0ae6a9c26 100644 --- a/Docs/Layers/maproulette.md +++ b/Docs/Layers/maproulette.md @@ -108,11 +108,11 @@ This tagrendering has labels | id | question | osmTags | fields | -----|-----|-----|----- | -| parent-name.0 | Challenge name contains {search} | | search (string) | +| parent-name.0 | Challenge name contains {search} | | search (regex) | | id | question | osmTags | fields | -----|-----|-----|----- | -| parent-id.0 | Challenge ID matches {search} | | search (string) | +| parent-id.0 | Challenge ID matches {search} | | search (regex) | diff --git a/Docs/Layers/medical_shops.md b/Docs/Layers/medical_shops.md index a452dba155..1f905755c1 100644 --- a/Docs/Layers/medical_shops.md +++ b/Docs/Layers/medical_shops.md @@ -69,11 +69,9 @@ A shop The following options to create new points are included: -**a medical supply shop** which has the following tags:shop=medical_supply - -**a hearing aids shop** which has the following tags:shop=hearing_aids - -**an optician** which has the following tags:shop=optician + - **a medical supply shop** which has the following tags:shop=medical_supply + - **a hearing aids shop** which has the following tags:shop=hearing_aids + - **an optician** which has the following tags:shop=optician ## Basic tags for this layer @@ -116,7 +114,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -310,6 +308,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -597,6 +598,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -715,6 +717,174 @@ This tagrendering has labels -----|-----|----- | | accepts_cards.0 | Accepts payment cards | payment:cards=yes | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Layers/memorial.md b/Docs/Layers/memorial.md index 2b2ed5d71d..90d764f2c9 100644 --- a/Docs/Layers/memorial.md +++ b/Docs/Layers/memorial.md @@ -44,7 +44,7 @@ Layer showing memorial plaques, based upon a unofficial theme. Can be expanded t The following options to create new points are included: -**a memorial** which has the following tags:historic=memorial + - **a memorial** which has the following tags:historic=memorial ## Basic tags for this layer diff --git a/Docs/Layers/mountain_rescue.md b/Docs/Layers/mountain_rescue.md index 8fcfd6b495..9a0c14edf0 100644 --- a/Docs/Layers/mountain_rescue.md +++ b/Docs/Layers/mountain_rescue.md @@ -27,7 +27,7 @@ A building where first aid responders store material and might be on watch The following options to create new points are included: -**a mountain rescue station** which has the following tags:emergency=mountain_rescue + - **a mountain rescue station** which has the following tags:emergency=mountain_rescue ## Basic tags for this layer diff --git a/Docs/Layers/nature_reserve.md b/Docs/Layers/nature_reserve.md index 3bce253e29..1b275a2c6a 100644 --- a/Docs/Layers/nature_reserve.md +++ b/Docs/Layers/nature_reserve.md @@ -39,7 +39,7 @@ A nature reserve is an area where nature can take its course The following options to create new points are included: -**a nature reserve** which has the following tags:leisure=nature_reserve & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen + - **a nature reserve** which has the following tags:leisure=nature_reserve & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen ## Basic tags for this layer diff --git a/Docs/Layers/note.md b/Docs/Layers/note.md index e645c57cd2..5146e9582d 100644 --- a/Docs/Layers/note.md +++ b/Docs/Layers/note.md @@ -4,7 +4,7 @@ This layer shows notes on OpenStreetMap. Having this layer in your theme will trigger the 'add new note' functionality in the 'addNewPoint'-popup (or if your theme has no presets, it'll enable adding notes) - - This layer is shown at zoomlevel **10** and higher + - This layer is shown at zoomlevel **7** and higher - This layer is loaded from an external source, namely @@ -87,38 +87,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | fields | ------|-----|-----|----- | -| search.0 | Should mention {search} in the first comment | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| not.0 | Should not mention {search} in the first comment | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| opened_by.0 | Opened by contributor {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| not_opened_by.0 | Not opened by contributor {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| edited_by.0 | Last edited by contributor {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| not_edited_by.0 | Opened after {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| opened_before.0 | Created before {search} | | search (date) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| opened_after.0 | Created after {search} | | search (date) | - | id | question | osmTags | -----|-----|----- | | anonymous.0 | Only show notes opened by an anonymous contributor | _opened_by_anonymous_user=true | @@ -133,6 +101,58 @@ This tagrendering has labels | no_imports.1 | Hide import notes | _is_import_note= | | no_imports.2 | Show only import Notes | _is_import_note~.+ | +| id | question | osmTags | fields | +-----|-----|-----|----- | +| search.0 | Should mention {search} in the first comment | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| search_any.0 | Should mention {search} in any comment | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| not.0 | Should not mention {search} in the first comment | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| search_not_any.0 | Should not mention {search} in any comment | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| opened_by.0 | Opened by contributor {search} | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| not_opened_by.0 | Not opened by contributor {search} | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| edited_by_any.0 | Edited or commented on by any user with name {search} | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| last_edited_by.0 | Last edited by contributor {search} | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| not_last_edited_by.0 | Not edited as last by {search} | | search (regex) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| opened_before.0 | Created before {search} | | search (date) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| opened_after.0 | Created after {search} | | search (date) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| last_edited_before.0 | Last edited before {search} | | search (date) | + +| id | question | osmTags | fields | +-----|-----|-----|----- | +| last_edited_after.0 | Last edited after {search} | | search (date) | + This document is autogenerated from [assets/layers/note/note.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/note/note.json) diff --git a/Docs/Layers/observation_tower.md b/Docs/Layers/observation_tower.md index 38fe6c6eb7..ec4b5f6994 100644 --- a/Docs/Layers/observation_tower.md +++ b/Docs/Layers/observation_tower.md @@ -26,6 +26,7 @@ Towers with a panoramic view - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -167,5 +168,16 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/layers/observation_tower/observation_tower.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/observation_tower/observation_tower.json) diff --git a/Docs/Layers/outdoor_seating.md b/Docs/Layers/outdoor_seating.md index 1e3a15443d..5db6b05e84 100644 --- a/Docs/Layers/outdoor_seating.md +++ b/Docs/Layers/outdoor_seating.md @@ -27,6 +27,7 @@ Outdoor seating areas, usually located near cafes and restaurants. - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -50,7 +51,7 @@ Elements must match the expression ** [seasonal](https://wiki.openstreetmap.org/wiki/Key:seasonal) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dno) [spring](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dspring) [summer](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dsummer) [autumn](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dautumn) [winter](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Dwinter) [dry_season](https://wiki.openstreetmap.org/wiki/Tag:seasonal%3Ddry_season) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | | [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | @@ -109,6 +110,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -185,5 +187,16 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | + + This document is autogenerated from [assets/layers/outdoor_seating/outdoor_seating.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/outdoor_seating/outdoor_seating.json) diff --git a/Docs/Layers/parcel_lockers.md b/Docs/Layers/parcel_lockers.md index 304c941a85..2a875a00f0 100644 --- a/Docs/Layers/parcel_lockers.md +++ b/Docs/Layers/parcel_lockers.md @@ -35,7 +35,7 @@ Layer showing parcel lockers for collecting and sending parcels. The following options to create new points are included: -**a parcel locker** which has the following tags:amenity=parcel_locker + - **a parcel locker** which has the following tags:amenity=parcel_locker ## Basic tags for this layer diff --git a/Docs/Layers/parking.md b/Docs/Layers/parking.md index b11433024e..9960841cf0 100644 --- a/Docs/Layers/parking.md +++ b/Docs/Layers/parking.md @@ -34,7 +34,7 @@ A layer showing car parkings The following options to create new points are included: -**a car parking** which has the following tags:amenity=parking + - **a car parking** which has the following tags:amenity=parking ## Basic tags for this layer diff --git a/Docs/Layers/parking_ticket_machine.md b/Docs/Layers/parking_ticket_machine.md index 634f27a1e2..9e08762105 100644 --- a/Docs/Layers/parking_ticket_machine.md +++ b/Docs/Layers/parking_ticket_machine.md @@ -20,6 +20,7 @@ Layer with parking ticket machines to pay for parking. - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -31,7 +32,7 @@ Layer with parking ticket machines to pay for parking. The following options to create new points are included: -**a parking ticket machine** which has the following tags:amenity=vending_machine & vending=parking_tickets + - **a parking ticket machine** which has the following tags:amenity=vending_machine & vending=parking_tickets ## Basic tags for this layer @@ -136,5 +137,16 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/layers/parking_ticket_machine/parking_ticket_machine.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/parking_ticket_machine/parking_ticket_machine.json) diff --git a/Docs/Layers/pharmacy.md b/Docs/Layers/pharmacy.md index bdf07e0b8f..91d70ca2bd 100644 --- a/Docs/Layers/pharmacy.md +++ b/Docs/Layers/pharmacy.md @@ -20,6 +20,7 @@ A layer showing pharmacies, which (probably) dispense prescription drugs - [phone](#phone) - [email](#email) - [website](#website) + - [payment-options](#payment-options) - [wheelchair](#wheelchair) - [leftover-questions](#leftover-questions) - [move-button](#move-button) @@ -29,6 +30,7 @@ A layer showing pharmacies, which (probably) dispense prescription drugs ## Themes using this layer + - [disaster_response](https://mapcomplete.org/disaster_response) - [healthcare](https://mapcomplete.org/healthcare) - [onwheels](https://mapcomplete.org/onwheels) - [personal](https://mapcomplete.org/personal) @@ -38,7 +40,7 @@ A layer showing pharmacies, which (probably) dispense prescription drugs The following options to create new points are included: -**a pharmacy** which has the following tags:amenity=pharmacy + - **a pharmacy** which has the following tags:amenity=pharmacy ## Basic tags for this layer @@ -112,6 +114,14 @@ The question is `What is the website of {title()}?` This tagrendering has labels `contact` +### payment-options + +The question is `Which methods of payment are accepted here?` + + - *Cash is accepted here* is shown if with payment:cash=yes. Unselecting this answer will add payment:cash=no + - *Payment cards are accepted here* is shown if with payment:cards=yes. Unselecting this answer will add payment:cards=no + - *Payment by QR-code is possible here* is shown if with payment:qr_code=yes. Unselecting this answer will add payment:qr_code=no + ### wheelchair The question is `Is this pharmacy easy to access on a wheelchair?` @@ -157,6 +167,14 @@ This tagrendering has labels -----|-----|----- | | open_now.0 | Open now | _isOpen=yes | +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + This document is autogenerated from [assets/layers/pharmacy/pharmacy.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/pharmacy/pharmacy.json) diff --git a/Docs/Layers/physiotherapist.md b/Docs/Layers/physiotherapist.md index e796e8392b..3f52888cd8 100644 --- a/Docs/Layers/physiotherapist.md +++ b/Docs/Layers/physiotherapist.md @@ -34,7 +34,7 @@ This layer shows physiotherapists The following options to create new points are included: -**a physiotherapists office** which has the following tags:healthcare=physiotherapist + - **a physiotherapists office** which has the following tags:healthcare=physiotherapist ## Basic tags for this layer diff --git a/Docs/Layers/picnic_table.md b/Docs/Layers/picnic_table.md index 0277126b94..45df58c9e0 100644 --- a/Docs/Layers/picnic_table.md +++ b/Docs/Layers/picnic_table.md @@ -33,7 +33,7 @@ The layer showing picnic tables The following options to create new points are included: -**a picnic table** which has the following tags:leisure=picnic_table + - **a picnic table** which has the following tags:leisure=picnic_table ## Basic tags for this layer diff --git a/Docs/Layers/play_forest.md b/Docs/Layers/play_forest.md index 31162e8c7e..554370f11f 100644 --- a/Docs/Layers/play_forest.md +++ b/Docs/Layers/play_forest.md @@ -31,7 +31,7 @@ Een speelbos is een vrij toegankelijke zone in een bos The following options to create new points are included: -**Speelbos** which has the following tags:leisure=playground & playground=forest & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen + - **Speelbos** which has the following tags:leisure=playground & playground=forest & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen ## Basic tags for this layer diff --git a/Docs/Layers/playground.md b/Docs/Layers/playground.md index 0d29826525..c43849cecd 100644 --- a/Docs/Layers/playground.md +++ b/Docs/Layers/playground.md @@ -32,6 +32,7 @@ Playgrounds - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -44,7 +45,7 @@ Playgrounds The following options to create new points are included: -**a playground** which has the following tags:leisure=playground + - **a playground** which has the following tags:leisure=playground ## Basic tags for this layer @@ -221,5 +222,14 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| fee.0 | *Does one have to pay to use this playground?* (default) | | +| fee.1 | Free to use | fee=no | +| fee.2 | Paid playground | fee=yes | + + This document is autogenerated from [assets/layers/playground/playground.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/playground/playground.json) diff --git a/Docs/Layers/playground_equipment.md b/Docs/Layers/playground_equipment.md index eb321526fc..12718cf16f 100644 --- a/Docs/Layers/playground_equipment.md +++ b/Docs/Layers/playground_equipment.md @@ -29,7 +29,7 @@ Layer showing playground equipment The following options to create new points are included: -**a playground device** which has the following tags:playground=yes + - **a playground device** which has the following tags:playground=yes ## Basic tags for this layer diff --git a/Docs/Layers/police.md b/Docs/Layers/police.md new file mode 100644 index 0000000000..99e1f25d27 --- /dev/null +++ b/Docs/Layers/police.md @@ -0,0 +1,173 @@ +[//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources) + +# police + +Many types of police facilities + + - This layer is shown at zoomlevel **10** and higher + +## Table of contents + +1. [Themes using this layer](#themes-using-this-layer) +2. [Presets](#presets) +3. [Basic tags for this layer](#basic-tags-for-this-layer) +4. [Supported attributes](#supported-attributes) + - [images](#images) + - [reviews](#reviews) + - [police_name](#police_name) + - [presettypeselect](#presettypeselect) + - [phone](#phone) + - [email](#email) + - [website](#website) + - [opening_hours](#opening_hours) + - [Opening hours](#opening-hours) + - [4_z2nrdhy6tyyh4fd](#4_z2nrdhy6tyyh4fd) + - [leftover-questions](#leftover-questions) + - [move-button](#move-button) + - [delete-button](#delete-button) + - [lod](#lod) +5. [Filters](#filters) + +## Themes using this layer + + - [disaster_response](https://mapcomplete.org/disaster_response) + - [personal](https://mapcomplete.org/personal) + - [surveillance](https://mapcomplete.org/surveillance) + +## Presets + +The following options to create new points are included: + + - **a police office** which has the following tags:amenity=police + - **a police checkpoint** which has the following tags:police=checkpoint + - **an administrative, police backoffice** which has the following tags:police=offices + - **a police detention center** which has the following tags:police=detention + - **a police naval base** which has the following tags:police=naval_base + +## Basic tags for this layer + +Elements must match **any** of the following expressions: + + - amenity=police + - police~.+ + +[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22amenity%22%3D%22police%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%20%20%20%20nwr%5B%22police%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) + +## Supported attributes + +**Warning:**,this quick overview is incomplete, + +| attribute | type | values which are supported by this layer | +-----|-----|----- | +| [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | | +| [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | +| [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) | | +| [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | | +| [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | | +| [detention](https://wiki.openstreetmap.org/wiki/Key:detention) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:detention%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:detention%3Dno) | + +### images +This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images +_This tagrendering has no question and is thus read-only_ +*{image_carousel()}{image_upload()}* + +### reviews +Shows the reviews module (including the possibility to leave a review) +_This tagrendering has no question and is thus read-only_ +*{create_review()}{list_reviews()}* + +### police_name + +The question is `What is the name of this police facility?` +*{name}* is shown if `name` is set + +### presettypeselect + +_This tagrendering has no question and is thus read-only_ +*{preset_type_select()}* + +### phone + +The question is `What is the phone number of {title()}?` +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + + - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ + +This tagrendering has labels +`contact` + +### email + +The question is `What is the email address of {title()}?` +*{email}* is shown if `email` is set + + - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ + - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ + +This tagrendering has labels +`contact` + +### website + +The question is `What is the website of {title()}?` +*{website}* is shown if `website` is set + + - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ + +This tagrendering has labels +`contact` + +### opening_hours + +The question is `What are the opening hours of {title()}?` +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + + - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ + +### 4_z2nrdhy6tyyh4fd + +The question is `Does this police office have detention facilities?` + + - *This police office has some cells to detain people* is shown if with detention=yes + - *This police office does not have cells to detain people* is shown if with detention=no + +This tagrendering is only visible in the popup if the following condition is met: amenity=police + +### leftover-questions + +_This tagrendering has no question and is thus read-only_ +*{questions( ,)}* + +### move-button + +_This tagrendering has no question and is thus read-only_ +*{move_button()}* + +### delete-button + +_This tagrendering has no question and is thus read-only_ +*{delete_button()}* + +### lod + +_This tagrendering has no question and is thus read-only_ +*{linked_data_from_website()}* + +This tagrendering has labels +`added_by_default` + +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| 4_z2nrdhy6tyyh4fd.0 | *Does this police office have detention facilities?* (default) | | +| 4_z2nrdhy6tyyh4fd.1 | This police office has some cells to detain people | detention=yes | +| 4_z2nrdhy6tyyh4fd.2 | This police office does not have cells to detain people | detention=no | + + + +This document is autogenerated from [assets/layers/police/police.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/police/police.json) diff --git a/Docs/Layers/postboxes.md b/Docs/Layers/postboxes.md index 98f70ef385..0692c219a6 100644 --- a/Docs/Layers/postboxes.md +++ b/Docs/Layers/postboxes.md @@ -28,7 +28,7 @@ The layer showing postboxes. The following options to create new points are included: -**a postbox** which has the following tags:amenity=post_box + - **a postbox** which has the following tags:amenity=post_box ## Basic tags for this layer diff --git a/Docs/Layers/postoffices.md b/Docs/Layers/postoffices.md index da79d69ca4..cb3b19389b 100644 --- a/Docs/Layers/postoffices.md +++ b/Docs/Layers/postoffices.md @@ -40,7 +40,7 @@ A layer showing post offices. The following options to create new points are included: -**a post office** which has the following tags:amenity=post_office + - **a post office** which has the following tags:amenity=post_office ## Basic tags for this layer diff --git a/Docs/Layers/public_bookcase.md b/Docs/Layers/public_bookcase.md index 3514793dad..1ccd0012a8 100644 --- a/Docs/Layers/public_bookcase.md +++ b/Docs/Layers/public_bookcase.md @@ -4,7 +4,7 @@ A streetside cabinet with books, accessible to anyone - - This layer is shown at zoomlevel **7** and higher + - This layer is shown at zoomlevel **10** and higher ## Table of contents @@ -39,7 +39,7 @@ A streetside cabinet with books, accessible to anyone The following options to create new points are included: -**a bookcase** which has the following tags:amenity=public_bookcase + - **a bookcase** which has the following tags:amenity=public_bookcase ## Basic tags for this layer diff --git a/Docs/Layers/rainbow_crossings.md b/Docs/Layers/rainbow_crossings.md index 1fdb7b4e84..3dc0b1b672 100644 --- a/Docs/Layers/rainbow_crossings.md +++ b/Docs/Layers/rainbow_crossings.md @@ -28,7 +28,7 @@ A layer showing pedestrian crossings with rainbow paintings The following options to create new points are included: -**a crossing** which has the following tags:highway=footway & footway=crossing (snaps to layers `cycleways_and_roads`) + - **a crossing** which has the following tags:highway=footway & footway=crossing (snaps to layers `cycleways_and_roads`) ## Basic tags for this layer diff --git a/Docs/Layers/reception_desk.md b/Docs/Layers/reception_desk.md index 10da49ff04..ad176cccf6 100644 --- a/Docs/Layers/reception_desk.md +++ b/Docs/Layers/reception_desk.md @@ -30,7 +30,7 @@ A layer showing where the reception desks are and which asks some accessibility The following options to create new points are included: -**a reception desk** which has the following tags:amenity=reception_desk + - **a reception desk** which has the following tags:amenity=reception_desk ## Basic tags for this layer diff --git a/Docs/Layers/recycling.md b/Docs/Layers/recycling.md index 1264f7309a..16e6705941 100644 --- a/Docs/Layers/recycling.md +++ b/Docs/Layers/recycling.md @@ -41,9 +41,8 @@ A layer with recycling containers and centres The following options to create new points are included: -**a recycling container** which has the following tags:amenity=recycling & recycling_type=container - -**a recycling centre** which has the following tags:amenity=recycling & recycling_type=centre + - **a recycling container** which has the following tags:amenity=recycling & recycling_type=container + - **a recycling centre** which has the following tags:amenity=recycling & recycling_type=centre ## Basic tags for this layer @@ -226,7 +225,11 @@ This tagrendering has labels | id | question | osmTags | -----|-----|----- | -| recyclingType.0 | *All recycling types* (default) | | +| centres_only.0 | All recycling types | recycling_type=centre | + +| id | question | osmTags | +-----|-----|----- | +| recyclingType.0 | *Only public access* (default) | | | recyclingType.1 | Recycling of batteries | recycling:batteries=yes | | recyclingType.2 | Recycling of beverage cartons | recycling:beverage_cartons=yes | | recyclingType.3 | Recycling of cans | recycling:cans=yes | diff --git a/Docs/Layers/route_marker.md b/Docs/Layers/route_marker.md index d262aa52b3..14f24af41d 100644 --- a/Docs/Layers/route_marker.md +++ b/Docs/Layers/route_marker.md @@ -28,7 +28,7 @@ Route markers are small markers often found along official hiking/cycling/riding The following options to create new points are included: -**a route marker** which has the following tags:tourism=information & information=route_marker + - **a route marker** which has the following tags:tourism=information & information=route_marker ## Basic tags for this layer diff --git a/Docs/Layers/school.md b/Docs/Layers/school.md index d3a35665d5..5213868641 100644 --- a/Docs/Layers/school.md +++ b/Docs/Layers/school.md @@ -38,7 +38,7 @@ Schools giving primary and secondary education and post-secondary, non-tertiary The following options to create new points are included: -**a primary or secondary school** which has the following tags:amenity=school & fixme=Added with MapComplete, the precise geometry should still be drawn + - **a primary or secondary school** which has the following tags:amenity=school & fixme=Added with MapComplete, the precise geometry should still be drawn ## Basic tags for this layer diff --git a/Docs/Layers/shops.md b/Docs/Layers/shops.md index c952d85a54..401f578b36 100644 --- a/Docs/Layers/shops.md +++ b/Docs/Layers/shops.md @@ -4,7 +4,7 @@ A shop - - This layer is shown at zoomlevel **12** and higher + - This layer is shown at zoomlevel **15** and higher ## Table of contents @@ -79,7 +79,7 @@ A shop The following options to create new points are included: -**a shop** which has the following tags:shop=yes + - **a shop** which has the following tags:shop=yes ## Basic tags for this layer @@ -122,7 +122,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -316,6 +316,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -603,6 +606,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -709,18 +713,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -729,6 +721,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Layers/shops_glutenfree.md b/Docs/Layers/shops_glutenfree.md index ac88ec4cc4..99abdf598f 100644 --- a/Docs/Layers/shops_glutenfree.md +++ b/Docs/Layers/shops_glutenfree.md @@ -108,7 +108,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -313,6 +313,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -600,6 +603,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -693,18 +697,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -713,6 +705,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Layers/shops_lactosefree.md b/Docs/Layers/shops_lactosefree.md index e4bfe4f77a..1cdc416797 100644 --- a/Docs/Layers/shops_lactosefree.md +++ b/Docs/Layers/shops_lactosefree.md @@ -108,7 +108,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -313,6 +313,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -600,6 +603,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -693,18 +697,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -713,6 +705,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Layers/shops_second_hand.md b/Docs/Layers/shops_second_hand.md index 07984a6e6b..9259031e58 100644 --- a/Docs/Layers/shops_second_hand.md +++ b/Docs/Layers/shops_second_hand.md @@ -58,6 +58,7 @@ A shop - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +4. [Filters](#filters) ## Themes using this layer @@ -104,7 +105,7 @@ Elements must match **any** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -298,6 +299,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -585,6 +589,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -689,5 +694,204 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + +| id | question | osmTags | +-----|-----|----- | +| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + + This document is autogenerated from [assets/themes/circular_economy/circular_economy.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/circular_economy/circular_economy.json) diff --git a/Docs/Layers/shops_with_climbing_shoe_repair.md b/Docs/Layers/shops_with_climbing_shoe_repair.md index e7519dfc37..f783ae36e8 100644 --- a/Docs/Layers/shops_with_climbing_shoe_repair.md +++ b/Docs/Layers/shops_with_climbing_shoe_repair.md @@ -107,7 +107,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -308,6 +308,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -595,6 +598,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -701,18 +705,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -721,6 +713,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Layers/shower.md b/Docs/Layers/shower.md index 35b59df6c7..aab4f9ad47 100644 --- a/Docs/Layers/shower.md +++ b/Docs/Layers/shower.md @@ -37,7 +37,7 @@ A layer showing (public) showers The following options to create new points are included: -**a shower** which has the following tags:amenity=shower + - **a shower** which has the following tags:amenity=shower ## Basic tags for this layer diff --git a/Docs/Layers/souvenir_coin.md b/Docs/Layers/souvenir_coin.md index 4813d3b536..2ffec629ce 100644 --- a/Docs/Layers/souvenir_coin.md +++ b/Docs/Layers/souvenir_coin.md @@ -39,7 +39,7 @@ Layer showing machines selling souvenir coins The following options to create new points are included: -**a souvenir coin machine** which has the following tags:amenity=vending_machine & vending=souvenir_coins + - **a souvenir coin machine** which has the following tags:amenity=vending_machine & vending=souvenir_coins ## Basic tags for this layer diff --git a/Docs/Layers/souvenir_note.md b/Docs/Layers/souvenir_note.md index a6f7b7e6fe..bb45094149 100644 --- a/Docs/Layers/souvenir_note.md +++ b/Docs/Layers/souvenir_note.md @@ -39,7 +39,7 @@ Layer showing machines selling souvenir banknotes The following options to create new points are included: -**a souvenir banknote machine** which has the following tags:amenity=vending_machine & vending=souvenir_notes + - **a souvenir banknote machine** which has the following tags:amenity=vending_machine & vending=souvenir_notes ## Basic tags for this layer diff --git a/Docs/Layers/speed_camera.md b/Docs/Layers/speed_camera.md index 2217394350..f369ab0859 100644 --- a/Docs/Layers/speed_camera.md +++ b/Docs/Layers/speed_camera.md @@ -30,7 +30,7 @@ Layer showing speed cameras The following options to create new points are included: -**a speed camera** which has the following tags:highway=speed_camera + - **a speed camera** which has the following tags:highway=speed_camera ## Basic tags for this layer diff --git a/Docs/Layers/speed_display.md b/Docs/Layers/speed_display.md index ea0d90ac98..e4e64ee4e0 100644 --- a/Docs/Layers/speed_display.md +++ b/Docs/Layers/speed_display.md @@ -27,7 +27,7 @@ Layer showing speed displays that alert drivers of their speed. The following options to create new points are included: -**a speed display** which has the following tags:highway=speed_display + - **a speed display** which has the following tags:highway=speed_display ## Basic tags for this layer diff --git a/Docs/Layers/sport_pitch.md b/Docs/Layers/sport_pitch.md index 066cf9ef2a..c7bdcc747c 100644 --- a/Docs/Layers/sport_pitch.md +++ b/Docs/Layers/sport_pitch.md @@ -38,9 +38,8 @@ A sport pitch The following options to create new points are included: -**a tabletennis table** which has the following tags:leisure=pitch & sport=table_tennis - -**a sport pitch** which has the following tags:leisure=pitch & fixme=Geometry to be drawn, added by MapComplete + - **a tabletennis table** which has the following tags:leisure=pitch & sport=table_tennis + - **a sport pitch** which has the following tags:leisure=pitch & fixme=Geometry to be drawn, added by MapComplete ## Basic tags for this layer @@ -175,16 +174,18 @@ This tagrendering has labels | id | question | osmTags | -----|-----|----- | -| available_sports.0 | *All sports* (default) | | -| available_sports.1 | Basketball fields | sport=basketball | -| available_sports.2 | Soccer fields | sport=soccer | -| available_sports.3 | Ping-pong tables | sport=table_tennis | -| available_sports.4 | Tennis fields | sport=tennis | -| available_sports.5 | Badminton fields | sport=badminton | +| open_now.0 | Open now | _isOpen=yes | | id | question | osmTags | -----|-----|----- | -| open_now.0 | Open now | _isOpen=yes | +| sport_pitch-sport.0 | *Which sport can be played here?* (default) | | +| sport_pitch-sport.1 | Basketball is played here | sport=basketball | +| sport_pitch-sport.2 | Soccer is played here | sport=soccer | +| sport_pitch-sport.3 | This is a pingpong table | sport=table_tennis | +| sport_pitch-sport.4 | Tennis is played here | sport=tennis | +| sport_pitch-sport.5 | Korfball is played here | sport=korfball | +| sport_pitch-sport.6 | Basketball is played here | sport=basket | +| sport_pitch-sport.7 | This is a skatepark | sport=skateboard | diff --git a/Docs/Layers/sport_shops.md b/Docs/Layers/sport_shops.md index 53fa246419..e05b0b62eb 100644 --- a/Docs/Layers/sport_shops.md +++ b/Docs/Layers/sport_shops.md @@ -69,7 +69,7 @@ A shop The following options to create new points are included: -**a sports shop** which has the following tags:shop=sports + - **a sports shop** which has the following tags:shop=sports ## Basic tags for this layer @@ -109,7 +109,7 @@ Elements must match the expression ** [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -303,6 +303,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -590,6 +593,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -696,18 +700,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -716,6 +708,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Layers/sports_centre.md b/Docs/Layers/sports_centre.md index 14d609840f..57de85fb29 100644 --- a/Docs/Layers/sports_centre.md +++ b/Docs/Layers/sports_centre.md @@ -33,7 +33,7 @@ Indoor and outdoor sports centres can be found on this layer The following options to create new points are included: -**a sports centre** which has the following tags:leisure=sports_centre + - **a sports centre** which has the following tags:leisure=sports_centre ## Basic tags for this layer diff --git a/Docs/Layers/street_lamps.md b/Docs/Layers/street_lamps.md index ddaae5036f..b1d658872e 100644 --- a/Docs/Layers/street_lamps.md +++ b/Docs/Layers/street_lamps.md @@ -36,7 +36,7 @@ A layer showing street lights The following options to create new points are included: -**a street lamp** which has the following tags:highway=street_lamp + - **a street lamp** which has the following tags:highway=street_lamp ## Basic tags for this layer diff --git a/Docs/Layers/stripclub.md b/Docs/Layers/stripclub.md index 123045e028..ae9b010512 100644 --- a/Docs/Layers/stripclub.md +++ b/Docs/Layers/stripclub.md @@ -23,6 +23,7 @@ A venue where erotic dance, striptease, or lap dances are performed commercially - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -32,7 +33,7 @@ A venue where erotic dance, striptease, or lap dances are performed commercially The following options to create new points are included: -**a stripclub** which has the following tags:amenity=stripclub + - **a stripclub** which has the following tags:amenity=stripclub ## Basic tags for this layer @@ -123,5 +124,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/stripclub/stripclub.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/stripclub/stripclub.json) diff --git a/Docs/Layers/surveillance_camera.md b/Docs/Layers/surveillance_camera.md index 9d58397230..293ce77246 100644 --- a/Docs/Layers/surveillance_camera.md +++ b/Docs/Layers/surveillance_camera.md @@ -38,13 +38,10 @@ This layer shows surveillance cameras and allows a contributor to update informa The following options to create new points are included: -**a surveillance camera** which has the following tags:man_made=surveillance & surveillance:type=camera - -**a surveillance camera mounted on a wall** which has the following tags:man_made=surveillance & surveillance:type=camera & camera:mount=wall (snaps to layers `walls_and_buildings`) - -**an ALPR camera (Automatic Number Plate Reader)** which has the following tags:man_made=surveillance & surveillance:type=ALPR - -**an ALPR camera (Automatic Number Plate Reader) mounted on a wall** which has the following tags:man_made=surveillance & surveillance:type=ALPR & camera:mount=wall (snaps to layers `walls_and_buildings`) + - **a surveillance camera** which has the following tags:man_made=surveillance & surveillance:type=camera + - **a surveillance camera mounted on a wall** which has the following tags:man_made=surveillance & surveillance:type=camera & camera:mount=wall (snaps to layers `walls_and_buildings`) + - **an ALPR camera (Automatic Number Plate Reader)** which has the following tags:man_made=surveillance & surveillance:type=ALPR + - **an ALPR camera (Automatic Number Plate Reader) mounted on a wall** which has the following tags:man_made=surveillance & surveillance:type=ALPR & camera:mount=wall (snaps to layers `walls_and_buildings`) ## Basic tags for this layer diff --git a/Docs/Layers/tertiary_education.md b/Docs/Layers/tertiary_education.md index c8f8c8f2ba..7eb51a0139 100644 --- a/Docs/Layers/tertiary_education.md +++ b/Docs/Layers/tertiary_education.md @@ -32,7 +32,7 @@ Layer with all tertiary education institutes (ISCED:2011 levels 6,7 and 8) The following options to create new points are included: -**a university** which has the following tags:amenity=university & fixme=Added with MapComplete, geometry to be drawn + - **a university** which has the following tags:amenity=university & fixme=Added with MapComplete, geometry to be drawn ## Basic tags for this layer diff --git a/Docs/Layers/ticket_machine.md b/Docs/Layers/ticket_machine.md index df02f802c7..533e16228c 100644 --- a/Docs/Layers/ticket_machine.md +++ b/Docs/Layers/ticket_machine.md @@ -23,6 +23,7 @@ Find ticket machines for public transport tickets - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -34,7 +35,7 @@ Find ticket machines for public transport tickets The following options to create new points are included: -**a ticket machine** which has the following tags:amenity=vending_machine & vending=public_transport_tickets + - **a ticket machine** which has the following tags:amenity=vending_machine & vending=public_transport_tickets ## Basic tags for this layer @@ -168,5 +169,16 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/layers/ticket_machine/ticket_machine.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/ticket_machine/ticket_machine.json) diff --git a/Docs/Layers/ticket_validator.md b/Docs/Layers/ticket_validator.md index 167e867f6e..952ceb05f7 100644 --- a/Docs/Layers/ticket_validator.md +++ b/Docs/Layers/ticket_validator.md @@ -22,6 +22,7 @@ Find ticket validators to validate public transport tickets - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -31,7 +32,7 @@ Find ticket validators to validate public transport tickets The following options to create new points are included: -**a ticket validator** which has the following tags:amenity=ticket_validator + - **a ticket validator** which has the following tags:amenity=ticket_validator ## Basic tags for this layer @@ -126,5 +127,16 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/layers/ticket_validator/ticket_validator.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/ticket_validator/ticket_validator.json) diff --git a/Docs/Layers/toilet.md b/Docs/Layers/toilet.md index 1f6f03e6c2..6e695d12a0 100644 --- a/Docs/Layers/toilet.md +++ b/Docs/Layers/toilet.md @@ -55,9 +55,8 @@ A layer showing (public) toilets The following options to create new points are included: -**a public toilet** which has the following tags:amenity=toilets - -**a toilets with wheelchair accessible toilet** which has the following tags:amenity=toilets & wheelchair=yes + - **a public toilet** which has the following tags:amenity=toilets + - **a toilets with wheelchair accessible toilet** which has the following tags:amenity=toilets & wheelchair=yes ## Basic tags for this layer diff --git a/Docs/Layers/tool_library.md b/Docs/Layers/tool_library.md index 2d22985cd7..37f6377378 100644 --- a/Docs/Layers/tool_library.md +++ b/Docs/Layers/tool_library.md @@ -26,6 +26,7 @@ A tool library is a place where people from the general public can borrow tools - [move-button](#move-button) - [delete-button](#delete-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -36,7 +37,7 @@ A tool library is a place where people from the general public can borrow tools The following options to create new points are included: -**a tool library** which has the following tags:amenity=tool_library + - **a tool library** which has the following tags:amenity=tool_library ## Basic tags for this layer @@ -156,5 +157,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/tool_library/tool_library.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/tool_library/tool_library.json) diff --git a/Docs/Layers/tourism_accomodation.md b/Docs/Layers/tourism_accomodation.md index 1817827511..2dfd0c2ea6 100644 --- a/Docs/Layers/tourism_accomodation.md +++ b/Docs/Layers/tourism_accomodation.md @@ -42,21 +42,14 @@ Various types of lodging facilities The following options to create new points are included: -**a hotel** which has the following tags:tourism=hotel - -**a hostel** which has the following tags:tourism=hostel - -**a vacation apartment** which has the following tags:tourism=apartment - -**a vacation chalet** which has the following tags:tourism=chalet - -**a motel** which has the following tags:tourism=motel - -**a bed-and-breakfast** which has the following tags:tourism=guest_house & guest_house=bed_and_breakfast - -**a small-scale lodging facility, typically operated by the owner** which has the following tags:tourism=guest_house - -**a camp site or camp ground** which has the following tags:tourism=camp_site + - **a hotel** which has the following tags:tourism=hotel + - **a hostel** which has the following tags:tourism=hostel + - **a vacation apartment** which has the following tags:tourism=apartment + - **a vacation chalet** which has the following tags:tourism=chalet + - **a motel** which has the following tags:tourism=motel + - **a bed-and-breakfast** which has the following tags:tourism=guest_house & guest_house=bed_and_breakfast + - **a small-scale lodging facility, typically operated by the owner** which has the following tags:tourism=guest_house + - **a camp site or camp ground** which has the following tags:tourism=camp_site ## Basic tags for this layer @@ -84,7 +77,7 @@ Elements must match **any** of the following expressions: | [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) | | | [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | @@ -165,6 +158,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` diff --git a/Docs/Layers/tree_node.md b/Docs/Layers/tree_node.md index a336b2b02c..f5d02995d7 100644 --- a/Docs/Layers/tree_node.md +++ b/Docs/Layers/tree_node.md @@ -39,11 +39,9 @@ A layer showing trees The following options to create new points are included: -**a broadleaved tree** which has the following tags:natural=tree & leaf_type=broadleaved - -**a needleleaved tree** which has the following tags:natural=tree & leaf_type=needleleaved - -**a tree** which has the following tags:natural=tree + - **a broadleaved tree** which has the following tags:natural=tree & leaf_type=broadleaved + - **a needleleaved tree** which has the following tags:natural=tree & leaf_type=needleleaved + - **a tree** which has the following tags:natural=tree ## Basic tags for this layer diff --git a/Docs/Layers/trolley_bay.md b/Docs/Layers/trolley_bay.md index fce085b83d..39eb90c036 100644 --- a/Docs/Layers/trolley_bay.md +++ b/Docs/Layers/trolley_bay.md @@ -31,7 +31,7 @@ Find trolley bays for shopping trolleys. The following options to create new points are included: -**a trolley bay** which has the following tags:amenity=trolley_bay + - **a trolley bay** which has the following tags:amenity=trolley_bay ## Basic tags for this layer diff --git a/Docs/Layers/vending_machine.md b/Docs/Layers/vending_machine.md index 8f0a2a1b2b..b6ab65f176 100644 --- a/Docs/Layers/vending_machine.md +++ b/Docs/Layers/vending_machine.md @@ -47,7 +47,7 @@ Layer showing vending machines The following options to create new points are included: -**a vending machine** which has the following tags:amenity=vending_machine + - **a vending machine** which has the following tags:amenity=vending_machine ## Basic tags for this layer @@ -65,7 +65,7 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | -| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | +| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [ice_cream](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dice_cream) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | | [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | [Continental](https://wiki.openstreetmap.org/wiki/Tag:brand%3DContinental) [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:brand%3DSchwalbe) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | | [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR) [0.05 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 CHF) [0.10 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 CHF) [0.20 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 CHF) [0.50 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 CHF) [1 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 CHF) [2 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 CHF) [5 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D5 CHF) | @@ -124,6 +124,7 @@ The question is `What does this vending machine sell?` - *Milk is sold* is shown if with vending=milk - *Bread is sold* is shown if with vending=bread - *Eggs are sold* is shown if with vending=eggs + - *Ice cream is sold* is shown if with vending=ice_cream - *Cheese is sold* is shown if with vending=cheese - *Honey is sold* is shown if with vending=honey - *Potatoes are sold* is shown if with vending=potatoes @@ -319,21 +320,22 @@ This tagrendering has labels | vending.10 | Sale of milk | vending~^(.*milk.*)$ | | vending.11 | Sale of bread | vending~^(.*bread.*)$ | | vending.12 | Sale of eggs | vending~^(.*eggs.*)$ | -| vending.13 | Sale of cheese | vending~^(.*cheese.*)$ | -| vending.14 | Sale of honey | vending~^(.*honey.*)$ | -| vending.15 | Sale of potatoes | vending~^(.*potatoes.*)$ | -| vending.16 | Sale of meat | vending~^(.*meat.*)$ | -| vending.17 | Sale of fruit | vending~^(.*fruit.*)$ | -| vending.18 | Sale of strawberries | vending~^(.*strawberries.*)$ | -| vending.19 | Sale of flowers | vending~^(.*flowers.*)$ | -| vending.20 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | -| vending.21 | Sale of pressed pennies | vending=elongated_coin | -| vending.22 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | -| vending.23 | Sale of bicycle lights | vending=bicycle_light | -| vending.24 | Sale of gloves | vending=gloves | -| vending.25 | Sale of bicycle repair kits | vending=bicycle_repair_kit | -| vending.26 | Sale of bicycle pumps | vending=bicycle_pump | -| vending.27 | Sale of bicycle locks | vending=bicycle_lock | +| vending.13 | Sale of ice cream | vending~^(.*ice_cream.*)$ | +| vending.14 | Sale of cheese | vending~^(.*cheese.*)$ | +| vending.15 | Sale of honey | vending~^(.*honey.*)$ | +| vending.16 | Sale of potatoes | vending~^(.*potatoes.*)$ | +| vending.17 | Sale of meat | vending~^(.*meat.*)$ | +| vending.18 | Sale of fruit | vending~^(.*fruit.*)$ | +| vending.19 | Sale of strawberries | vending~^(.*strawberries.*)$ | +| vending.20 | Sale of flowers | vending~^(.*flowers.*)$ | +| vending.21 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | +| vending.22 | Sale of pressed pennies | vending=elongated_coin | +| vending.23 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | +| vending.24 | Sale of bicycle lights | vending=bicycle_light | +| vending.25 | Sale of gloves | vending=gloves | +| vending.26 | Sale of bicycle repair kits | vending=bicycle_repair_kit | +| vending.27 | Sale of bicycle pumps | vending=bicycle_pump | +| vending.28 | Sale of bicycle locks | vending=bicycle_lock | | id | question | osmTags | -----|-----|----- | diff --git a/Docs/Layers/vending_machine_bicycle.md b/Docs/Layers/vending_machine_bicycle.md index 897a889854..29612e37ff 100644 --- a/Docs/Layers/vending_machine_bicycle.md +++ b/Docs/Layers/vending_machine_bicycle.md @@ -58,7 +58,7 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | -| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | +| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [ice_cream](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dice_cream) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | | [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | [Continental](https://wiki.openstreetmap.org/wiki/Tag:brand%3DContinental) [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:brand%3DSchwalbe) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | | [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR) [0.05 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 CHF) [0.10 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 CHF) [0.20 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 CHF) [0.50 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 CHF) [1 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 CHF) [2 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 CHF) [5 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D5 CHF) | @@ -117,6 +117,7 @@ The question is `What does this vending machine sell?` - *Milk is sold* is shown if with vending=milk - *Bread is sold* is shown if with vending=bread - *Eggs are sold* is shown if with vending=eggs + - *Ice cream is sold* is shown if with vending=ice_cream - *Cheese is sold* is shown if with vending=cheese - *Honey is sold* is shown if with vending=honey - *Potatoes are sold* is shown if with vending=potatoes @@ -297,37 +298,6 @@ This tagrendering has labels -----|-----|----- | | open_now.0 | Open now | _isOpen=yes | -| id | question | osmTags | ------|-----|----- | -| vending.0 | *All vending machines* (default) | | -| vending.1 | Sale of drinks | vending~^(.*drinks.*)$ | -| vending.2 | Sale of sweets | vending~^(.*sweets.*)$ | -| vending.3 | Sale of food | vending~^(.*food.*)$ | -| vending.4 | Sale of cigarettes | vending~^(.*cigarettes.*)$ | -| vending.5 | Sale of condoms | vending~^(.*condoms.*)$ | -| vending.6 | Sale of coffee | vending~^(.*coffee.*)$ | -| vending.7 | Sale of water | vending~^(.*water.*)$ | -| vending.8 | Sale of newspapers | vending~^(.*newspapers.*)$ | -| vending.9 | Sale of bicycle inner tubes | vending~^(.*bicycle_tube.*)$ | -| vending.10 | Sale of milk | vending~^(.*milk.*)$ | -| vending.11 | Sale of bread | vending~^(.*bread.*)$ | -| vending.12 | Sale of eggs | vending~^(.*eggs.*)$ | -| vending.13 | Sale of cheese | vending~^(.*cheese.*)$ | -| vending.14 | Sale of honey | vending~^(.*honey.*)$ | -| vending.15 | Sale of potatoes | vending~^(.*potatoes.*)$ | -| vending.16 | Sale of meat | vending~^(.*meat.*)$ | -| vending.17 | Sale of fruit | vending~^(.*fruit.*)$ | -| vending.18 | Sale of strawberries | vending~^(.*strawberries.*)$ | -| vending.19 | Sale of flowers | vending~^(.*flowers.*)$ | -| vending.20 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | -| vending.21 | Sale of pressed pennies | vending=elongated_coin | -| vending.22 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | -| vending.23 | Sale of bicycle lights | vending=bicycle_light | -| vending.24 | Sale of gloves | vending=gloves | -| vending.25 | Sale of bicycle repair kits | vending=bicycle_repair_kit | -| vending.26 | Sale of bicycle pumps | vending=bicycle_pump | -| vending.27 | Sale of bicycle locks | vending=bicycle_lock | - | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Layers/veterinary.md b/Docs/Layers/veterinary.md index 5b5b7e7b1c..8e280c2da6 100644 --- a/Docs/Layers/veterinary.md +++ b/Docs/Layers/veterinary.md @@ -21,6 +21,7 @@ A layer showing veterinarians - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) +5. [Filters](#filters) ## Themes using this layer @@ -31,7 +32,7 @@ A layer showing veterinarians The following options to create new points are included: -**a veterianarian** which has the following tags:amenity=veterinary & pet=dog + - **a veterianarian** which has the following tags:amenity=veterinary & pet=dog ## Basic tags for this layer @@ -105,5 +106,12 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + + This document is autogenerated from [assets/layers/veterinary/veterinary.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/veterinary/veterinary.json) diff --git a/Docs/Layers/viewpoint.md b/Docs/Layers/viewpoint.md index 4e74a38b81..efd1fafb8d 100644 --- a/Docs/Layers/viewpoint.md +++ b/Docs/Layers/viewpoint.md @@ -28,7 +28,7 @@ A nice viewpoint or nice view. Ideal to add an image if no other category fits The following options to create new points are included: -**a viewpoint** which has the following tags:tourism=viewpoint + - **a viewpoint** which has the following tags:tourism=viewpoint ## Basic tags for this layer diff --git a/Docs/Layers/walls_and_buildings.md b/Docs/Layers/walls_and_buildings.md index 9fbde90877..9ad5d36d4b 100644 --- a/Docs/Layers/walls_and_buildings.md +++ b/Docs/Layers/walls_and_buildings.md @@ -15,9 +15,9 @@ Special builtin layer providing all walls and buildings. This layer is useful in - This layer is needed as dependency for layer [clock](#clock) - This layer is needed as dependency for layer [defibrillator](#defibrillator) - This layer is needed as dependency for layer [entrance](#entrance) + - This layer is needed as dependency for layer [ghostsign](#ghostsign) - This layer is needed as dependency for layer [surveillance_camera](#surveillance_camera) - This layer is needed as dependency for layer [facadegardens](#facadegardens) - - This layer is needed as dependency for layer [ghostsigns](#ghostsigns) - This layer is needed as dependency for layer [parking_spaces_disabled](#parking_spaces_disabled) ## Table of contents @@ -37,6 +37,7 @@ Special builtin layer providing all walls and buildings. This layer is useful in - [aed](https://mapcomplete.org/aed) - [artwork](https://mapcomplete.org/artwork) - [clock](https://mapcomplete.org/clock) + - [disaster_response](https://mapcomplete.org/disaster_response) - [facadegardens](https://mapcomplete.org/facadegardens) - [ghostsigns](https://mapcomplete.org/ghostsigns) - [indoors](https://mapcomplete.org/indoors) diff --git a/Docs/Layers/waste_basket.md b/Docs/Layers/waste_basket.md index b04b3df6e3..4eb0c9cb69 100644 --- a/Docs/Layers/waste_basket.md +++ b/Docs/Layers/waste_basket.md @@ -35,7 +35,7 @@ This is a public waste basket, thrash can, where you can throw away your thrash. The following options to create new points are included: -**a waste basket** which has the following tags:amenity=waste_basket + - **a waste basket** which has the following tags:amenity=waste_basket ## Basic tags for this layer diff --git a/Docs/Layers/waste_disposal.md b/Docs/Layers/waste_disposal.md index 25f8d82aeb..aab9af1897 100644 --- a/Docs/Layers/waste_disposal.md +++ b/Docs/Layers/waste_disposal.md @@ -32,7 +32,7 @@ Waste Disposal Bin, medium to large bin for disposal of (household) waste The following options to create new points are included: -**a waste disposal bin** which has the following tags:amenity=waste_disposal + - **a waste disposal bin** which has the following tags:amenity=waste_disposal ## Basic tags for this layer diff --git a/Docs/Layers/windturbine.md b/Docs/Layers/windturbine.md index 5b1828ca46..c494a88e0b 100644 --- a/Docs/Layers/windturbine.md +++ b/Docs/Layers/windturbine.md @@ -31,7 +31,7 @@ Modern windmills generating electricity The following options to create new points are included: -**a wind turbine** which has the following tags:power=generator & generator:source=wind + - **a wind turbine** which has the following tags:power=generator & generator:source=wind ## Basic tags for this layer diff --git a/Docs/Schemas/DenominationConfigJsonJSC.ts b/Docs/Schemas/DenominationConfigJsonJSC.ts index 660f4509e7..fefd00d04a 100644 --- a/Docs/Schemas/DenominationConfigJsonJSC.ts +++ b/Docs/Schemas/DenominationConfigJsonJSC.ts @@ -57,6 +57,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, diff --git a/Docs/Schemas/FilterConfigJsonJSC.ts b/Docs/Schemas/FilterConfigJsonJSC.ts index e2e02f2745..2ae822cd3a 100644 --- a/Docs/Schemas/FilterConfigJsonJSC.ts +++ b/Docs/Schemas/FilterConfigJsonJSC.ts @@ -9,48 +9,7 @@ export default { "description": "The options for a filter\nIf there are multiple options these will be a list of radio buttons\nIf there is only one option this will be a checkbox\nFiltering is done based on the given osmTags that are compared to the objects in that layer.\n\nAn example which searches by name:\n\n```\n{\n \"id\": \"shop-name\",\n \"options\": [\n {\n \"fields\": [\n {\n \"name\": \"search\",\n \"type\": \"string\"\n }\n ],\n \"osmTags\": \"name~i~.*{search}.*\",\n \"question\": {\n \"en\": \"Only show shops with name {search}\",\n }\n }\n ]\n }\n ```", "type": "array", "items": { - "type": "object", - "properties": { - "question": {}, - "osmTags": { - "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", - "anyOf": [ - { - "$ref": "#/definitions/{and:TagConfigJson[];}" - }, - { - "$ref": "#/definitions/{or:TagConfigJson[];}" - }, - { - "type": "string" - } - ] - }, - "default": { - "type": "boolean" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": [ - "question" - ] + "$ref": "#/definitions/FilterConfigOptionJson" } }, "#": { @@ -118,6 +77,71 @@ export default { "required": [ "or" ] + }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" } }, "$schema": "http://json-schema.org/draft-07/schema#" diff --git a/Docs/Schemas/IconConfigJsonJSC.ts b/Docs/Schemas/IconConfigJsonJSC.ts index 7a122e9e81..58e5b45416 100644 --- a/Docs/Schemas/IconConfigJsonJSC.ts +++ b/Docs/Schemas/IconConfigJsonJSC.ts @@ -110,6 +110,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, diff --git a/Docs/Schemas/LayerConfigJsonJSC.ts b/Docs/Schemas/LayerConfigJsonJSC.ts index 54f232e7b7..e0cf24bc70 100644 --- a/Docs/Schemas/LayerConfigJsonJSC.ts +++ b/Docs/Schemas/LayerConfigJsonJSC.ts @@ -18,7 +18,7 @@ export default { ] }, "description": { - "description": "A description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic\nquestion: How would you describe the features that are shown on this layer?", + "description": "question: How would you describe the features that are shown on this layer?\n\nA description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic", "anyOf": [ { "$ref": "#/definitions/Record" @@ -28,6 +28,10 @@ export default { } ] }, + "searchTerms": { + "description": "question: What are some other terms used to describe these objects?\n\nThis is used in the search functionality", + "$ref": "#/definitions/Record" + }, "source": { "description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\nifunset: Determine the tags automatically based on the presets\ngroup: Basic", "anyOf": [ @@ -324,7 +328,7 @@ export default { } }, "filter": { - "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\n\ngroup: filters", + "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\nNote: adding \"#filter\":\"no-auto\" will disable the filters added by tagRenderings\n\ngroup: filters", "anyOf": [ { "type": "array", @@ -352,6 +356,13 @@ export default { } ] }, + "#filter": { + "description": "Set this to disable the feature that tagRenderings can introduce filters", + "enum": [ + "no-auto" + ], + "type": "string" + }, "deletion": { "description": "This block defines under what circumstances the delete dialog is shown for objects of this layer.\nIf set, a dialog is shown to the user to (soft) delete the point.\nThe dialog is built to be user friendly and to prevent mistakes.\nIf deletion is not possible, the dialog will hide itself and show the reason of non-deletability instead.\n\nTo configure, the following values are possible:\n\n- false: never ever show the delete button\n- true: show the default delete button\n- undefined: use the mapcomplete default to show deletion or not. Currently, this is the same as 'false' but this will change in the future\n- or: a hash with options (see below)\n\n### The delete dialog\n\n\n\n#### Hard deletion if enough experience\n\nA feature can only be deleted from OpenStreetMap by mapcomplete if:\n\n- It is a node\n- No ways or relations use the node\n- The logged-in user has enough experience OR the user is the only one to have edited the point previously\n- The logged-in user has no unread messages (or has a ton of experience)\n- The user did not select one of the 'non-delete-options' (see below)\n\nIn all other cases, a 'soft deletion' is used.\n\n#### Soft deletion\n\nA 'soft deletion' is when the point isn't deleted fromOSM but retagged so that it'll won't how up in the mapcomplete theme anymore.\nThis makes it look like it was deleted, without doing damage. A fixme will be added to the point.\n\nNote that a soft deletion is _only_ possible if these tags are provided by the theme creator, as they'll be different for every theme\n\n##### No-delete options\n\nIn some cases, the contributor might want to delete something for the wrong reason (e.g. someone who wants to have a path removed \"because the path is on their private property\").\nHowever, the path exists in reality and should thus be on OSM - otherwise the next contributor will pass by and notice \"hey, there is a path missing here! Let me redraw it in OSM!)\n\nThe correct approach is to retag the feature in such a way that it is semantically correct *and* that it doesn't show up on the theme anymore.\nA no-delete option is offered as 'reason to delete it', but secretly retags.\n\ngroup: editing\ntypes: Use an advanced delete configuration ; boolean\niftrue: Allow deletion\niffalse: Do not allow deletion\nifunset: Do not allow deletion", "anyOf": [ @@ -413,6 +424,17 @@ export default { "enableMorePrivacy": { "description": "question: Should a theme using this layer leak some location info when making changes?\n\nWhen a changeset is made, a 'distance to object'-class is written to the changeset.\nFor some particular themes and layers, this might leak too much information, and we want to obfuscate this\n\nifunset: Write 'change_within_x_m' as usual and if GPS is enabled\niftrue: Do not write 'change_within_x_m' and do not indicate that this was done by survey", "type": "boolean" + }, + "snapName": { + "description": "question: When a feature is snapped to this name, how should this item be called?\n\nIn the move wizard, the option `snap object onto {snapName}` is shown\n\ngroup: hidden", + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] } }, "required": [ @@ -476,6 +498,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, @@ -805,16 +892,23 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } }, - "Record": { - "type": "object" - }, "MappingConfigJson": { "type": "object", "properties": { @@ -1320,7 +1414,7 @@ export default { ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -1432,10 +1526,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "required": [ @@ -1557,7 +1661,7 @@ export default { ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -1669,10 +1773,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } }, @@ -1786,48 +1900,7 @@ export default { "description": "The options for a filter\nIf there are multiple options these will be a list of radio buttons\nIf there is only one option this will be a checkbox\nFiltering is done based on the given osmTags that are compared to the objects in that layer.\n\nAn example which searches by name:\n\n```\n{\n \"id\": \"shop-name\",\n \"options\": [\n {\n \"fields\": [\n {\n \"name\": \"search\",\n \"type\": \"string\"\n }\n ],\n \"osmTags\": \"name~i~.*{search}.*\",\n \"question\": {\n \"en\": \"Only show shops with name {search}\",\n }\n }\n ]\n }\n ```", "type": "array", "items": { - "type": "object", - "properties": { - "question": {}, - "osmTags": { - "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", - "anyOf": [ - { - "$ref": "#/definitions/{and:TagConfigJson[];}" - }, - { - "$ref": "#/definitions/{or:TagConfigJson[];}" - }, - { - "type": "string" - } - ] - }, - "default": { - "type": "boolean" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": [ - "question" - ] + "$ref": "#/definitions/FilterConfigOptionJson" } }, "#": { diff --git a/Docs/Schemas/LayoutConfigJsonJSC.ts b/Docs/Schemas/LayoutConfigJsonJSC.ts index 042e67886b..ad1a859c50 100644 --- a/Docs/Schemas/LayoutConfigJsonJSC.ts +++ b/Docs/Schemas/LayoutConfigJsonJSC.ts @@ -378,6 +378,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, @@ -707,16 +772,23 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } }, - "Record": { - "type": "object" - }, "MappingConfigJson": { "type": "object", "properties": { @@ -1222,7 +1294,7 @@ export default { ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -1334,10 +1406,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "required": [ @@ -1459,7 +1541,7 @@ export default { ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -1571,10 +1653,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } }, @@ -1688,48 +1780,7 @@ export default { "description": "The options for a filter\nIf there are multiple options these will be a list of radio buttons\nIf there is only one option this will be a checkbox\nFiltering is done based on the given osmTags that are compared to the objects in that layer.\n\nAn example which searches by name:\n\n```\n{\n \"id\": \"shop-name\",\n \"options\": [\n {\n \"fields\": [\n {\n \"name\": \"search\",\n \"type\": \"string\"\n }\n ],\n \"osmTags\": \"name~i~.*{search}.*\",\n \"question\": {\n \"en\": \"Only show shops with name {search}\",\n }\n }\n ]\n }\n ```", "type": "array", "items": { - "type": "object", - "properties": { - "question": {}, - "osmTags": { - "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", - "anyOf": [ - { - "$ref": "#/definitions/{and:TagConfigJson[];}" - }, - { - "$ref": "#/definitions/{or:TagConfigJson[];}" - }, - { - "type": "string" - } - ] - }, - "default": { - "type": "boolean" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "name" - ] - } - } - }, - "required": [ - "question" - ] + "$ref": "#/definitions/FilterConfigOptionJson" } }, "#": { @@ -1942,7 +1993,7 @@ export default { ] }, "description": { - "description": "A description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic\nquestion: How would you describe the features that are shown on this layer?", + "description": "question: How would you describe the features that are shown on this layer?\n\nA description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic", "anyOf": [ { "$ref": "#/definitions/Record" @@ -1952,6 +2003,10 @@ export default { } ] }, + "searchTerms": { + "description": "question: What are some other terms used to describe these objects?\n\nThis is used in the search functionality", + "$ref": "#/definitions/Record" + }, "source": { "description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\nifunset: Determine the tags automatically based on the presets\ngroup: Basic", "anyOf": [ @@ -2248,7 +2303,7 @@ export default { } }, "filter": { - "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\n\ngroup: filters", + "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\nNote: adding \"#filter\":\"no-auto\" will disable the filters added by tagRenderings\n\ngroup: filters", "anyOf": [ { "type": "array", @@ -2276,6 +2331,13 @@ export default { } ] }, + "#filter": { + "description": "Set this to disable the feature that tagRenderings can introduce filters", + "enum": [ + "no-auto" + ], + "type": "string" + }, "deletion": { "description": "This block defines under what circumstances the delete dialog is shown for objects of this layer.\nIf set, a dialog is shown to the user to (soft) delete the point.\nThe dialog is built to be user friendly and to prevent mistakes.\nIf deletion is not possible, the dialog will hide itself and show the reason of non-deletability instead.\n\nTo configure, the following values are possible:\n\n- false: never ever show the delete button\n- true: show the default delete button\n- undefined: use the mapcomplete default to show deletion or not. Currently, this is the same as 'false' but this will change in the future\n- or: a hash with options (see below)\n\n### The delete dialog\n\n\n\n#### Hard deletion if enough experience\n\nA feature can only be deleted from OpenStreetMap by mapcomplete if:\n\n- It is a node\n- No ways or relations use the node\n- The logged-in user has enough experience OR the user is the only one to have edited the point previously\n- The logged-in user has no unread messages (or has a ton of experience)\n- The user did not select one of the 'non-delete-options' (see below)\n\nIn all other cases, a 'soft deletion' is used.\n\n#### Soft deletion\n\nA 'soft deletion' is when the point isn't deleted fromOSM but retagged so that it'll won't how up in the mapcomplete theme anymore.\nThis makes it look like it was deleted, without doing damage. A fixme will be added to the point.\n\nNote that a soft deletion is _only_ possible if these tags are provided by the theme creator, as they'll be different for every theme\n\n##### No-delete options\n\nIn some cases, the contributor might want to delete something for the wrong reason (e.g. someone who wants to have a path removed \"because the path is on their private property\").\nHowever, the path exists in reality and should thus be on OSM - otherwise the next contributor will pass by and notice \"hey, there is a path missing here! Let me redraw it in OSM!)\n\nThe correct approach is to retag the feature in such a way that it is semantically correct *and* that it doesn't show up on the theme anymore.\nA no-delete option is offered as 'reason to delete it', but secretly retags.\n\ngroup: editing\ntypes: Use an advanced delete configuration ; boolean\niftrue: Allow deletion\niffalse: Do not allow deletion\nifunset: Do not allow deletion", "anyOf": [ @@ -2337,6 +2399,17 @@ export default { "enableMorePrivacy": { "description": "question: Should a theme using this layer leak some location info when making changes?\n\nWhen a changeset is made, a 'distance to object'-class is written to the changeset.\nFor some particular themes and layers, this might leak too much information, and we want to obfuscate this\n\nifunset: Write 'change_within_x_m' as usual and if GPS is enabled\niftrue: Do not write 'change_within_x_m' and do not indicate that this was done by survey", "type": "boolean" + }, + "snapName": { + "description": "question: When a feature is snapped to this name, how should this item be called?\n\nIn the move wizard, the option `snap object onto {snapName}` is shown\n\ngroup: hidden", + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] } }, "required": [ @@ -2363,7 +2436,7 @@ export default { ] }, "description": { - "description": "A description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic\nquestion: How would you describe the features that are shown on this layer?", + "description": "question: How would you describe the features that are shown on this layer?\n\nA description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic", "anyOf": [ { "$ref": "#/definitions/Record" @@ -2373,6 +2446,10 @@ export default { } ] }, + "searchTerms": { + "description": "question: What are some other terms used to describe these objects?\n\nThis is used in the search functionality", + "$ref": "#/definitions/Record" + }, "source": { "description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\nifunset: Determine the tags automatically based on the presets\ngroup: Basic", "anyOf": [ @@ -2669,7 +2746,7 @@ export default { } }, "filter": { - "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\n\ngroup: filters", + "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\nNote: adding \"#filter\":\"no-auto\" will disable the filters added by tagRenderings\n\ngroup: filters", "anyOf": [ { "type": "array", @@ -2697,6 +2774,13 @@ export default { } ] }, + "#filter": { + "description": "Set this to disable the feature that tagRenderings can introduce filters", + "enum": [ + "no-auto" + ], + "type": "string" + }, "deletion": { "description": "This block defines under what circumstances the delete dialog is shown for objects of this layer.\nIf set, a dialog is shown to the user to (soft) delete the point.\nThe dialog is built to be user friendly and to prevent mistakes.\nIf deletion is not possible, the dialog will hide itself and show the reason of non-deletability instead.\n\nTo configure, the following values are possible:\n\n- false: never ever show the delete button\n- true: show the default delete button\n- undefined: use the mapcomplete default to show deletion or not. Currently, this is the same as 'false' but this will change in the future\n- or: a hash with options (see below)\n\n### The delete dialog\n\n\n\n#### Hard deletion if enough experience\n\nA feature can only be deleted from OpenStreetMap by mapcomplete if:\n\n- It is a node\n- No ways or relations use the node\n- The logged-in user has enough experience OR the user is the only one to have edited the point previously\n- The logged-in user has no unread messages (or has a ton of experience)\n- The user did not select one of the 'non-delete-options' (see below)\n\nIn all other cases, a 'soft deletion' is used.\n\n#### Soft deletion\n\nA 'soft deletion' is when the point isn't deleted fromOSM but retagged so that it'll won't how up in the mapcomplete theme anymore.\nThis makes it look like it was deleted, without doing damage. A fixme will be added to the point.\n\nNote that a soft deletion is _only_ possible if these tags are provided by the theme creator, as they'll be different for every theme\n\n##### No-delete options\n\nIn some cases, the contributor might want to delete something for the wrong reason (e.g. someone who wants to have a path removed \"because the path is on their private property\").\nHowever, the path exists in reality and should thus be on OSM - otherwise the next contributor will pass by and notice \"hey, there is a path missing here! Let me redraw it in OSM!)\n\nThe correct approach is to retag the feature in such a way that it is semantically correct *and* that it doesn't show up on the theme anymore.\nA no-delete option is offered as 'reason to delete it', but secretly retags.\n\ngroup: editing\ntypes: Use an advanced delete configuration ; boolean\niftrue: Allow deletion\niffalse: Do not allow deletion\nifunset: Do not allow deletion", "anyOf": [ @@ -2758,6 +2842,17 @@ export default { "enableMorePrivacy": { "description": "question: Should a theme using this layer leak some location info when making changes?\n\nWhen a changeset is made, a 'distance to object'-class is written to the changeset.\nFor some particular themes and layers, this might leak too much information, and we want to obfuscate this\n\nifunset: Write 'change_within_x_m' as usual and if GPS is enabled\niftrue: Do not write 'change_within_x_m' and do not indicate that this was done by survey", "type": "boolean" + }, + "snapName": { + "description": "question: When a feature is snapped to this name, how should this item be called?\n\nIn the move wizard, the option `snap object onto {snapName}` is shown\n\ngroup: hidden", + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] } } }, diff --git a/Docs/Schemas/LineRenderingConfigJsonJSC.ts b/Docs/Schemas/LineRenderingConfigJsonJSC.ts index 3c6e0ce4c6..538d32d37c 100644 --- a/Docs/Schemas/LineRenderingConfigJsonJSC.ts +++ b/Docs/Schemas/LineRenderingConfigJsonJSC.ts @@ -149,6 +149,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, @@ -478,10 +543,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } } diff --git a/Docs/Schemas/MappingConfigJsonJSC.ts b/Docs/Schemas/MappingConfigJsonJSC.ts index 5ea7c2c7ec..038d93acf2 100644 --- a/Docs/Schemas/MappingConfigJsonJSC.ts +++ b/Docs/Schemas/MappingConfigJsonJSC.ts @@ -176,6 +176,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, @@ -505,15 +570,22 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } - }, - "Record": { - "type": "object" } }, "$schema": "http://json-schema.org/draft-07/schema#" diff --git a/Docs/Schemas/MinimalTagRenderingConfigJsonJSC.ts b/Docs/Schemas/MinimalTagRenderingConfigJsonJSC.ts index 5bca2a13d9..5a980647ce 100644 --- a/Docs/Schemas/MinimalTagRenderingConfigJsonJSC.ts +++ b/Docs/Schemas/MinimalTagRenderingConfigJsonJSC.ts @@ -84,6 +84,71 @@ export default { "required": [ "or" ] + }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" } }, "$schema": "http://json-schema.org/draft-07/schema#" diff --git a/Docs/Schemas/MoveConfigJsonJSC.ts b/Docs/Schemas/MoveConfigJsonJSC.ts index ae5a5b1fab..151092ed4c 100644 --- a/Docs/Schemas/MoveConfigJsonJSC.ts +++ b/Docs/Schemas/MoveConfigJsonJSC.ts @@ -67,6 +67,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, diff --git a/Docs/Schemas/PointRenderingConfigJsonJSC.ts b/Docs/Schemas/PointRenderingConfigJsonJSC.ts index b5842c21bd..74f8ff25c0 100644 --- a/Docs/Schemas/PointRenderingConfigJsonJSC.ts +++ b/Docs/Schemas/PointRenderingConfigJsonJSC.ts @@ -223,6 +223,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, @@ -552,10 +617,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } } diff --git a/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts b/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts index 72e43b9964..60bf2d5b80 100644 --- a/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts +++ b/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts @@ -114,7 +114,7 @@ export default { ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -226,10 +226,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "required": [ @@ -292,6 +302,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, @@ -621,16 +696,23 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } }, - "Record": { - "type": "object" - }, "MappingConfigJson": { "type": "object", "properties": { diff --git a/Docs/Schemas/RewritableConfigJsonJSC.ts b/Docs/Schemas/RewritableConfigJsonJSC.ts index 56a60a4aca..8aeff2d24a 100644 --- a/Docs/Schemas/RewritableConfigJsonJSC.ts +++ b/Docs/Schemas/RewritableConfigJsonJSC.ts @@ -103,6 +103,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, @@ -432,16 +497,23 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } } }, - "Record": { - "type": "object" - }, "MappingConfigJson": { "type": "object", "properties": { diff --git a/Docs/Schemas/TagRenderingConfigJsonJSC.ts b/Docs/Schemas/TagRenderingConfigJsonJSC.ts index bebfb0d5cf..ccad4d5a92 100644 --- a/Docs/Schemas/TagRenderingConfigJsonJSC.ts +++ b/Docs/Schemas/TagRenderingConfigJsonJSC.ts @@ -170,10 +170,20 @@ export default { }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "definitions": { @@ -233,6 +243,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" } diff --git a/Docs/Schemas/UnitConfigJsonJSC.ts b/Docs/Schemas/UnitConfigJsonJSC.ts index 7da38382ae..c3fbd86af8 100644 --- a/Docs/Schemas/UnitConfigJsonJSC.ts +++ b/Docs/Schemas/UnitConfigJsonJSC.ts @@ -89,6 +89,71 @@ export default { "or" ] }, + "FilterConfigOptionJson": { + "type": "object", + "properties": { + "question": { + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] + }, + "searchTerms": { + "$ref": "#/definitions/Record" + }, + "emoji": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "osmTags": { + "description": "The main representation of Tags.\nSee https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md for more documentation\n\ntype: tag", + "anyOf": [ + { + "$ref": "#/definitions/{and:TagConfigJson[];}" + }, + { + "$ref": "#/definitions/{or:TagConfigJson[];}" + }, + { + "type": "string" + } + ] + }, + "default": { + "type": "boolean" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "If name is `search`, use \"_first_comment~.*{search}.*\" as osmTags", + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "question" + ] + }, + "Record": { + "type": "object" + }, "Record>": { "type": "object" }, diff --git a/Docs/SpecialInputElements.md b/Docs/SpecialInputElements.md index ca73d0acaf..a7746d5f3b 100644 --- a/Docs/SpecialInputElements.md +++ b/Docs/SpecialInputElements.md @@ -38,6 +38,7 @@ The listed types here trigger a special input element. Use them in `tagrendering 32. [nsi](#nsi) 33. [Helper arguments](#helper-arguments) 34. [currency](#currency) +35. [regex](#regex) ### string A simple piece of text which is at most 255 characters long @@ -146,10 +147,12 @@ name | doc ------ | ----- options | A JSON-object of type `{ prefix: string, postfix: string }`. -| subarg | doc | -|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------| -| prefix | Piece of text that will always be added to the front of the generated opening hours. If the OSM-data does not start with this, it will fail to parse. | -| postfix | Piece of text that will always be added to the end of the generated opening hours | +subarg \| doc +-------- \| ----- +prefix \| Piece of text that will always be added to the front of the generated opening hours. If the OSM-data does not start with this, it will fail to parse. +postfix \| Piece of text that will always be added to the end of the generated opening hours + + ### Example usage @@ -210,6 +213,8 @@ addExtraTags \| Extra tags to add to the suggestions, e.g. `nobrand=yes`. ### currency Validates monetary amounts +### regex +Validates a regex This document is autogenerated from [src/UI/InputElement/Validators.ts](https://github.com/pietervdvn/MapComplete/blob/develop/src/UI/InputElement/Validators.ts) diff --git a/Docs/SpecialRenderings.md b/Docs/SpecialRenderings.md index c7739290bc..6e73e69d8c 100644 --- a/Docs/SpecialRenderings.md +++ b/Docs/SpecialRenderings.md @@ -335,11 +335,11 @@ Sends the images linked to the current object to plantnet.org and asks it what p | name | default | description | -----|-----|----- | -| image_key | image,mapillary,image,wikidata,wikimedia_commons,image,image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | +| image_key | image,mapillary,image,wikidata,wikimedia_commons,image,panoramax,image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | #### Example usage of plantnet_detection -`{plantnet_detection(image,mapillary,image,wikidata,wikimedia_commons,image,image)}` +`{plantnet_detection(image,mapillary,image,wikidata,wikimedia_commons,image,panoramax,image)}` ### tag_apply @@ -632,11 +632,11 @@ Creates an image carousel for the given sources. An attempt will be made to gues | name | default | description | -----|-----|----- | -| image_key | image,mapillary,image,wikidata,wikimedia_commons,image,image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | +| image_key | image,mapillary,image,wikidata,wikimedia_commons,image,panoramax,image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | #### Example usage of image_carousel -`{image_carousel(image,mapillary,image,wikidata,wikimedia_commons,image,image)}` +`{image_carousel(image,mapillary,image,wikidata,wikimedia_commons,image,panoramax,image)}` ### image_upload @@ -1141,6 +1141,18 @@ An editable tag rendering which allows to change the type `{preset_type_select()}` +### clear_all + +Clears all user preferences + +| name | default | description | +-----|-----|----- | +| text | _undefined_ | Text to show on the button | + +#### Example usage of clear_all + +`{clear_all()}` + ### auto_apply A button to run many actions for many features at once. To effectively use this button, you'll need some ingredients: diff --git a/Docs/TagInfo/mapcomplete_advertising.json b/Docs/TagInfo/mapcomplete_advertising.json index cdf3a1579e..b62b0c3236 100644 --- a/Docs/TagInfo/mapcomplete_advertising.json +++ b/Docs/TagInfo/mapcomplete_advertising.json @@ -93,6 +93,16 @@ "description": "Layer 'Advertisement' shows advertising=wall_painting with a fixed text, namely 'This is a wall painting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Advertising')", "value": "wall_painting" }, + { + "key": "advertising", + "description": "Layer 'Advertisement' shows advertising=tilework with a fixed text, namely 'This is tilework - the advertisement is painted on tiles' and allows to pick this as a default answer (in the mapcomplete.org theme 'Advertising')", + "value": "tilework" + }, + { + "key": "advertising", + "description": "Layer 'Advertisement' shows advertising=relief with a fixed text, namely 'This is a relief' and allows to pick this as a default answer (in the mapcomplete.org theme 'Advertising')", + "value": "relief" + }, { "key": "animated", "description": "Layer 'Advertisement' shows animated=no with a fixed text, namely 'Static, always shows the same message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Advertising') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", @@ -221,6 +231,16 @@ "key": "ref", "description": "Layer 'Advertisement' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Advertising') (This is only shown if advertising!=sign)" }, + { + "key": "historic", + "description": "Layer 'Advertisement' shows historic=advertising with a fixed text, namely 'This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Advertising')", + "value": "advertising" + }, + { + "key": "historic", + "description": "Layer 'Advertisement' shows historic= with a fixed text, namely 'This advertisement sign has no historic value (the business still exists and has no heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Advertising') Picking this answer will delete the key historic.", + "value": "" + }, { "key": "amenity", "description": "The MapComplete theme Advertising has a layer Shelter showing features with this tag", diff --git a/Docs/TagInfo/mapcomplete_bicycle_parkings.json b/Docs/TagInfo/mapcomplete_bicycle_parkings.json index d6dd74d0f8..b9465f2491 100644 --- a/Docs/TagInfo/mapcomplete_bicycle_parkings.json +++ b/Docs/TagInfo/mapcomplete_bicycle_parkings.json @@ -44,6 +44,11 @@ "description": "Layer 'Bike parking' shows bicycle_parking=stands with a fixed text, namely 'Stands' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle parkings')", "value": "stands" }, + { + "key": "bicycle_parking", + "description": "Layer 'Bike parking' shows bicycle_parking=safe_loops with a fixed text, namely 'Rack with side loops' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle parkings')", + "value": "safe_loops" + }, { "key": "bicycle_parking", "description": "Layer 'Bike parking' shows bicycle_parking=wall_loops with a fixed text, namely 'Wheelbenders / rack' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle parkings')", diff --git a/Docs/TagInfo/mapcomplete_cafes_and_pubs.json b/Docs/TagInfo/mapcomplete_cafes_and_pubs.json index 65c0217a62..a71bfa1560 100644 --- a/Docs/TagInfo/mapcomplete_cafes_and_pubs.json +++ b/Docs/TagInfo/mapcomplete_cafes_and_pubs.json @@ -275,6 +275,11 @@ "description": "Layer 'Cafés and pubs' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cafés and pubs')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Cafés and pubs' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cafés and pubs')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Cafés and pubs' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cafés and pubs') (This is only shown if internet_access!=no & internet_access~.+)", @@ -416,6 +421,11 @@ "description": "Layer 'Outdoor Seating' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cafés and pubs')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Outdoor Seating' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cafés and pubs')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Outdoor Seating' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cafés and pubs') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_circular_economy.json b/Docs/TagInfo/mapcomplete_circular_economy.json index 04061fce87..c8f7e89229 100644 --- a/Docs/TagInfo/mapcomplete_circular_economy.json +++ b/Docs/TagInfo/mapcomplete_circular_economy.json @@ -1935,6 +1935,11 @@ "description": "Layer 'Second hand shops' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Circular economy')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Second hand shops' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Circular economy')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Second hand shops' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Circular economy') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_climbing.json b/Docs/TagInfo/mapcomplete_climbing.json index 280d12de9d..822d176761 100644 --- a/Docs/TagInfo/mapcomplete_climbing.json +++ b/Docs/TagInfo/mapcomplete_climbing.json @@ -455,6 +455,11 @@ "description": "Layer 'Climbing gyms' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Climbing gyms' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Climbing gyms' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if internet_access!=no & internet_access~.+)", @@ -1947,6 +1952,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if internet_access!=no & internet_access~.+)", @@ -2378,7 +2388,12 @@ }, { "key": "operational_status", - "description": "Layer 'Drinking water' shows operational_status= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') Picking this answer will delete the key operational_status.", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') Picking this answer will delete the key operational_status.", + "value": "" + }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') Picking this answer will delete the key disused:amenity.", "value": "" }, { @@ -2391,6 +2406,11 @@ "description": "Layer 'Drinking water' shows operational_status=closed with a fixed text, namely 'This drinking water is closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", "value": "closed" }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows disused:amenity=drinking_water with a fixed text, namely 'This drinking water is permanently closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", + "value": "drinking_water" + }, { "key": "fountain", "description": "Layer 'Drinking water' shows fountain=bubbler with a fixed text, namely 'This is a bubbler fountain. A water jet to drink from is sent upwards, typically controlled by a push button.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", diff --git a/Docs/TagInfo/mapcomplete_cycle_infra.json b/Docs/TagInfo/mapcomplete_cycle_infra.json index f4ae10c9b3..246f7f81dd 100644 --- a/Docs/TagInfo/mapcomplete_cycle_infra.json +++ b/Docs/TagInfo/mapcomplete_cycle_infra.json @@ -902,6 +902,82 @@ "key": "red_turn:straight:bicycle", "description": "Layer 'Crossings' shows red_turn:straight:bicycle=no with a fixed text, namely 'A cyclist can not go straight on if the light is red' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if highway=traffic_signals)", "value": "no" + }, + { + "key": "man_made", + "description": "The MapComplete theme Bicycle infrastructure has a layer Bicycle counters showing features with this tag", + "value": "monitoring_station" + }, + { + "key": "monitoring:bicycle", + "description": "The MapComplete theme Bicycle infrastructure has a layer Bicycle counters showing features with this tag", + "value": "yes" + }, + { + "key": "id", + "description": "Layer 'Bicycle counters' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Bicycle infrastructure') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=digital with a fixed text, namely 'This counter has a digital display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')", + "value": "digital" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=analog with a fixed text, namely 'This counter has an analog display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')", + "value": "analog" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=no with a fixed text, namely 'This counter has no display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')", + "value": "no" + }, + { + "key": "name", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Bicycle infrastructure')" + }, + { + "key": "start_date", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'start_date' (in the mapcomplete.org theme 'Bicycle infrastructure')" + }, + { + "key": "amenity", + "description": "Layer 'Bicycle counters' shows amenity=clock with a fixed text, namely 'This counter has a clock' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')", + "value": "clock" + }, + { + "key": "amenity", + "description": "Layer 'Bicycle counters' shows amenity= with a fixed text, namely 'This counter has no clock' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure') Picking this answer will delete the key amenity.", + "value": "" + }, + { + "key": "ref", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Bicycle infrastructure')" + }, + { + "key": "noref", + "description": "Layer 'Bicycle counters' shows noref=yes with a fixed text, namely 'This counter has no reference number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bicycle infrastructure')", + "value": "yes" + }, + { + "key": "website", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Bicycle infrastructure')" } ] } \ No newline at end of file diff --git a/Docs/TagInfo/mapcomplete_cyclofix.json b/Docs/TagInfo/mapcomplete_cyclofix.json index d0896748b8..5f17f08319 100644 --- a/Docs/TagInfo/mapcomplete_cyclofix.json +++ b/Docs/TagInfo/mapcomplete_cyclofix.json @@ -1886,7 +1886,12 @@ }, { "key": "operational_status", - "description": "Layer 'Drinking water' shows operational_status= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key operational_status.", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key operational_status.", + "value": "" + }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key disused:amenity.", "value": "" }, { @@ -1899,6 +1904,11 @@ "description": "Layer 'Drinking water' shows operational_status=closed with a fixed text, namely 'This drinking water is closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", "value": "closed" }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows disused:amenity=drinking_water with a fixed text, namely 'This drinking water is permanently closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "drinking_water" + }, { "key": "fountain", "description": "Layer 'Drinking water' shows fountain=bubbler with a fixed text, namely 'This is a bubbler fountain. A water jet to drink from is sent upwards, typically controlled by a push button.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", @@ -2621,6 +2631,11 @@ "description": "Layer 'Bike parking' shows bicycle_parking=stands with a fixed text, namely 'Stands' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", "value": "stands" }, + { + "key": "bicycle_parking", + "description": "Layer 'Bike parking' shows bicycle_parking=safe_loops with a fixed text, namely 'Rack with side loops' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "safe_loops" + }, { "key": "bicycle_parking", "description": "Layer 'Bike parking' shows bicycle_parking=wall_loops with a fixed text, namely 'Wheelbenders / rack' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", @@ -4406,6 +4421,11 @@ "description": "Layer 'Vending Machines' shows vending=eggs with a fixed text, namely 'Eggs are sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", "value": "eggs" }, + { + "key": "vending", + "description": "Layer 'Vending Machines' shows vending=ice_cream with a fixed text, namely 'Ice cream is sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "ice_cream" + }, { "key": "vending", "description": "Layer 'Vending Machines' shows vending=cheese with a fixed text, namely 'Cheese is sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", @@ -4749,6 +4769,82 @@ { "key": "operational_status", "description": "Layer 'Vending Machines' shows operational_status~.+ with a fixed text, namely 'The operational status is {operational_status}' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')" + }, + { + "key": "man_made", + "description": "The MapComplete theme Cyclofix - a map for cyclists has a layer Bicycle counters showing features with this tag", + "value": "monitoring_station" + }, + { + "key": "monitoring:bicycle", + "description": "The MapComplete theme Cyclofix - a map for cyclists has a layer Bicycle counters showing features with this tag", + "value": "yes" + }, + { + "key": "id", + "description": "Layer 'Bicycle counters' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=digital with a fixed text, namely 'This counter has a digital display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "digital" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=analog with a fixed text, namely 'This counter has an analog display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "analog" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=no with a fixed text, namely 'This counter has no display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "no" + }, + { + "key": "name", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')" + }, + { + "key": "start_date", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'start_date' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')" + }, + { + "key": "amenity", + "description": "Layer 'Bicycle counters' shows amenity=clock with a fixed text, namely 'This counter has a clock' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "clock" + }, + { + "key": "amenity", + "description": "Layer 'Bicycle counters' shows amenity= with a fixed text, namely 'This counter has no clock' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key amenity.", + "value": "" + }, + { + "key": "ref", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')" + }, + { + "key": "noref", + "description": "Layer 'Bicycle counters' shows noref=yes with a fixed text, namely 'This counter has no reference number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", + "value": "yes" + }, + { + "key": "website", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')" } ] } \ No newline at end of file diff --git a/Docs/TagInfo/mapcomplete_disaster_response.json b/Docs/TagInfo/mapcomplete_disaster_response.json index dfb3f3a1b9..8553c4a7b5 100644 --- a/Docs/TagInfo/mapcomplete_disaster_response.json +++ b/Docs/TagInfo/mapcomplete_disaster_response.json @@ -1,7 +1,7 @@ { "data_format": 1, "project": { - "name": "MapComplete Disaster response", + "name": "MapComplete Disaster response and emergency services", "description": "This map contains elements meant for disaster preparedness and response", "project_url": "https://mapcomplete.org/disaster_response", "doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/", @@ -12,125 +12,147 @@ "tags": [ { "key": "amenity", - "description": "The MapComplete theme Disaster response has a layer Hospitals showing features with this tag", + "description": "The MapComplete theme Disaster response and emergency services has a layer Hospitals showing features with this tag", "value": "hospital" }, { "key": "amenity", - "description": "The MapComplete theme Disaster response has a layer Hospitals showing features with this tag", + "description": "The MapComplete theme Disaster response and emergency services has a layer Hospitals showing features with this tag", "value": "clinic" }, { "key": "id", - "description": "Layer 'Hospitals' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + "description": "Layer 'Hospitals' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" }, { "key": "name", - "description": "Layer 'Hospitals' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "amenity", - "description": "Layer 'Hospitals' shows amenity=clinic with a fixed text, namely 'This is a clinic - patients can not stay overnight' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response')", + "description": "Layer 'Hospitals' shows amenity=clinic with a fixed text, namely 'This is a clinic - patients can not stay overnight' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", "value": "clinic" }, { "key": "amenity", - "description": "Layer 'Hospitals' shows amenity=hospital with a fixed text, namely 'This is a hospital - patients can be admitted here for multiple days' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response')", + "description": "Layer 'Hospitals' shows amenity=hospital with a fixed text, namely 'This is a hospital - patients can be admitted here for multiple days' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", "value": "hospital" }, { "key": "phone", - "description": "Layer 'Hospitals' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "contact:phone", - "description": "Layer 'Hospitals' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "email", - "description": "Layer 'Hospitals' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "contact:email", - "description": "Layer 'Hospitals' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "operator:email", - "description": "Layer 'Hospitals' shows operator:email~.+ with a fixed text, namely '{operator:email}' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows operator:email~.+ with a fixed text, namely '{operator:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "website", - "description": "Layer 'Hospitals' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "contact:website", - "description": "Layer 'Hospitals' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "opening_hours:visitors", - "description": "Layer 'Hospitals' shows and asks freeform values for key 'opening_hours:visitors' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Hospitals' shows and asks freeform values for key 'opening_hours:visitors' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { - "key": "emergency", - "description": "The MapComplete theme Disaster response has a layer Emergency assembly points showing features with this tag", - "value": "assembly_point" + "key": "amenity", + "description": "The MapComplete theme Disaster response and emergency services has a layer Map of fire stations showing features with this tag", + "value": "fire_station" }, { "key": "id", - "description": "Layer 'Emergency assembly points' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" - }, - { - "key": "image", - "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "mapillary", - "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikidata", - "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikipedia", - "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + "description": "Layer 'Map of fire stations' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" }, { "key": "name", - "description": "Layer 'Emergency assembly points' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Map of fire stations' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "addr:street", + "description": "Layer 'Map of fire stations' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "addr:place", + "description": "Layer 'Map of fire stations' shows and asks freeform values for key 'addr:place' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "operator", - "description": "Layer 'Emergency assembly points' shows and asks freeform values for key 'operator' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Map of fire stations' shows and asks freeform values for key 'operator' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { - "key": "assembly_point:earthquake", - "description": "Layer 'Emergency assembly points' shows assembly_point:earthquake=yes with a fixed text, namely 'Earthquake' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response')", - "value": "yes" + "key": "operator", + "description": "Layer 'Map of fire stations' shows operator=Bureau of Fire Protection & operator:type=government with a fixed text, namely 'Bureau of Fire Protection' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "Bureau of Fire Protection" }, { - "key": "assembly_point:flood", - "description": "Layer 'Emergency assembly points' shows assembly_point:flood=yes with a fixed text, namely 'Flood' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response')", - "value": "yes" + "key": "operator:type", + "description": "Layer 'Map of fire stations' shows operator=Bureau of Fire Protection & operator:type=government with a fixed text, namely 'Bureau of Fire Protection' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "government" }, { - "key": "assembly_point:fire", - "description": "Layer 'Emergency assembly points' shows assembly_point:fire=yes with a fixed text, namely 'Fire' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response')", - "value": "yes" + "key": "operator:type", + "description": "Layer 'Map of fire stations' shows and asks freeform values for key 'operator:type' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { - "key": "assembly_point:landslide", - "description": "Layer 'Emergency assembly points' shows assembly_point:landslide=yes with a fixed text, namely 'Landslide' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response')", - "value": "yes" + "key": "operator:type", + "description": "Layer 'Map of fire stations' shows operator:type=government with a fixed text, namely 'The station is operated by the government.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "government" + }, + { + "key": "operator:type", + "description": "Layer 'Map of fire stations' shows operator:type=community with a fixed text, namely 'The station is operated by a community-based, or informal organization.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "community" + }, + { + "key": "operator:type", + "description": "Layer 'Map of fire stations' shows operator:type=ngo with a fixed text, namely 'The station is operated by a formal group of volunteers.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "ngo" + }, + { + "key": "operator:type", + "description": "Layer 'Map of fire stations' shows operator:type=private with a fixed text, namely 'The station is privately operated.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "private" + }, + { + "key": "image", + "description": "The layer 'Map of fire stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Map of fire stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Map of fire stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Map of fire stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" }, { "key": "emergency", - "description": "The MapComplete theme Disaster response has a layer Disaster response organizations showing features with this tag", + "description": "The MapComplete theme Disaster response and emergency services has a layer Disaster response organizations showing features with this tag", "value": "disaster_response" }, { "key": "id", - "description": "Layer 'Disaster response organizations' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + "description": "Layer 'Disaster response organizations' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" }, { "key": "image", @@ -150,15 +172,738 @@ }, { "key": "website", - "description": "Layer 'Disaster response organizations' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Disaster response organizations' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "contact:website", - "description": "Layer 'Disaster response organizations' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Disaster response organizations' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Disaster response and emergency services')" }, { "key": "name", - "description": "Layer 'Disaster response organizations' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response')" + "description": "Layer 'Disaster response organizations' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "amenity", + "description": "The MapComplete theme Disaster response and emergency services has a layer Police stations showing features with this tag", + "value": "police" + }, + { + "key": "police", + "description": "The MapComplete theme Disaster response and emergency services has a layer Police stations showing features with this tag" + }, + { + "key": "id", + "description": "Layer 'Police stations' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "name", + "description": "Layer 'Police stations' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "phone", + "description": "Layer 'Police stations' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:phone", + "description": "Layer 'Police stations' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "email", + "description": "Layer 'Police stations' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:email", + "description": "Layer 'Police stations' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "operator:email", + "description": "Layer 'Police stations' shows operator:email~.+ with a fixed text, namely '{operator:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "website", + "description": "Layer 'Police stations' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:website", + "description": "Layer 'Police stations' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Police stations' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Police stations' shows opening_hours=closed with a fixed text, namely 'Marked as closed for an unspecified time' (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "closed" + }, + { + "key": "detention", + "description": "Layer 'Police stations' shows detention=yes with a fixed text, namely 'This police office has some cells to detain people' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if amenity=police)", + "value": "yes" + }, + { + "key": "detention", + "description": "Layer 'Police stations' shows detention=no with a fixed text, namely 'This police office does not have cells to detain people' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if amenity=police)", + "value": "no" + }, + { + "key": "emergency", + "description": "The MapComplete theme Disaster response and emergency services has a layer Map of fire extinguishers showing features with this tag", + "value": "fire_extinguisher" + }, + { + "key": "id", + "description": "Layer 'Map of fire extinguishers' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "location", + "description": "Layer 'Map of fire extinguishers' shows and asks freeform values for key 'location' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "location", + "description": "Layer 'Map of fire extinguishers' shows location=indoor with a fixed text, namely 'Found indoors.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "indoor" + }, + { + "key": "location", + "description": "Layer 'Map of fire extinguishers' shows location=outdoor with a fixed text, namely 'Found outdoors.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "outdoor" + }, + { + "key": "image", + "description": "The layer 'Map of fire extinguishers allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Map of fire extinguishers allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Map of fire extinguishers allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Map of fire extinguishers allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "emergency", + "description": "The MapComplete theme Disaster response and emergency services has a layer Emergency assembly points showing features with this tag", + "value": "assembly_point" + }, + { + "key": "id", + "description": "Layer 'Emergency assembly points' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Emergency assembly points allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "name", + "description": "Layer 'Emergency assembly points' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "operator", + "description": "Layer 'Emergency assembly points' shows and asks freeform values for key 'operator' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "assembly_point:earthquake", + "description": "Layer 'Emergency assembly points' shows assembly_point:earthquake=yes with a fixed text, namely 'Earthquake' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "assembly_point:flood", + "description": "Layer 'Emergency assembly points' shows assembly_point:flood=yes with a fixed text, namely 'Flood' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "assembly_point:fire", + "description": "Layer 'Emergency assembly points' shows assembly_point:fire=yes with a fixed text, namely 'Fire' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "assembly_point:landslide", + "description": "Layer 'Emergency assembly points' shows assembly_point:landslide=yes with a fixed text, namely 'Landslide' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "emergency", + "description": "The MapComplete theme Disaster response and emergency services has a layer Defibrillators showing features with this tag", + "value": "defibrillator" + }, + { + "key": "id", + "description": "Layer 'Defibrillators' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Defibrillators allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Defibrillators allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Defibrillators allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Defibrillators allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "indoor", + "description": "Layer 'Defibrillators' shows indoor=yes with a fixed text, namely 'This defibrillator is located indoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "indoor", + "description": "Layer 'Defibrillators' shows indoor=no with a fixed text, namely 'This defibrillator is located outdoors' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "no" + }, + { + "key": "access", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'access' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "access", + "description": "Layer 'Defibrillators' shows access=yes with a fixed text, namely 'Publicly accessible' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "access", + "description": "Layer 'Defibrillators' shows access=public with a fixed text, namely 'Publicly accessible' (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "public" + }, + { + "key": "access", + "description": "Layer 'Defibrillators' shows access=customers with a fixed text, namely 'Only accessible to customers' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "customers" + }, + { + "key": "access", + "description": "Layer 'Defibrillators' shows access=private with a fixed text, namely 'Not accessible to the general public (e.g. only accesible to staff, the owners, …)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "private" + }, + { + "key": "access", + "description": "Layer 'Defibrillators' shows access=no with a fixed text, namely 'Not accessible, possibly only for professional use' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "no" + }, + { + "key": "defibrillator", + "description": "Layer 'Defibrillators' shows defibrillator= with a fixed text, namely 'There is no info about the type of device' (in the mapcomplete.org theme 'Disaster response and emergency services') Picking this answer will delete the key defibrillator. (This is only shown if access=no)", + "value": "" + }, + { + "key": "defibrillator", + "description": "Layer 'Defibrillators' shows defibrillator=manual with a fixed text, namely 'This is a manual defibrillator for professionals' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if access=no)", + "value": "manual" + }, + { + "key": "defibrillator", + "description": "Layer 'Defibrillators' shows defibrillator=automatic with a fixed text, namely 'This is a normal automatic defibrillator' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if access=no)", + "value": "automatic" + }, + { + "key": "defibrillator", + "description": "Layer 'Defibrillators' shows defibrillator~.+ with a fixed text, namely 'This is a special type of defibrillator: {defibrillator}' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if access=no)" + }, + { + "key": "level", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'level' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if indoor=yes)" + }, + { + "key": "level", + "description": "Layer 'Defibrillators' shows level=0 with a fixed text, namely 'This defibrillator is on the ground floor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if indoor=yes)", + "value": "0" + }, + { + "key": "level", + "description": "Layer 'Defibrillators' shows level=1 with a fixed text, namely 'This defibrillator is on the first floor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if indoor=yes)", + "value": "1" + }, + { + "key": "defibrillator:location", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'defibrillator:location' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "defibrillator:location:en", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'defibrillator:location:en' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "defibrillator:location:fr", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'defibrillator:location:fr' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _country=be | defibrillator:location:fr~.+)" + }, + { + "key": "wheelchair", + "description": "Layer 'Defibrillators' shows wheelchair=designated with a fixed text, namely 'This place is specially adapted for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "designated" + }, + { + "key": "wheelchair", + "description": "Layer 'Defibrillators' shows wheelchair=yes with a fixed text, namely 'This place is easily reachable with a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "wheelchair", + "description": "Layer 'Defibrillators' shows wheelchair=limited with a fixed text, namely 'It is possible to reach this place in a wheelchair, but it is not easy' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "limited" + }, + { + "key": "wheelchair", + "description": "Layer 'Defibrillators' shows wheelchair=no with a fixed text, namely 'This place is not reachable with a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "no" + }, + { + "key": "ref", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "email", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "phone", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Defibrillators' shows opening_hours=24/7 with a fixed text, namely '24/7 opened (including holidays)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "24/7" + }, + { + "key": "opening_hours", + "description": "Layer 'Defibrillators' shows opening_hours=closed with a fixed text, namely 'Marked as closed for an unspecified time' (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "closed" + }, + { + "key": "description", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'description' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "survey:date", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'survey:date' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "survey:date", + "description": "Layer 'Defibrillators' shows survey:date= with a fixed text, namely 'Checked today!' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') Picking this answer will delete the key survey:date.", + "value": "" + }, + { + "key": "fixme", + "description": "Layer 'Defibrillators' shows and asks freeform values for key 'fixme' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "emergency", + "description": "The MapComplete theme Disaster response and emergency services has a layer Map of hydrants showing features with this tag", + "value": "fire_hydrant" + }, + { + "key": "id", + "description": "Layer 'Map of hydrants' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "colour", + "description": "Layer 'Map of hydrants' shows and asks freeform values for key 'colour' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "colour", + "description": "Layer 'Map of hydrants' shows colour=yellow with a fixed text, namely 'The hydrant color is yellow.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yellow" + }, + { + "key": "colour", + "description": "Layer 'Map of hydrants' shows colour=red with a fixed text, namely 'The hydrant color is red.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "red" + }, + { + "key": "fire_hydrant:type", + "description": "Layer 'Map of hydrants' shows and asks freeform values for key 'fire_hydrant:type' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "fire_hydrant:type", + "description": "Layer 'Map of hydrants' shows fire_hydrant:type=pillar with a fixed text, namely 'Pillar type.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "pillar" + }, + { + "key": "fire_hydrant:type", + "description": "Layer 'Map of hydrants' shows fire_hydrant:type=pipe with a fixed text, namely 'Pipe type.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "pipe" + }, + { + "key": "fire_hydrant:type", + "description": "Layer 'Map of hydrants' shows fire_hydrant:type=wall with a fixed text, namely 'Wall type.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "wall" + }, + { + "key": "fire_hydrant:type", + "description": "Layer 'Map of hydrants' shows fire_hydrant:type=underground with a fixed text, namely 'Underground type.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "underground" + }, + { + "key": "emergency", + "description": "Layer 'Map of hydrants' shows emergency=fire_hydrant with a fixed text, namely 'The hydrant is (fully or partially) working' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "fire_hydrant" + }, + { + "key": "disused:emergency", + "description": "Layer 'Map of hydrants' shows disused:emergency=fire_hydrant & emergency= with a fixed text, namely 'The hydrant is unavailable' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "fire_hydrant" + }, + { + "key": "emergency", + "description": "Layer 'Map of hydrants' shows disused:emergency=fire_hydrant & emergency= with a fixed text, namely 'The hydrant is unavailable' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') Picking this answer will delete the key emergency.", + "value": "" + }, + { + "key": "removed:emergency", + "description": "Layer 'Map of hydrants' shows removed:emergency=fire_hydrant & emergency= with a fixed text, namely 'The hydrant has been removed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "fire_hydrant" + }, + { + "key": "emergency", + "description": "Layer 'Map of hydrants' shows removed:emergency=fire_hydrant & emergency= with a fixed text, namely 'The hydrant has been removed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services') Picking this answer will delete the key emergency.", + "value": "" + }, + { + "key": "fire_hydrant:diameter", + "description": "Layer 'Map of hydrants' shows and asks freeform values for key 'fire_hydrant:diameter' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "couplings", + "description": "Layer 'Map of hydrants' shows and asks freeform values for key 'couplings' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "couplings:type", + "description": "Layer 'Map of hydrants' shows and asks freeform values for key 'couplings:type' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "couplings:type", + "description": "Layer 'Map of hydrants' shows couplings:type=Storz with a fixed text, namely 'Storz coupling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "Storz" + }, + { + "key": "couplings:type", + "description": "Layer 'Map of hydrants' shows couplings:type=UNI with a fixed text, namely 'UNI coupling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "UNI" + }, + { + "key": "couplings:type", + "description": "Layer 'Map of hydrants' shows couplings:type=Barcelona with a fixed text, namely 'Barcelona coupling' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "Barcelona" + }, + { + "key": "couplings:diameters", + "description": "Layer 'Map of hydrants' shows and asks freeform values for key 'couplings:diameters' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "image", + "description": "The layer 'Map of hydrants allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Map of hydrants allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Map of hydrants allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Map of hydrants allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "amenity", + "description": "The MapComplete theme Disaster response and emergency services has a layer Doctors showing features with this tag", + "value": "doctors" + }, + { + "key": "id", + "description": "Layer 'Doctors' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Doctors allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Doctors allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Doctors allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Doctors allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "name", + "description": "Layer 'Doctors' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Doctors' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Doctors' shows opening_hours=\"by appointment\" with a fixed text, namely 'Only by appointment' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "\"by appointment\"" + }, + { + "key": "opening_hours", + "description": "Layer 'Doctors' shows opening_hours~^(\"by appointment\"|by appointment)$ with a fixed text, namely 'Only by appointment' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Doctors' shows opening_hours=closed with a fixed text, namely 'Marked as closed for an unspecified time' (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "closed" + }, + { + "key": "phone", + "description": "Layer 'Doctors' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:phone", + "description": "Layer 'Doctors' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "email", + "description": "Layer 'Doctors' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:email", + "description": "Layer 'Doctors' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "operator:email", + "description": "Layer 'Doctors' shows operator:email~.+ with a fixed text, namely '{operator:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "website", + "description": "Layer 'Doctors' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:website", + "description": "Layer 'Doctors' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "healthcare:speciality", + "description": "Layer 'Doctors' shows and asks freeform values for key 'healthcare:speciality' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "healthcare:speciality", + "description": "Layer 'Doctors' shows healthcare:speciality=general with a fixed text, namely 'This is a general practitioner' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "general" + }, + { + "key": "healthcare:speciality", + "description": "Layer 'Doctors' shows healthcare:speciality=gynaecology with a fixed text, namely 'This is a gynaecologist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "gynaecology" + }, + { + "key": "healthcare:speciality", + "description": "Layer 'Doctors' shows healthcare:speciality=psychiatry with a fixed text, namely 'This is a psychiatrist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "psychiatry" + }, + { + "key": "healthcare:speciality", + "description": "Layer 'Doctors' shows healthcare:speciality=paediatrics with a fixed text, namely 'This is a paediatrician' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "paediatrics" + }, + { + "key": "emergency", + "description": "The MapComplete theme Disaster response and emergency services has a layer Map of ambulance stations showing features with this tag", + "value": "ambulance_station" + }, + { + "key": "id", + "description": "Layer 'Map of ambulance stations' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "name", + "description": "Layer 'Map of ambulance stations' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "addr:street", + "description": "Layer 'Map of ambulance stations' shows and asks freeform values for key 'addr:street' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "addr:place", + "description": "Layer 'Map of ambulance stations' shows and asks freeform values for key 'addr:place' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "operator", + "description": "Layer 'Map of ambulance stations' shows and asks freeform values for key 'operator' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "operator:type", + "description": "Layer 'Map of ambulance stations' shows and asks freeform values for key 'operator:type' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "operator:type", + "description": "Layer 'Map of ambulance stations' shows operator:type=government with a fixed text, namely 'The station is operated by the government.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "government" + }, + { + "key": "operator:type", + "description": "Layer 'Map of ambulance stations' shows operator:type=community with a fixed text, namely 'The station is operated by a community-based, or informal organization.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "community" + }, + { + "key": "operator:type", + "description": "Layer 'Map of ambulance stations' shows operator:type=ngo with a fixed text, namely 'The station is operated by a formal group of volunteers.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "ngo" + }, + { + "key": "operator:type", + "description": "Layer 'Map of ambulance stations' shows operator:type=private with a fixed text, namely 'The station is privately operated.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "private" + }, + { + "key": "image", + "description": "The layer 'Map of ambulance stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Map of ambulance stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Map of ambulance stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Map of ambulance stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "amenity", + "description": "The MapComplete theme Disaster response and emergency services has a layer Pharmacies showing features with this tag", + "value": "pharmacy" + }, + { + "key": "id", + "description": "Layer 'Pharmacies' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Disaster response and emergency services') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Pharmacies allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Pharmacies allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Pharmacies allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Pharmacies allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "name", + "description": "Layer 'Pharmacies' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Pharmacies' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "opening_hours", + "description": "Layer 'Pharmacies' shows opening_hours=closed with a fixed text, namely 'Marked as closed for an unspecified time' (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "closed" + }, + { + "key": "phone", + "description": "Layer 'Pharmacies' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:phone", + "description": "Layer 'Pharmacies' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "email", + "description": "Layer 'Pharmacies' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:email", + "description": "Layer 'Pharmacies' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "operator:email", + "description": "Layer 'Pharmacies' shows operator:email~.+ with a fixed text, namely '{operator:email}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "website", + "description": "Layer 'Pharmacies' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "contact:website", + "description": "Layer 'Pharmacies' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Disaster response and emergency services')" + }, + { + "key": "payment:cash", + "description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "payment:cards", + "description": "Layer 'Pharmacies' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "payment:qr_code", + "description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "wheelchair", + "description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "yes" + }, + { + "key": "wheelchair", + "description": "Layer 'Pharmacies' shows wheelchair=no with a fixed text, namely 'This pharmacy is hard to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "no" + }, + { + "key": "wheelchair", + "description": "Layer 'Pharmacies' shows wheelchair=limited with a fixed text, namely 'This pharmacy has limited access for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Disaster response and emergency services')", + "value": "limited" } ] } \ No newline at end of file diff --git a/Docs/TagInfo/mapcomplete_drinking_water.json b/Docs/TagInfo/mapcomplete_drinking_water.json index 17427e461d..0d617c68c7 100644 --- a/Docs/TagInfo/mapcomplete_drinking_water.json +++ b/Docs/TagInfo/mapcomplete_drinking_water.json @@ -51,7 +51,12 @@ }, { "key": "operational_status", - "description": "Layer 'Drinking water' shows operational_status= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Drinking Water') Picking this answer will delete the key operational_status.", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Drinking Water') Picking this answer will delete the key operational_status.", + "value": "" + }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Drinking Water') Picking this answer will delete the key disused:amenity.", "value": "" }, { @@ -64,6 +69,11 @@ "description": "Layer 'Drinking water' shows operational_status=closed with a fixed text, namely 'This drinking water is closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Drinking Water')", "value": "closed" }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows disused:amenity=drinking_water with a fixed text, namely 'This drinking water is permanently closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Drinking Water')", + "value": "drinking_water" + }, { "key": "fountain", "description": "Layer 'Drinking water' shows fountain=bubbler with a fixed text, namely 'This is a bubbler fountain. A water jet to drink from is sent upwards, typically controlled by a push button.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Drinking Water')", diff --git a/Docs/TagInfo/mapcomplete_food.json b/Docs/TagInfo/mapcomplete_food.json index 5a795afada..7d2ae1b798 100644 --- a/Docs/TagInfo/mapcomplete_food.json +++ b/Docs/TagInfo/mapcomplete_food.json @@ -161,79 +161,99 @@ }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Restaurants and fast food shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -615,6 +635,11 @@ "description": "Layer 'Restaurants and fast food' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Restaurants and fast food' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Restaurants and fast food' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food') (This is only shown if internet_access!=no & internet_access~.+)", @@ -937,6 +962,11 @@ "description": "Layer 'Outdoor Seating' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Outdoor Seating' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Outdoor Seating' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Restaurants and fast food') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_fritures.json b/Docs/TagInfo/mapcomplete_fritures.json index a750ae291f..f13e34aed9 100644 --- a/Docs/TagInfo/mapcomplete_fritures.json +++ b/Docs/TagInfo/mapcomplete_fritures.json @@ -165,79 +165,99 @@ }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Fries shop' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "description": "Layer 'Fries shop' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Fries shop' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Fries shop' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Fries shop' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Fries shop' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Fries shop shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -619,6 +639,11 @@ "description": "Layer 'Fries shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Fries shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Fries shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Fries shops') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_ghostsigns.json b/Docs/TagInfo/mapcomplete_ghostsigns.json index 4c303943c4..8ccf2786ca 100644 --- a/Docs/TagInfo/mapcomplete_ghostsigns.json +++ b/Docs/TagInfo/mapcomplete_ghostsigns.json @@ -16,23 +16,12 @@ }, { "key": "advertising", - "description": "The MapComplete theme Ghost Signs has a layer Ghost Signs showing features with this tag", - "value": "wall_painting" + "description": "The MapComplete theme Ghost Signs has a layer Ghost Signs showing features with this tag" }, { "key": "id", "description": "Layer 'Ghost Signs' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" }, - { - "key": "historic", - "description": "Layer 'Ghost Signs' shows historic=advertising with a fixed text, namely 'This is a ghost sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", - "value": "advertising" - }, - { - "key": "historic", - "description": "Layer 'Ghost Signs' shows historic= with a fixed text, namely 'This is not a ghost sign, answering this will hide the sign from the map' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') Picking this answer will delete the key historic.", - "value": "" - }, { "key": "image", "description": "The layer 'Ghost Signs allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" @@ -49,6 +38,85 @@ "key": "wikipedia", "description": "The layer 'Ghost Signs allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" }, + { + "key": "historic", + "description": "Layer 'Ghost Signs' shows historic=advertising with a fixed text, namely 'This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "advertising" + }, + { + "key": "historic", + "description": "Layer 'Ghost Signs' shows historic= with a fixed text, namely 'This advertisement sign has no historic value (the business still exists and has no heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') Picking this answer will delete the key historic.", + "value": "" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows and asks freeform values for key 'advertising' (in the mapcomplete.org theme 'Ghost Signs')" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=billboard with a fixed text, namely 'This is a billboard' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "billboard" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=board with a fixed text, namely 'This is a board' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "board" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=column with a fixed text, namely 'This is a column' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "column" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=flag with a fixed text, namely 'This is a flag' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "flag" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=poster_box with a fixed text, namely 'This is a poster Box' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "poster_box" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=screen with a fixed text, namely 'This is a screen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "screen" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=sculpture with a fixed text, namely 'This is a sculpture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "sculpture" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=sign with a fixed text, namely 'This is a sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "sign" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=tarp with a fixed text, namely 'This is a tarp (a weatherproof piece of textile with an advertising message)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "tarp" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=totem with a fixed text, namely 'This is a totem' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "totem" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=wall_painting with a fixed text, namely 'This is a wall painting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "wall_painting" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=tilework with a fixed text, namely 'This is tilework - the advertisement is painted on tiles' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "tilework" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=relief with a fixed text, namely 'This is a relief' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "relief" + }, { "key": "inscription", "description": "Layer 'Ghost Signs' shows and asks freeform values for key 'inscription' (in the mapcomplete.org theme 'Ghost Signs')" @@ -59,225 +127,234 @@ }, { "key": "advertising", - "description": "The MapComplete theme Ghost Signs has a layer All advertentie wall paintings showing features with this tag", - "value": "wall_painting" - }, - { - "key": "historic", - "description": "Layer 'All advertentie wall paintings' shows historic=advertising with a fixed text, namely 'This is a ghost sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", - "value": "advertising" - }, - { - "key": "historic", - "description": "Layer 'All advertentie wall paintings' shows historic= with a fixed text, namely 'This is not a ghost sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') Picking this answer will delete the key historic.", - "value": "" + "description": "The MapComplete theme Ghost Signs has a layer Advertisement showing features with this tag" }, { "key": "id", - "description": "Layer 'All advertentie wall paintings' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + "description": "Layer 'Advertisement' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" }, { "key": "image", - "description": "The layer 'All advertentie wall paintings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + "description": "The layer 'Advertisement allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" }, { "key": "mapillary", - "description": "The layer 'All advertentie wall paintings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + "description": "The layer 'Advertisement allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" }, { "key": "wikidata", - "description": "The layer 'All advertentie wall paintings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + "description": "The layer 'Advertisement allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" }, { "key": "wikipedia", - "description": "The layer 'All advertentie wall paintings allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + "description": "The layer 'Advertisement allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows and asks freeform values for key 'advertising' (in the mapcomplete.org theme 'Ghost Signs')" + "description": "Layer 'Advertisement' shows and asks freeform values for key 'advertising' (in the mapcomplete.org theme 'Ghost Signs')" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=billboard with a fixed text, namely 'This is a billboard' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=billboard with a fixed text, namely 'This is a billboard' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "billboard" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=board with a fixed text, namely 'This is a board' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=board with a fixed text, namely 'This is a board' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "board" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=column with a fixed text, namely 'This is a column' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=column with a fixed text, namely 'This is a column' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "column" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=flag with a fixed text, namely 'This is a flag' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=flag with a fixed text, namely 'This is a flag' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "flag" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=poster_box with a fixed text, namely 'This is a poster Box' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=poster_box with a fixed text, namely 'This is a poster Box' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "poster_box" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=screen with a fixed text, namely 'This is a screen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=screen with a fixed text, namely 'This is a screen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "screen" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=sculpture with a fixed text, namely 'This is a sculpture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=sculpture with a fixed text, namely 'This is a sculpture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "sculpture" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=sign with a fixed text, namely 'This is a sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=sign with a fixed text, namely 'This is a sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "sign" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=tarp with a fixed text, namely 'This is a tarp (a weatherproof piece of textile with an advertising message)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=tarp with a fixed text, namely 'This is a tarp (a weatherproof piece of textile with an advertising message)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "tarp" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=totem with a fixed text, namely 'This is a totem' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=totem with a fixed text, namely 'This is a totem' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "totem" }, { "key": "advertising", - "description": "Layer 'All advertentie wall paintings' shows advertising=wall_painting with a fixed text, namely 'This is a wall painting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows advertising=wall_painting with a fixed text, namely 'This is a wall painting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "wall_painting" }, + { + "key": "advertising", + "description": "Layer 'Advertisement' shows advertising=tilework with a fixed text, namely 'This is tilework - the advertisement is painted on tiles' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "tilework" + }, + { + "key": "advertising", + "description": "Layer 'Advertisement' shows advertising=relief with a fixed text, namely 'This is a relief' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "relief" + }, { "key": "animated", - "description": "Layer 'All advertentie wall paintings' shows animated=no with a fixed text, namely 'Static, always shows the same message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", + "description": "Layer 'Advertisement' shows animated=no with a fixed text, namely 'Static, always shows the same message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", "value": "no" }, { "key": "animated", - "description": "Layer 'All advertentie wall paintings' shows animated=digital_display with a fixed text, namely 'This object has a built-in digital display to show prices or some other message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", + "description": "Layer 'Advertisement' shows animated=digital_display with a fixed text, namely 'This object has a built-in digital display to show prices or some other message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", "value": "digital_display" }, { "key": "animated", - "description": "Layer 'All advertentie wall paintings' shows animated=trivision_blades with a fixed text, namely 'Trivision - the billboard consists of many triangular prisms which regularly rotate' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", + "description": "Layer 'Advertisement' shows animated=trivision_blades with a fixed text, namely 'Trivision - the billboard consists of many triangular prisms which regularly rotate' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", "value": "trivision_blades" }, { "key": "animated", - "description": "Layer 'All advertentie wall paintings' shows animated=winding_posters with a fixed text, namely 'Scrolling posters' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", + "description": "Layer 'Advertisement' shows animated=winding_posters with a fixed text, namely 'Scrolling posters' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", "value": "winding_posters" }, { "key": "animated", - "description": "Layer 'All advertentie wall paintings' shows animated=revolving with a fixed text, namely 'Rotates on itself' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", + "description": "Layer 'Advertisement' shows animated=revolving with a fixed text, namely 'Rotates on itself' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", "value": "revolving" }, { "key": "luminous", - "description": "Layer 'All advertentie wall paintings' shows luminous=neon with a fixed text, namely 'This is a neon-tube light' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", + "description": "Layer 'Advertisement' shows luminous=neon with a fixed text, namely 'This is a neon-tube light' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", "value": "neon" }, { "key": "lit", - "description": "Layer 'All advertentie wall paintings' shows lit=yes & luminous=yes with a fixed text, namely 'This object both emits light and is lighted by an external light source' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", + "description": "Layer 'Advertisement' shows lit=yes & luminous=yes with a fixed text, namely 'This object both emits light and is lighted by an external light source' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", "value": "yes" }, { "key": "luminous", - "description": "Layer 'All advertentie wall paintings' shows lit=yes & luminous=yes with a fixed text, namely 'This object both emits light and is lighted by an external light source' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", + "description": "Layer 'Advertisement' shows lit=yes & luminous=yes with a fixed text, namely 'This object both emits light and is lighted by an external light source' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", "value": "yes" }, { "key": "luminous", - "description": "Layer 'All advertentie wall paintings' shows luminous=yes with a fixed text, namely 'This object emits light' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", + "description": "Layer 'Advertisement' shows luminous=yes with a fixed text, namely 'This object emits light' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", "value": "yes" }, { "key": "lit", - "description": "Layer 'All advertentie wall paintings' shows lit=yes with a fixed text, namely 'This object is lit externally, e.g. by a spotlight or other lights' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", + "description": "Layer 'Advertisement' shows lit=yes with a fixed text, namely 'This object is lit externally, e.g. by a spotlight or other lights' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", "value": "yes" }, { "key": "lit", - "description": "Layer 'All advertentie wall paintings' shows lit=no & luminous=no with a fixed text, namely 'This object does not emit light and is not lighted by externally' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", + "description": "Layer 'Advertisement' shows lit=no & luminous=no with a fixed text, namely 'This object does not emit light and is not lighted by externally' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", "value": "no" }, { "key": "luminous", - "description": "Layer 'All advertentie wall paintings' shows lit=no & luminous=no with a fixed text, namely 'This object does not emit light and is not lighted by externally' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", + "description": "Layer 'Advertisement' shows lit=no & luminous=no with a fixed text, namely 'This object does not emit light and is not lighted by externally' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=screen)", "value": "no" }, { "key": "operator", - "description": "Layer 'All advertentie wall paintings' shows and asks freeform values for key 'operator' (in the mapcomplete.org theme 'Ghost Signs')" + "description": "Layer 'Advertisement' shows and asks freeform values for key 'operator' (in the mapcomplete.org theme 'Ghost Signs')" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=commercial with a fixed text, namely 'Commercial message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=commercial with a fixed text, namely 'Commercial message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "commercial" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=local with a fixed text, namely 'Local information' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=local with a fixed text, namely 'Local information' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "local" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=safety with a fixed text, namely 'Security information' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=safety with a fixed text, namely 'Security information' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "safety" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=political with a fixed text, namely 'Electoral advertising' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=political with a fixed text, namely 'Electoral advertising' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "political" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=showbiz with a fixed text, namely 'Information related to theatre, concerts, …' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=showbiz with a fixed text, namely 'Information related to theatre, concerts, …' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "showbiz" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=non_profit with a fixed text, namely 'Message from non-profit organizations' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=non_profit with a fixed text, namely 'Message from non-profit organizations' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "non_profit" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=opinion with a fixed text, namely 'To express your opinion' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=opinion with a fixed text, namely 'To express your opinion' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "opinion" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=religion with a fixed text, namely 'Religious message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=religion with a fixed text, namely 'Religious message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "religion" }, { "key": "message", - "description": "Layer 'All advertentie wall paintings' shows message=funding with a fixed text, namely 'Funding sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows message=funding with a fixed text, namely 'Funding sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "funding" }, { "key": "information", - "description": "Layer 'All advertentie wall paintings' shows information=map with a fixed text, namely 'A map' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "description": "Layer 'Advertisement' shows information=map with a fixed text, namely 'A map' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", "value": "map" }, { "key": "sides", - "description": "Layer 'All advertentie wall paintings' shows sides=1 with a fixed text, namely 'This object has advertisements on a single side' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if _referencing_ways= & (advertising=poster_box | advertising=screen | advertising=billboard))", + "description": "Layer 'Advertisement' shows sides=1 with a fixed text, namely 'This object has advertisements on a single side' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if _referencing_ways= & (advertising=poster_box | advertising=screen | advertising=billboard))", "value": "1" }, { "key": "sides", - "description": "Layer 'All advertentie wall paintings' shows sides=2 with a fixed text, namely 'This object has advertisements on both sides' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if _referencing_ways= & (advertising=poster_box | advertising=screen | advertising=billboard))", + "description": "Layer 'Advertisement' shows sides=2 with a fixed text, namely 'This object has advertisements on both sides' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if _referencing_ways= & (advertising=poster_box | advertising=screen | advertising=billboard))", "value": "2" }, { "key": "ref", - "description": "Layer 'All advertentie wall paintings' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=sign)" + "description": "Layer 'Advertisement' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Ghost Signs') (This is only shown if advertising!=sign)" + }, + { + "key": "historic", + "description": "Layer 'Advertisement' shows historic=advertising with a fixed text, namely 'This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs')", + "value": "advertising" + }, + { + "key": "historic", + "description": "Layer 'Advertisement' shows historic= with a fixed text, namely 'This advertisement sign has no historic value (the business still exists and has no heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ghost Signs') Picking this answer will delete the key historic.", + "value": "" }, { "key": "tourism", diff --git a/Docs/TagInfo/mapcomplete_glutenfree.json b/Docs/TagInfo/mapcomplete_glutenfree.json index 5373159cca..16cae93ade 100644 --- a/Docs/TagInfo/mapcomplete_glutenfree.json +++ b/Docs/TagInfo/mapcomplete_glutenfree.json @@ -185,79 +185,99 @@ }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Restaurants and fast food shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -619,6 +639,11 @@ "description": "Layer 'Restaurants and fast food' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Restaurants and fast food' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Restaurants and fast food' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree') (This is only shown if internet_access!=no & internet_access~.+)", @@ -2095,6 +2120,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Glutenfree') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_hackerspaces.json b/Docs/TagInfo/mapcomplete_hackerspaces.json index c43db10ec4..1e606a6f43 100644 --- a/Docs/TagInfo/mapcomplete_hackerspaces.json +++ b/Docs/TagInfo/mapcomplete_hackerspaces.json @@ -45,6 +45,11 @@ "description": "Layer 'Hackerspace' shows hackerspace= with a fixed text, namely 'This is a traditional (software oriented) hackerspace' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hackerspaces and makerspaces') Picking this answer will delete the key hackerspace.", "value": "" }, + { + "key": "hackerspace", + "description": "Layer 'Hackerspace' shows hackerspace=hacklab with a fixed text, namely 'This is a hacklab which is mostly focussed on basic computer skills, using recycled devices and/or providing internet to the community. This is typically located in autonomous spaces, squats or social facilities' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hackerspaces and makerspaces')", + "value": "hacklab" + }, { "key": "name", "description": "Layer 'Hackerspace' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Hackerspaces and makerspaces')" @@ -318,6 +323,11 @@ "description": "Layer 'Hackerspace' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hackerspaces and makerspaces')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Hackerspace' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hackerspaces and makerspaces')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Hackerspace' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hackerspaces and makerspaces') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_healthcare.json b/Docs/TagInfo/mapcomplete_healthcare.json index 9cc6865913..90f009299b 100644 --- a/Docs/TagInfo/mapcomplete_healthcare.json +++ b/Docs/TagInfo/mapcomplete_healthcare.json @@ -376,6 +376,21 @@ "key": "contact:website", "description": "Layer 'Pharmacies' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Healthcare')" }, + { + "key": "payment:cash", + "description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", + "value": "yes" + }, + { + "key": "payment:cards", + "description": "Layer 'Pharmacies' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", + "value": "yes" + }, + { + "key": "payment:qr_code", + "description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", + "value": "yes" + }, { "key": "wheelchair", "description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", @@ -1649,6 +1664,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_hotels.json b/Docs/TagInfo/mapcomplete_hotels.json index ec0b1e7840..732fba618f 100644 --- a/Docs/TagInfo/mapcomplete_hotels.json +++ b/Docs/TagInfo/mapcomplete_hotels.json @@ -151,6 +151,11 @@ "description": "Layer 'Tourism accomodation' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hotels')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Tourism accomodation' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hotels')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Tourism accomodation' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Hotels') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_indoors.json b/Docs/TagInfo/mapcomplete_indoors.json index 847ea61ed8..f312cd1092 100644 --- a/Docs/TagInfo/mapcomplete_indoors.json +++ b/Docs/TagInfo/mapcomplete_indoors.json @@ -167,6 +167,11 @@ "description": "Layer 'Indoors' shows room=office with a fixed text, namely 'This is an office' and allows to pick this as a default answer (in the mapcomplete.org theme 'Indoors')", "value": "office" }, + { + "key": "room", + "description": "Layer 'Indoors' shows room=printer with a fixed text, namely 'This is a copy room' and allows to pick this as a default answer (in the mapcomplete.org theme 'Indoors')", + "value": "printer" + }, { "key": "room", "description": "Layer 'Indoors' shows room=prison_cell with a fixed text, namely 'This is a prison_cell' and allows to pick this as a default answer (in the mapcomplete.org theme 'Indoors')", diff --git a/Docs/TagInfo/mapcomplete_lactosefree.json b/Docs/TagInfo/mapcomplete_lactosefree.json index 974c589ed4..2dd0950c27 100644 --- a/Docs/TagInfo/mapcomplete_lactosefree.json +++ b/Docs/TagInfo/mapcomplete_lactosefree.json @@ -185,79 +185,99 @@ }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Restaurants and fast food shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -619,6 +639,11 @@ "description": "Layer 'Restaurants and fast food' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Restaurants and fast food' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Restaurants and fast food' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants') (This is only shown if internet_access!=no & internet_access~.+)", @@ -2095,6 +2120,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Lactose free shops and restaurants') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_nature.json b/Docs/TagInfo/mapcomplete_nature.json index 9e9c5b3770..515abe1a98 100644 --- a/Docs/TagInfo/mapcomplete_nature.json +++ b/Docs/TagInfo/mapcomplete_nature.json @@ -51,7 +51,12 @@ }, { "key": "operational_status", - "description": "Layer 'Drinking water' shows operational_status= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') Picking this answer will delete the key operational_status.", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') Picking this answer will delete the key operational_status.", + "value": "" + }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') Picking this answer will delete the key disused:amenity.", "value": "" }, { @@ -64,6 +69,11 @@ "description": "Layer 'Drinking water' shows operational_status=closed with a fixed text, namely 'This drinking water is closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", "value": "closed" }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows disused:amenity=drinking_water with a fixed text, namely 'This drinking water is permanently closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", + "value": "drinking_water" + }, { "key": "fountain", "description": "Layer 'Drinking water' shows fountain=bubbler with a fixed text, namely 'This is a bubbler fountain. A water jet to drink from is sent upwards, typically controlled by a push button.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", diff --git a/Docs/TagInfo/mapcomplete_onwheels.json b/Docs/TagInfo/mapcomplete_onwheels.json index 9204f3055a..52cd105c80 100644 --- a/Docs/TagInfo/mapcomplete_onwheels.json +++ b/Docs/TagInfo/mapcomplete_onwheels.json @@ -275,6 +275,11 @@ "description": "Layer 'Cafés and pubs' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Cafés and pubs' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Cafés and pubs' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if internet_access!=no & internet_access~.+)", @@ -685,79 +690,99 @@ }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Restaurants and fast food shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -1139,6 +1164,11 @@ "description": "Layer 'Restaurants and fast food' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Restaurants and fast food' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Restaurants and fast food' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if internet_access!=no & internet_access~.+)", @@ -2632,6 +2662,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if internet_access!=no & internet_access~.+)", @@ -3088,6 +3123,21 @@ "key": "contact:website", "description": "Layer 'Pharmacies' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'OnWheels')" }, + { + "key": "payment:cash", + "description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "yes" + }, + { + "key": "payment:cards", + "description": "Layer 'Pharmacies' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "yes" + }, + { + "key": "payment:qr_code", + "description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "yes" + }, { "key": "wheelchair", "description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", @@ -3601,6 +3651,11 @@ "description": "Layer 'Tourism accomodation' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Tourism accomodation' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Tourism accomodation' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_personal.json b/Docs/TagInfo/mapcomplete_personal.json index db2fcaf791..4c3653c407 100644 --- a/Docs/TagInfo/mapcomplete_personal.json +++ b/Docs/TagInfo/mapcomplete_personal.json @@ -93,6 +93,16 @@ "description": "Layer 'Advertisement' shows advertising=wall_painting with a fixed text, namely 'This is a wall painting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wall_painting" }, + { + "key": "advertising", + "description": "Layer 'Advertisement' shows advertising=tilework with a fixed text, namely 'This is tilework - the advertisement is painted on tiles' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "tilework" + }, + { + "key": "advertising", + "description": "Layer 'Advertisement' shows advertising=relief with a fixed text, namely 'This is a relief' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "relief" + }, { "key": "animated", "description": "Layer 'Advertisement' shows animated=no with a fixed text, namely 'Static, always shows the same message' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if advertising!=screen & advertising!=flag & advertising!=tarp & advertising!=wall_painting & advertising!=sign & advertising!=board)", @@ -221,6 +231,16 @@ "key": "ref", "description": "Layer 'Advertisement' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Personal theme') (This is only shown if advertising!=sign)" }, + { + "key": "historic", + "description": "Layer 'Advertisement' shows historic=advertising with a fixed text, namely 'This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "advertising" + }, + { + "key": "historic", + "description": "Layer 'Advertisement' shows historic= with a fixed text, namely 'This advertisement sign has no historic value (the business still exists and has no heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key historic.", + "value": "" + }, { "key": "aerialway", "description": "The MapComplete theme Personal theme has a layer Aerialways showing features with this tag" @@ -1763,6 +1783,82 @@ "description": "Layer 'Benches at public transport stops' shows bench=no with a fixed text, namely 'There is no bench here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "no" }, + { + "key": "man_made", + "description": "The MapComplete theme Personal theme has a layer Bicycle counters showing features with this tag", + "value": "monitoring_station" + }, + { + "key": "monitoring:bicycle", + "description": "The MapComplete theme Personal theme has a layer Bicycle counters showing features with this tag", + "value": "yes" + }, + { + "key": "id", + "description": "Layer 'Bicycle counters' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Personal theme') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Bicycle counters allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=digital with a fixed text, namely 'This counter has a digital display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "digital" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=analog with a fixed text, namely 'This counter has an analog display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "analog" + }, + { + "key": "display", + "description": "Layer 'Bicycle counters' shows display=no with a fixed text, namely 'This counter has no display' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "no" + }, + { + "key": "name", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "start_date", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'start_date' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "amenity", + "description": "Layer 'Bicycle counters' shows amenity=clock with a fixed text, namely 'This counter has a clock' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "clock" + }, + { + "key": "amenity", + "description": "Layer 'Bicycle counters' shows amenity= with a fixed text, namely 'This counter has no clock' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key amenity.", + "value": "" + }, + { + "key": "ref", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'ref' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "noref", + "description": "Layer 'Bicycle counters' shows noref=yes with a fixed text, namely 'This counter has no reference number' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "yes" + }, + { + "key": "website", + "description": "Layer 'Bicycle counters' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Personal theme')" + }, { "key": "amenity", "description": "The MapComplete theme Personal theme has a layer Bicycle library showing features with this tag", @@ -2342,6 +2438,11 @@ "description": "Layer 'Bike parking' shows bicycle_parking=stands with a fixed text, namely 'Stands' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "stands" }, + { + "key": "bicycle_parking", + "description": "Layer 'Bike parking' shows bicycle_parking=safe_loops with a fixed text, namely 'Rack with side loops' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "safe_loops" + }, { "key": "bicycle_parking", "description": "Layer 'Bike parking' shows bicycle_parking=wall_loops with a fixed text, namely 'Wheelbenders / rack' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", @@ -4637,6 +4738,11 @@ "description": "Layer 'Cafés and pubs' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Cafés and pubs' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Cafés and pubs' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if internet_access!=no & internet_access~.+)", @@ -6774,6 +6880,11 @@ "description": "Layer 'Climbing gyms' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Climbing gyms' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Climbing gyms' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if internet_access!=no & internet_access~.+)", @@ -8344,7 +8455,12 @@ }, { "key": "operational_status", - "description": "Layer 'Drinking water' shows operational_status= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key operational_status.", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key operational_status.", + "value": "" + }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key disused:amenity.", "value": "" }, { @@ -8357,6 +8473,11 @@ "description": "Layer 'Drinking water' shows operational_status=closed with a fixed text, namely 'This drinking water is closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "closed" }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows disused:amenity=drinking_water with a fixed text, namely 'This drinking water is permanently closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "drinking_water" + }, { "key": "fountain", "description": "Layer 'Drinking water' shows fountain=bubbler with a fixed text, namely 'This is a bubbler fountain. A water jet to drink from is sent upwards, typically controlled by a push button.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", @@ -10004,79 +10125,99 @@ }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Restaurants and fast food shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -10458,6 +10599,11 @@ "description": "Layer 'Restaurants and fast food' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Restaurants and fast food' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Restaurants and fast food' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if internet_access!=no & internet_access~.+)", @@ -10621,6 +10767,121 @@ "key": "start_date", "description": "Layer 'Ghost bikes' shows and asks freeform values for key 'start_date' (in the mapcomplete.org theme 'Personal theme')" }, + { + "key": "historic", + "description": "The MapComplete theme Personal theme has a layer Ghost Signs showing features with this tag" + }, + { + "key": "advertising", + "description": "The MapComplete theme Personal theme has a layer Ghost Signs showing features with this tag" + }, + { + "key": "id", + "description": "Layer 'Ghost Signs' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Personal theme') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Ghost Signs allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Ghost Signs allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Ghost Signs allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Ghost Signs allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "historic", + "description": "Layer 'Ghost Signs' shows historic=advertising with a fixed text, namely 'This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "advertising" + }, + { + "key": "historic", + "description": "Layer 'Ghost Signs' shows historic= with a fixed text, namely 'This advertisement sign has no historic value (the business still exists and has no heritage value)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key historic.", + "value": "" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows and asks freeform values for key 'advertising' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=billboard with a fixed text, namely 'This is a billboard' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "billboard" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=board with a fixed text, namely 'This is a board' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "board" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=column with a fixed text, namely 'This is a column' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "column" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=flag with a fixed text, namely 'This is a flag' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "flag" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=poster_box with a fixed text, namely 'This is a poster Box' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "poster_box" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=screen with a fixed text, namely 'This is a screen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "screen" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=sculpture with a fixed text, namely 'This is a sculpture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "sculpture" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=sign with a fixed text, namely 'This is a sign' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "sign" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=tarp with a fixed text, namely 'This is a tarp (a weatherproof piece of textile with an advertising message)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "tarp" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=totem with a fixed text, namely 'This is a totem' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "totem" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=wall_painting with a fixed text, namely 'This is a wall painting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "wall_painting" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=tilework with a fixed text, namely 'This is tilework - the advertisement is painted on tiles' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "tilework" + }, + { + "key": "advertising", + "description": "Layer 'Ghost Signs' shows advertising=relief with a fixed text, namely 'This is a relief' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "relief" + }, + { + "key": "inscription", + "description": "Layer 'Ghost Signs' shows and asks freeform values for key 'inscription' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "brand", + "description": "Layer 'Ghost Signs' shows and asks freeform values for key 'brand' (in the mapcomplete.org theme 'Personal theme')" + }, { "key": "office", "description": "The MapComplete theme Personal theme has a layer governments showing features with this tag", @@ -10796,6 +11057,11 @@ "description": "Layer 'Hackerspace' shows hackerspace= with a fixed text, namely 'This is a traditional (software oriented) hackerspace' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key hackerspace.", "value": "" }, + { + "key": "hackerspace", + "description": "Layer 'Hackerspace' shows hackerspace=hacklab with a fixed text, namely 'This is a hacklab which is mostly focussed on basic computer skills, using recycled devices and/or providing internet to the community. This is typically located in autonomous spaces, squats or social facilities' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "hacklab" + }, { "key": "name", "description": "Layer 'Hackerspace' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Personal theme')" @@ -11069,6 +11335,11 @@ "description": "Layer 'Hackerspace' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Hackerspace' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Hackerspace' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if internet_access!=no & internet_access~.+)", @@ -11610,6 +11881,11 @@ "description": "Layer 'Indoors' shows room=office with a fixed text, namely 'This is an office' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "office" }, + { + "key": "room", + "description": "Layer 'Indoors' shows room=printer with a fixed text, namely 'This is a copy room' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "printer" + }, { "key": "room", "description": "Layer 'Indoors' shows room=prison_cell with a fixed text, namely 'This is a prison_cell' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", @@ -13060,6 +13336,11 @@ "description": "Layer 'Outdoor Seating' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Outdoor Seating' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Outdoor Seating' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if internet_access!=no & internet_access~.+)", @@ -13747,6 +14028,21 @@ "key": "contact:website", "description": "Layer 'Pharmacies' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Personal theme')" }, + { + "key": "payment:cash", + "description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "yes" + }, + { + "key": "payment:cards", + "description": "Layer 'Pharmacies' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "yes" + }, + { + "key": "payment:qr_code", + "description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "yes" + }, { "key": "wheelchair", "description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", @@ -14273,6 +14569,86 @@ "description": "Layer 'Playground equipment' shows wheelchair=no with a fixed text, namely 'This place is not reachable with a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "no" }, + { + "key": "amenity", + "description": "The MapComplete theme Personal theme has a layer Police stations showing features with this tag", + "value": "police" + }, + { + "key": "police", + "description": "The MapComplete theme Personal theme has a layer Police stations showing features with this tag" + }, + { + "key": "id", + "description": "Layer 'Police stations' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Personal theme') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "name", + "description": "Layer 'Police stations' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "phone", + "description": "Layer 'Police stations' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "contact:phone", + "description": "Layer 'Police stations' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "email", + "description": "Layer 'Police stations' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "contact:email", + "description": "Layer 'Police stations' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "operator:email", + "description": "Layer 'Police stations' shows operator:email~.+ with a fixed text, namely '{operator:email}' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "website", + "description": "Layer 'Police stations' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "contact:website", + "description": "Layer 'Police stations' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "opening_hours", + "description": "Layer 'Police stations' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Personal theme')" + }, + { + "key": "opening_hours", + "description": "Layer 'Police stations' shows opening_hours=closed with a fixed text, namely 'Marked as closed for an unspecified time' (in the mapcomplete.org theme 'Personal theme')", + "value": "closed" + }, + { + "key": "detention", + "description": "Layer 'Police stations' shows detention=yes with a fixed text, namely 'This police office has some cells to detain people' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if amenity=police)", + "value": "yes" + }, + { + "key": "detention", + "description": "Layer 'Police stations' shows detention=no with a fixed text, namely 'This police office does not have cells to detain people' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if amenity=police)", + "value": "no" + }, { "key": "amenity", "description": "The MapComplete theme Personal theme has a layer Postboxes showing features with this tag", @@ -16503,6 +16879,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if internet_access!=no & internet_access~.+)", @@ -19247,6 +19628,11 @@ "description": "Layer 'Tourism accomodation' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Tourism accomodation' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Tourism accomodation' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if internet_access!=no & internet_access~.+)", @@ -19852,6 +20238,11 @@ "description": "Layer 'Vending Machines' shows vending=eggs with a fixed text, namely 'Eggs are sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "eggs" }, + { + "key": "vending", + "description": "Layer 'Vending Machines' shows vending=ice_cream with a fixed text, namely 'Ice cream is sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "ice_cream" + }, { "key": "vending", "description": "Layer 'Vending Machines' shows vending=cheese with a fixed text, namely 'Cheese is sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", diff --git a/Docs/TagInfo/mapcomplete_pets.json b/Docs/TagInfo/mapcomplete_pets.json index aed83a6cd2..9fecdf6ffb 100644 --- a/Docs/TagInfo/mapcomplete_pets.json +++ b/Docs/TagInfo/mapcomplete_pets.json @@ -257,79 +257,99 @@ }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Dog friendly eateries' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "description": "Layer 'Dog friendly eateries' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Dog friendly eateries' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Dog friendly eateries' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Dog friendly eateries' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Dog friendly eateries' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Dog friendly eateries shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -711,6 +731,11 @@ "description": "Layer 'Dog friendly eateries' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Dog friendly eateries' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Dog friendly eateries' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') (This is only shown if internet_access!=no & internet_access~.+)", @@ -1983,6 +2008,11 @@ "description": "Layer 'Dog-friendly shops' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Dog-friendly shops' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Dog-friendly shops' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Veterinarians, dog parks and other pet-amenities') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_postboxes.json b/Docs/TagInfo/mapcomplete_postboxes.json index 2b9f02141b..b53bc5cad1 100644 --- a/Docs/TagInfo/mapcomplete_postboxes.json +++ b/Docs/TagInfo/mapcomplete_postboxes.json @@ -1551,6 +1551,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Postbox and Post Office Map')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Postbox and Post Office Map')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Postbox and Post Office Map') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_shops.json b/Docs/TagInfo/mapcomplete_shops.json index 04697324c7..606ae2670e 100644 --- a/Docs/TagInfo/mapcomplete_shops.json +++ b/Docs/TagInfo/mapcomplete_shops.json @@ -1253,6 +1253,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops') (This is only shown if internet_access!=no & internet_access~.+)", @@ -1422,6 +1427,21 @@ "key": "contact:website", "description": "Layer 'Pharmacies' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Shops')" }, + { + "key": "payment:cash", + "description": "Layer 'Pharmacies' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')", + "value": "yes" + }, + { + "key": "payment:cards", + "description": "Layer 'Pharmacies' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')", + "value": "yes" + }, + { + "key": "payment:qr_code", + "description": "Layer 'Pharmacies' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')", + "value": "yes" + }, { "key": "wheelchair", "description": "Layer 'Pharmacies' shows wheelchair=yes with a fixed text, namely 'This pharmacy is easy to access on a wheelchair' and allows to pick this as a default answer (in the mapcomplete.org theme 'Shops')", diff --git a/Docs/TagInfo/mapcomplete_ski.json b/Docs/TagInfo/mapcomplete_ski.json index 2eb8a78ebb..d8df763f65 100644 --- a/Docs/TagInfo/mapcomplete_ski.json +++ b/Docs/TagInfo/mapcomplete_ski.json @@ -718,7 +718,12 @@ }, { "key": "operational_status", - "description": "Layer 'Drinking water' shows operational_status= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') Picking this answer will delete the key operational_status.", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') Picking this answer will delete the key operational_status.", + "value": "" + }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows operational_status= & disused:amenity= with a fixed text, namely 'This drinking water works' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') Picking this answer will delete the key disused:amenity.", "value": "" }, { @@ -731,6 +736,11 @@ "description": "Layer 'Drinking water' shows operational_status=closed with a fixed text, namely 'This drinking water is closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "closed" }, + { + "key": "disused:amenity", + "description": "Layer 'Drinking water' shows disused:amenity=drinking_water with a fixed text, namely 'This drinking water is permanently closed' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "drinking_water" + }, { "key": "fountain", "description": "Layer 'Drinking water' shows fountain=bubbler with a fixed text, namely 'This is a bubbler fountain. A water jet to drink from is sent upwards, typically controlled by a push button.' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", @@ -1050,79 +1060,99 @@ }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'This is a pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pizza with a fixed text, namely 'Pizzeria' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "pizza" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'This is a friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=friture with a fixed text, namely 'Friture' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "friture" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Mainly serves pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=pasta with a fixed text, namely 'Serves mainly pasta' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "pasta" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'This is kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=kebab with a fixed text, namely 'Kebab shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "kebab" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'This is a sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sandwich with a fixed text, namely 'Sandwich shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "sandwich" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgers are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=burger with a fixed text, namely 'Burgersrestaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "burger" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=sushi with a fixed text, namely 'Sushi restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "sushi" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffee is served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=coffee with a fixed text, namely 'Coffeebar' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "coffee" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'This is an Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=italian with a fixed text, namely 'Italian restaurant (which serves more than pasta and pizza)' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "italian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=french with a fixed text, namely 'French restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "french" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=chinese with a fixed text, namely 'Chinese' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "chinese" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=greek with a fixed text, namely 'Greek' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "greek" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=indian with a fixed text, namely 'Indian' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "indian" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=turkish with a fixed text, namely 'Turkish restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "turkish" }, { "key": "cuisine", - "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "description": "Layer 'Restaurants and fast food' shows cuisine=thai with a fixed text, namely 'Thai restaurant' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "thai" }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=mexican with a fixed text, namely 'Mexican dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "mexican " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=japanese with a fixed text, namely 'Japanese dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "japanese " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=chicken with a fixed text, namely 'Chicken based dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "chicken " + }, + { + "key": "cuisine", + "description": "Layer 'Restaurants and fast food' shows cuisine=seafood with a fixed text, namely 'Seafood dishes are served here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "seafood " + }, { "key": "image", "description": "The layer 'Restaurants and fast food shows images based on the keys image, image:0, image:1,... and wikidata, wikipedia, wikimedia_commons and mapillary" @@ -1504,6 +1534,11 @@ "description": "Layer 'Restaurants and fast food' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Restaurants and fast food' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Restaurants and fast food' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_sports.json b/Docs/TagInfo/mapcomplete_sports.json index ba45bcb60c..390469ffaf 100644 --- a/Docs/TagInfo/mapcomplete_sports.json +++ b/Docs/TagInfo/mapcomplete_sports.json @@ -1812,6 +1812,11 @@ "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')", "value": "wired" }, + { + "key": "internet_access", + "description": "Layer 'Shop' shows internet_access=terminal;wifi with a fixed text, namely 'This place offers both wireless internet and internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports')", + "value": "terminal;wifi" + }, { "key": "internet_access:fee", "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Sports') (This is only shown if internet_access!=no & internet_access~.+)", diff --git a/Docs/TagInfo/mapcomplete_surveillance.json b/Docs/TagInfo/mapcomplete_surveillance.json index 5ec28c60a7..686c585d67 100644 --- a/Docs/TagInfo/mapcomplete_surveillance.json +++ b/Docs/TagInfo/mapcomplete_surveillance.json @@ -221,6 +221,86 @@ { "key": "direction", "description": "Layer 'Speed Camera' shows and asks freeform values for key 'direction' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "amenity", + "description": "The MapComplete theme Surveillance under Surveillance has a layer Police stations showing features with this tag", + "value": "police" + }, + { + "key": "police", + "description": "The MapComplete theme Surveillance under Surveillance has a layer Police stations showing features with this tag" + }, + { + "key": "id", + "description": "Layer 'Police stations' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" + }, + { + "key": "image", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "mapillary", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikidata", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "wikipedia", + "description": "The layer 'Police stations allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" + }, + { + "key": "name", + "description": "Layer 'Police stations' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "phone", + "description": "Layer 'Police stations' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "contact:phone", + "description": "Layer 'Police stations' shows contact:phone~.+ with a fixed text, namely '{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "email", + "description": "Layer 'Police stations' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "contact:email", + "description": "Layer 'Police stations' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "operator:email", + "description": "Layer 'Police stations' shows operator:email~.+ with a fixed text, namely '{operator:email}' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "website", + "description": "Layer 'Police stations' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "contact:website", + "description": "Layer 'Police stations' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "opening_hours", + "description": "Layer 'Police stations' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Surveillance under Surveillance')" + }, + { + "key": "opening_hours", + "description": "Layer 'Police stations' shows opening_hours=closed with a fixed text, namely 'Marked as closed for an unspecified time' (in the mapcomplete.org theme 'Surveillance under Surveillance')", + "value": "closed" + }, + { + "key": "detention", + "description": "Layer 'Police stations' shows detention=yes with a fixed text, namely 'This police office has some cells to detain people' and allows to pick this as a default answer (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if amenity=police)", + "value": "yes" + }, + { + "key": "detention", + "description": "Layer 'Police stations' shows detention=no with a fixed text, namely 'This police office does not have cells to detain people' and allows to pick this as a default answer (in the mapcomplete.org theme 'Surveillance under Surveillance') (This is only shown if amenity=police)", + "value": "no" } ] } \ No newline at end of file diff --git a/Docs/TagInfo/mapcomplete_transit.json b/Docs/TagInfo/mapcomplete_transit.json index 256d79e2c2..f5124fe50d 100644 --- a/Docs/TagInfo/mapcomplete_transit.json +++ b/Docs/TagInfo/mapcomplete_transit.json @@ -240,6 +240,11 @@ "description": "Layer 'Bike parking' shows bicycle_parking=stands with a fixed text, namely 'Stands' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bus routes')", "value": "stands" }, + { + "key": "bicycle_parking", + "description": "Layer 'Bike parking' shows bicycle_parking=safe_loops with a fixed text, namely 'Rack with side loops' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bus routes')", + "value": "safe_loops" + }, { "key": "bicycle_parking", "description": "Layer 'Bike parking' shows bicycle_parking=wall_loops with a fixed text, namely 'Wheelbenders / rack' and allows to pick this as a default answer (in the mapcomplete.org theme 'Bus routes')", diff --git a/Docs/TagInfo/mapcomplete_vending_machine.json b/Docs/TagInfo/mapcomplete_vending_machine.json index 5d59e58913..5effff030e 100644 --- a/Docs/TagInfo/mapcomplete_vending_machine.json +++ b/Docs/TagInfo/mapcomplete_vending_machine.json @@ -128,6 +128,11 @@ "description": "Layer 'Vending Machines' shows vending=eggs with a fixed text, namely 'Eggs are sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Vending Machines')", "value": "eggs" }, + { + "key": "vending", + "description": "Layer 'Vending Machines' shows vending=ice_cream with a fixed text, namely 'Ice cream is sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Vending Machines')", + "value": "ice_cream" + }, { "key": "vending", "description": "Layer 'Vending Machines' shows vending=cheese with a fixed text, namely 'Cheese is sold' and allows to pick this as a default answer (in the mapcomplete.org theme 'Vending Machines')", diff --git a/Docs/Themes/benches.md b/Docs/Themes/benches.md index d7409a965f..bf97773ca2 100644 --- a/Docs/Themes/benches.md +++ b/Docs/Themes/benches.md @@ -35,6 +35,7 @@ Available languages: - eu - pl - pt + - fil # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/bicycle_parkings.md b/Docs/Themes/bicycle_parkings.md index 253a427b9f..c36b3016b3 100644 --- a/Docs/Themes/bicycle_parkings.md +++ b/Docs/Themes/bicycle_parkings.md @@ -21,6 +21,8 @@ Available languages: - es - zh_Hans - it + - fil + - cs # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/blind_osm.md b/Docs/Themes/blind_osm.md index d0790efbd1..bb49d16452 100644 --- a/Docs/Themes/blind_osm.md +++ b/Docs/Themes/blind_osm.md @@ -31,6 +31,7 @@ Available languages: - pl - da - zh_Hans + - fil # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/buurtnatuur.md b/Docs/Themes/buurtnatuur.md index abada26be4..b9da70c800 100644 --- a/Docs/Themes/buurtnatuur.md +++ b/Docs/Themes/buurtnatuur.md @@ -75,7 +75,7 @@ No themes use this layer The following options to create new points are included: -**een natuurreservaat** which has the following tags:leisure=nature_reserve & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen + - **een natuurreservaat** which has the following tags:leisure=nature_reserve & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen ## Basic tags for this layer @@ -176,7 +176,7 @@ No themes use this layer The following options to create new points are included: -**een park** which has the following tags:leisure=park & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen + - **een park** which has the following tags:leisure=park & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen ## Basic tags for this layer @@ -277,7 +277,7 @@ No themes use this layer The following options to create new points are included: -**een bos** which has the following tags:landuse=forest & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen + - **een bos** which has the following tags:landuse=forest & fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen ## Basic tags for this layer diff --git a/Docs/Themes/circular_economy.md b/Docs/Themes/circular_economy.md index 78f3f57ab2..bfae4d66a5 100644 --- a/Docs/Themes/circular_economy.md +++ b/Docs/Themes/circular_economy.md @@ -21,6 +21,8 @@ Available languages: - en - es - de + - ca + - cs # Table of contents @@ -74,6 +76,7 @@ Available languages: + [move-button](#move-button) + [delete-button](#delete-button) + [lod](#lod) + - [Filters](#filters) # Layers defined in this theme configuration file These layers can not be reused in different themes. @@ -128,7 +131,7 @@ Elements must match **any** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -322,6 +325,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -609,6 +615,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -713,5 +720,204 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + +| id | question | osmTags | +-----|-----|----- | +| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + + This document is autogenerated from [assets/themes/circular_economy/circular_economy.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/circular_economy/circular_economy.json) diff --git a/Docs/Themes/climbing.md b/Docs/Themes/climbing.md index 97211edcb5..5c16a07297 100644 --- a/Docs/Themes/climbing.md +++ b/Docs/Themes/climbing.md @@ -146,7 +146,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -347,6 +347,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -634,6 +637,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -740,18 +744,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -760,6 +752,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Themes/cycle_infra.md b/Docs/Themes/cycle_infra.md index cad3aec46e..2bd416a1f7 100644 --- a/Docs/Themes/cycle_infra.md +++ b/Docs/Themes/cycle_infra.md @@ -11,6 +11,7 @@ This theme contains the following layers: - [cycleways_and_roads](../Layers/cycleways_and_roads.md) - [barrier](../Layers/barrier.md) - [crossings](../Layers/crossings.md) + - [bicycle_counter](../Layers/bicycle_counter.md) Available languages: diff --git a/Docs/Themes/cyclenodes.md b/Docs/Themes/cyclenodes.md index 40179ecb5d..c825c10150 100644 --- a/Docs/Themes/cyclenodes.md +++ b/Docs/Themes/cyclenodes.md @@ -118,7 +118,7 @@ No themes use this layer The following options to create new points are included: -**a cycling node** which has the following tags:rcn_ref=? & network:type=node_network (snaps to layers `cycleways_and_roads`) + - **a cycling node** which has the following tags:rcn_ref=? & network:type=node_network (snaps to layers `cycleways_and_roads`) ## Basic tags for this layer @@ -189,7 +189,7 @@ No themes use this layer The following options to create new points are included: -**a guidepost** which has the following tags:tourism=information & information=guidepost & bicycle=yes + - **a guidepost** which has the following tags:tourism=information & information=guidepost & bicycle=yes ## Basic tags for this layer diff --git a/Docs/Themes/cyclofix.md b/Docs/Themes/cyclofix.md index d255065fce..eefe46b224 100644 --- a/Docs/Themes/cyclofix.md +++ b/Docs/Themes/cyclofix.md @@ -24,6 +24,7 @@ This theme contains the following layers: - [charging_station](../Layers/charging_station.md) - [vending_machine_bicycle (defined in this theme)](#vending_machine_bicycle) - [vending_machine](../Layers/vending_machine.md) + - [bicycle_counter](../Layers/bicycle_counter.md) Available languages: @@ -66,6 +67,7 @@ Available languages: + [move-button](#move-button) + [delete-button](#delete-button) + [lod](#lod) + - [Filters](#filters) 3. [bicycle_rental_non_docking](#bicycle_rental_non_docking) - [Basic tags for this layer](#basic-tags-for-this-layer) - [Supported attributes](#supported-attributes) @@ -90,6 +92,7 @@ Available languages: + [move-button](#move-button) + [delete-button](#delete-button) + [lod](#lod) + - [Filters](#filters) 4. [charging_station_ebikes](#charging_station_ebikes) - [Basic tags for this layer](#basic-tags-for-this-layer) - [Supported attributes](#supported-attributes) @@ -206,6 +209,7 @@ Available languages: + [move-button](#move-button) + [delete-button](#delete-button) + [lod](#lod) + - [Filters](#filters) 5. [vending_machine_bicycle](#vending_machine_bicycle) - [Basic tags for this layer](#basic-tags-for-this-layer) - [Supported attributes](#supported-attributes) @@ -366,6 +370,13 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` + +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + # bicycle_rental_non_docking This layer is based on [bicycle_rental](../Layers/bicycle_rental.md) @@ -585,6 +596,21 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` + +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + # charging_station_ebikes This layer is based on [charging_station](../Layers/charging_station.md) @@ -1827,6 +1853,21 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` + +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + # vending_machine_bicycle This layer is based on [vending_machine](../Layers/vending_machine.md) @@ -1854,7 +1895,7 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | -| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | +| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [ice_cream](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dice_cream) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | | [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | [Continental](https://wiki.openstreetmap.org/wiki/Tag:brand%3DContinental) [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:brand%3DSchwalbe) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | | [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR) [0.05 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 CHF) [0.10 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 CHF) [0.20 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 CHF) [0.50 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 CHF) [1 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 CHF) [2 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 CHF) [5 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D5 CHF) | @@ -1913,6 +1954,7 @@ The question is `What does this vending machine sell?` - *Milk is sold* is shown if with vending=milk - *Bread is sold* is shown if with vending=bread - *Eggs are sold* is shown if with vending=eggs + - *Ice cream is sold* is shown if with vending=ice_cream - *Cheese is sold* is shown if with vending=cheese - *Honey is sold* is shown if with vending=honey - *Potatoes are sold* is shown if with vending=potatoes @@ -2093,37 +2135,6 @@ This tagrendering has labels -----|-----|----- | | open_now.0 | Open now | _isOpen=yes | -| id | question | osmTags | ------|-----|----- | -| vending.0 | *All vending machines* (default) | | -| vending.1 | Sale of drinks | vending~^(.*drinks.*)$ | -| vending.2 | Sale of sweets | vending~^(.*sweets.*)$ | -| vending.3 | Sale of food | vending~^(.*food.*)$ | -| vending.4 | Sale of cigarettes | vending~^(.*cigarettes.*)$ | -| vending.5 | Sale of condoms | vending~^(.*condoms.*)$ | -| vending.6 | Sale of coffee | vending~^(.*coffee.*)$ | -| vending.7 | Sale of water | vending~^(.*water.*)$ | -| vending.8 | Sale of newspapers | vending~^(.*newspapers.*)$ | -| vending.9 | Sale of bicycle inner tubes | vending~^(.*bicycle_tube.*)$ | -| vending.10 | Sale of milk | vending~^(.*milk.*)$ | -| vending.11 | Sale of bread | vending~^(.*bread.*)$ | -| vending.12 | Sale of eggs | vending~^(.*eggs.*)$ | -| vending.13 | Sale of cheese | vending~^(.*cheese.*)$ | -| vending.14 | Sale of honey | vending~^(.*honey.*)$ | -| vending.15 | Sale of potatoes | vending~^(.*potatoes.*)$ | -| vending.16 | Sale of meat | vending~^(.*meat.*)$ | -| vending.17 | Sale of fruit | vending~^(.*fruit.*)$ | -| vending.18 | Sale of strawberries | vending~^(.*strawberries.*)$ | -| vending.19 | Sale of flowers | vending~^(.*flowers.*)$ | -| vending.20 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | -| vending.21 | Sale of pressed pennies | vending=elongated_coin | -| vending.22 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | -| vending.23 | Sale of bicycle lights | vending=bicycle_light | -| vending.24 | Sale of gloves | vending=gloves | -| vending.25 | Sale of bicycle repair kits | vending=bicycle_repair_kit | -| vending.26 | Sale of bicycle pumps | vending=bicycle_pump | -| vending.27 | Sale of bicycle locks | vending=bicycle_lock | - | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Themes/disaster_response.md b/Docs/Themes/disaster_response.md index 3f5ee0ecd7..0e00cc0510 100644 --- a/Docs/Themes/disaster_response.md +++ b/Docs/Themes/disaster_response.md @@ -1,6 +1,6 @@ [//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources) -## Disaster response ( [disaster_response](https://mapcomplete.org/disaster_response) ) +## Disaster response and emergency services ( [disaster_response](https://mapcomplete.org/disaster_response) ) _This document details some technical information about this MapComplete theme, mostly about the attributes used in the theme. Various links point toward more information about the attributes, e.g. to the OpenStreetMap-wiki, to TagInfo or tools creating statistics_ The theme introduction reads: @@ -9,8 +9,17 @@ The theme introduction reads: This theme contains the following layers: - [hospital](../Layers/hospital.md) - - [assembly_point](../Layers/assembly_point.md) + - [fire_station](../Layers/fire_station.md) - [disaster_response](../Layers/disaster_response.md) + - [police](../Layers/police.md) + - [extinguisher](../Layers/extinguisher.md) + - [assembly_point](../Layers/assembly_point.md) + - [defibrillator](../Layers/defibrillator.md) + - [hydrant](../Layers/hydrant.md) + - [doctors](../Layers/doctors.md) + - [ambulancestation](../Layers/ambulancestation.md) + - [pharmacy](../Layers/pharmacy.md) + - [walls_and_buildings](../Layers/walls_and_buildings.md) Available languages: @@ -20,6 +29,7 @@ Available languages: - es - ca - da + - cs # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/facadegardens.md b/Docs/Themes/facadegardens.md index 4252e49164..23f9ce74bd 100644 --- a/Docs/Themes/facadegardens.md +++ b/Docs/Themes/facadegardens.md @@ -62,7 +62,7 @@ No themes use this layer The following options to create new points are included: -**a facade garden** which has the following tags:leisure=garden & garden:type=facade_garden (snaps to layers `walls_and_buildings`) + - **a facade garden** which has the following tags:leisure=garden & garden:type=facade_garden (snaps to layers `walls_and_buildings`) ## Basic tags for this layer diff --git a/Docs/Themes/fireplace.md b/Docs/Themes/fireplace.md index bc1a7dcaf3..c73e6be8dc 100644 --- a/Docs/Themes/fireplace.md +++ b/Docs/Themes/fireplace.md @@ -16,6 +16,8 @@ Available languages: - en - de - es + - ca + - cs # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/fritures.md b/Docs/Themes/fritures.md index a244620197..8d5217f9f1 100644 --- a/Docs/Themes/fritures.md +++ b/Docs/Themes/fritures.md @@ -110,7 +110,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -130,7 +130,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -239,21 +239,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -452,6 +456,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -560,6 +565,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Themes/ghostsigns.md b/Docs/Themes/ghostsigns.md index c1e0f3fe40..c82fa9b316 100644 --- a/Docs/Themes/ghostsigns.md +++ b/Docs/Themes/ghostsigns.md @@ -8,7 +8,7 @@ The theme introduction reads: This theme contains the following layers: - - [ghostsigns (defined in this theme)](#ghostsigns) + - [ghostsign](../Layers/ghostsign.md) - [advertising_wall_paintings (defined in this theme)](#advertising_wall_paintings) - [artwork_on_wall (defined in this theme)](#artwork_on_wall) - [walls_and_buildings](../Layers/walls_and_buildings.md) @@ -18,26 +18,15 @@ Available languages: - en - de - es + - cs # Table of contents - [Ghost Signs ( ghostsigns )](#ghost-signs-(-ghostsigns-)) 1. [Layers defined in this theme configuration file](#layers-defined-in-this-theme-configuration-file) -2. [ghostsigns](#ghostsigns) - - [Presets](#presets) +2. [advertising_wall_paintings](#advertising_wall_paintings) - [Basic tags for this layer](#basic-tags-for-this-layer) - [Supported attributes](#supported-attributes) - + [historic](#historic) - + [images](#images) - + [name](#name) - + [inscription](#inscription) - + [brand](#brand) - + [leftover-questions](#leftover-questions) - + [lod](#lod) -3. [advertising_wall_paintings](#advertising_wall_paintings) - - [Basic tags for this layer](#basic-tags-for-this-layer) - - [Supported attributes](#supported-attributes) - + [historic](#historic) + [images](#images) + [type](#type) + [animated](#animated) @@ -46,11 +35,12 @@ Available languages: + [message_type](#message_type) + [Sides](#sides) + [ref](#ref) + + [historic](#historic) + [leftover-questions](#leftover-questions) + [move-button](#move-button) + [delete-button](#delete-button) + [lod](#lod) -4. [artwork_on_wall](#artwork_on_wall) +3. [artwork_on_wall](#artwork_on_wall) - [Basic tags for this layer](#basic-tags-for-this-layer) - [Supported attributes](#supported-attributes) + [historic_or_not](#historic_or_not) @@ -82,80 +72,6 @@ Available languages: # Layers defined in this theme configuration file These layers can not be reused in different themes. -# ghostsigns - -Layer showing disused signs on buildings - - - This layer is shown at zoomlevel **10** and higher - -No themes use this layer - -## Presets - -The following options to create new points are included: - -**a ghost sign** which has the following tags:historic=advertising & advertising=wall_painting (snaps to layers `walls_and_buildings`) - -## Basic tags for this layer - -Elements must match **all** of the following expressions: - -0. advertising=wall_painting -1. historic~.+ - -[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22advertising%22%3D%22wall_painting%22%5D%5B%22historic%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) - -## Supported attributes - -**Warning:**,this quick overview is incomplete, - -| attribute | type | values which are supported by this layer | ------|-----|----- | -| [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | -| [inscription](https://wiki.openstreetmap.org/wiki/Key:inscription) | [text](../SpecialInputElements.md#text) | | -| [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | | - -### historic - -The question is `Is this a ghost sign?` - - - *This is a ghost sign* is shown if with historic=advertising - - *This is not a ghost sign, answering this will hide the sign from the map* is shown if with historic= - -### images -This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images -_This tagrendering has no question and is thus read-only_ -*{image_carousel()}{image_upload()}* - -### name - -_This tagrendering has no question and is thus read-only_ -*{name}* - -This tagrendering is only visible in the popup if the following condition is met: name~.+ - -### inscription - -The question is `What is the text on the sign?` -*The text on the sign is: {inscription}* is shown if `inscription` is set - -### brand - -The question is `For what business was this sign made?` -*This sign was made for: {brand}* is shown if `brand` is set - -### leftover-questions - -_This tagrendering has no question and is thus read-only_ -*{questions( ,)}* - -### lod - -_This tagrendering has no question and is thus read-only_ -*{linked_data_from_website()}* - -This tagrendering has labels -`added_by_default` # advertising_wall_paintings This layer is based on [advertising](../Layers/advertising.md) @@ -168,9 +84,12 @@ No themes use this layer ## Basic tags for this layer -Elements must match the expression **advertising=wall_painting** +Elements must match **all** of the following expressions: -[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22advertising%22%3D%22wall_painting%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) +0. advertising~.+ +1. advertising!=no + +[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B%28%20%20%20%20nwr%5B%22advertising%22%5D%5B%22advertising%22!%3D%22no%22%5D%28%7B%7Bbbox%7D%7D%29%3B%0A%29%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B) ## Supported attributes @@ -178,19 +97,12 @@ Elements must match the expression ** [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | -| [advertising](https://wiki.openstreetmap.org/wiki/Key:advertising) | [string](../SpecialInputElements.md#string) | [billboard](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dbillboard) [board](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dboard) [column](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dcolumn) [flag](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dflag) [poster_box](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dposter_box) [screen](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dscreen) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsculpture) [sign](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsign) [tarp](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtarp) [totem](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtotem) [wall_painting](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dwall_painting) | +| [advertising](https://wiki.openstreetmap.org/wiki/Key:advertising) | [string](../SpecialInputElements.md#string) | [billboard](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dbillboard) [board](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dboard) [column](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dcolumn) [flag](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dflag) [poster_box](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dposter_box) [screen](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dscreen) [sculpture](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsculpture) [sign](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dsign) [tarp](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtarp) [totem](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtotem) [wall_painting](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dwall_painting) [tilework](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Dtilework) [relief](https://wiki.openstreetmap.org/wiki/Tag:advertising%3Drelief) | | [animated](https://wiki.openstreetmap.org/wiki/Key:animated) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dno) [digital_display](https://wiki.openstreetmap.org/wiki/Tag:animated%3Ddigital_display) [trivision_blades](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dtrivision_blades) [winding_posters](https://wiki.openstreetmap.org/wiki/Tag:animated%3Dwinding_posters) [revolving](https://wiki.openstreetmap.org/wiki/Tag:animated%3Drevolving) | | [operator](https://wiki.openstreetmap.org/wiki/Key:operator) | [string](../SpecialInputElements.md#string) | | | [sides](https://wiki.openstreetmap.org/wiki/Key:sides) | Multiple choice | [1](https://wiki.openstreetmap.org/wiki/Tag:sides%3D1) [2](https://wiki.openstreetmap.org/wiki/Tag:sides%3D2) | | [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) | | - -### historic - -The question is `Is this a ghost sign?` - - - *This is a ghost sign* is shown if with historic=advertising - - *This is not a ghost sign* is shown if with historic= +| [historic](https://wiki.openstreetmap.org/wiki/Key:historic) | Multiple choice | [advertising](https://wiki.openstreetmap.org/wiki/Tag:historic%3Dadvertising) [](https://wiki.openstreetmap.org/wiki/Tag:historic%3D) | ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images @@ -213,6 +125,8 @@ The question is `Which type of advertising feature is this?` - *This is a tarp (a weatherproof piece of textile with an advertising message)* is shown if with advertising=tarp - *This is a totem* is shown if with advertising=totem - *This is a wall painting* is shown if with advertising=wall_painting + - *This is tilework - the advertisement is painted on tiles* is shown if with advertising=tilework + - *This is a relief* is shown if with advertising=relief ### animated @@ -268,6 +182,13 @@ This tagrendering is only visible in the popup if the following condition is met The question is `Wich is the reference number?` *Reference number is {ref}* is shown if `ref` is set +### historic + +The question is `Is this sign for a business that no longer exists or no longer being maintained?` + + - *This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)* is shown if with historic=advertising + - *This advertisement sign has no historic value (the business still exists and has no heritage value)* is shown if with historic= + ### leftover-questions _This tagrendering has no question and is thus read-only_ diff --git a/Docs/Themes/glutenfree.md b/Docs/Themes/glutenfree.md index 0f01638d7d..94cdadf00f 100644 --- a/Docs/Themes/glutenfree.md +++ b/Docs/Themes/glutenfree.md @@ -21,6 +21,8 @@ Available languages: - de - it - es + - ca + - cs # Table of contents @@ -92,6 +94,7 @@ Available languages: + [leftover-questions](#leftover-questions) + [move-button](#move-button) + [lod](#lod) + - [Filters](#filters) 4. [shops_glutenfree](#shops_glutenfree) - [Basic tags for this layer](#basic-tags-for-this-layer) - [Supported attributes](#supported-attributes) @@ -179,7 +182,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -198,7 +201,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -319,21 +322,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -520,6 +527,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -628,6 +636,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | @@ -804,6 +835,33 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` + +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + # shops_glutenfree This layer is based on [shops](../Layers/shops.md) @@ -858,7 +916,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -1063,6 +1121,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -1350,6 +1411,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -1443,18 +1505,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -1463,6 +1513,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Themes/grb.md b/Docs/Themes/grb.md index 1dbff349f9..e6c88e4619 100644 --- a/Docs/Themes/grb.md +++ b/Docs/Themes/grb.md @@ -177,7 +177,7 @@ This tagrendering has labels | id | question | osmTags | fields | -----|-----|-----|----- | -| last-edited-by.0 | Last change made by {username} | | username (string) | +| last-edited-by.0 | Last change made by {username} | | username (regex) | # grb diff --git a/Docs/Themes/healthcare.md b/Docs/Themes/healthcare.md index d9d06f0cbd..96951c38aa 100644 --- a/Docs/Themes/healthcare.md +++ b/Docs/Themes/healthcare.md @@ -105,11 +105,9 @@ No themes use this layer The following options to create new points are included: -**a medical supply shop** which has the following tags:shop=medical_supply - -**a hearing aids shop** which has the following tags:shop=hearing_aids - -**an optician** which has the following tags:shop=optician + - **a medical supply shop** which has the following tags:shop=medical_supply + - **a hearing aids shop** which has the following tags:shop=hearing_aids + - **an optician** which has the following tags:shop=optician ## Basic tags for this layer @@ -152,7 +150,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -346,6 +344,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -633,6 +634,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -751,6 +753,174 @@ This tagrendering has labels -----|-----|----- | | accepts_cards.0 | Accepts payment cards | payment:cards=yes | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | diff --git a/Docs/Themes/items_with_image.md b/Docs/Themes/items_with_image.md index 53e071424a..2c3cfe5f78 100644 --- a/Docs/Themes/items_with_image.md +++ b/Docs/Themes/items_with_image.md @@ -15,6 +15,7 @@ Available languages: - en - de - es + - cs # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/kerbs_and_crossings.md b/Docs/Themes/kerbs_and_crossings.md index 78edd347a7..2e87b5a4eb 100644 --- a/Docs/Themes/kerbs_and_crossings.md +++ b/Docs/Themes/kerbs_and_crossings.md @@ -68,7 +68,7 @@ No themes use this layer The following options to create new points are included: -**a crossing** which has the following tags:highway=crossing (snaps to layers `cycleways_and_roads`) + - **a crossing** which has the following tags:highway=crossing (snaps to layers `cycleways_and_roads`) ## Basic tags for this layer diff --git a/Docs/Themes/lactosefree.md b/Docs/Themes/lactosefree.md index bbb796562d..7524419180 100644 --- a/Docs/Themes/lactosefree.md +++ b/Docs/Themes/lactosefree.md @@ -20,6 +20,8 @@ Available languages: - en - de - es + - ca + - cs # Table of contents @@ -91,6 +93,7 @@ Available languages: + [leftover-questions](#leftover-questions) + [move-button](#move-button) + [lod](#lod) + - [Filters](#filters) 4. [shops_lactosefree](#shops_lactosefree) - [Basic tags for this layer](#basic-tags-for-this-layer) - [Supported attributes](#supported-attributes) @@ -178,7 +181,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -197,7 +200,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -318,21 +321,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -519,6 +526,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -627,6 +635,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | @@ -803,6 +834,33 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` + +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + # shops_lactosefree This layer is based on [shops](../Layers/shops.md) @@ -857,7 +915,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -1062,6 +1120,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -1349,6 +1410,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -1442,18 +1504,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -1462,6 +1512,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Themes/lighthouses.md b/Docs/Themes/lighthouses.md index b3ab023a8b..2d50f9eb63 100644 --- a/Docs/Themes/lighthouses.md +++ b/Docs/Themes/lighthouses.md @@ -17,6 +17,8 @@ Available languages: - da - it - es + - ca + - cs # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/mapcomplete-changes.md b/Docs/Themes/mapcomplete-changes.md index 0b24d9ebf3..127c643d9d 100644 --- a/Docs/Themes/mapcomplete-changes.md +++ b/Docs/Themes/mapcomplete-changes.md @@ -15,7 +15,6 @@ Available languages: - en - de - - es # Table of contents @@ -117,19 +116,19 @@ This tagrendering has labels | id | question | osmTags | fields | -----|-----|-----|----- | -| theme-search.0 | Themename contains {search} | | search (string) | +| theme-search.0 | Themename contains {search} | | search (regex) | | id | question | osmTags | fields | -----|-----|-----|----- | -| theme-not-search.0 | Themename does not contain {search} | | search (string) | +| theme-not-search.0 | Themename does not contain {search} | | search (regex) | | id | question | osmTags | fields | -----|-----|-----|----- | -| created_by.0 | Made by contributor {search} | | search (string) | +| created_by.0 | Made by contributor {search} | | search (regex) | | id | question | osmTags | fields | -----|-----|-----|----- | -| not_created_by.0 | Not made by contributor {search} | | search (string) | +| not_created_by.0 | Not made by contributor {search} | | search (regex) | | id | question | osmTags | fields | -----|-----|-----|----- | @@ -141,11 +140,11 @@ This tagrendering has labels | id | question | osmTags | fields | -----|-----|-----|----- | -| locale-filter.0 | User language (iso-code) {search} | | search (string) | +| locale-filter.0 | User language (iso-code) {search} | | search (regex) | | id | question | osmTags | fields | -----|-----|-----|----- | -| host_name.0 | Made with host {search} | | search (string) | +| host_name.0 | Made with host {search} | | search (regex) | | id | question | osmTags | -----|-----|----- | diff --git a/Docs/Themes/openlovemap.md b/Docs/Themes/openlovemap.md index a3d55bc2d6..55f45775aa 100644 --- a/Docs/Themes/openlovemap.md +++ b/Docs/Themes/openlovemap.md @@ -143,7 +143,7 @@ No themes use this layer The following options to create new points are included: -**an erotic shop** which has the following tags:shop=erotic + - **an erotic shop** which has the following tags:shop=erotic ## Basic tags for this layer @@ -183,7 +183,7 @@ Elements must match the expression ** [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -378,6 +378,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -665,6 +668,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -809,6 +813,174 @@ This tagrendering has labels -----|-----|----- | | accepts_cards.0 | Accepts payment cards | payment:cards=yes | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | @@ -839,7 +1011,7 @@ No themes use this layer The following options to create new points are included: -**a condom vending machine** which has the following tags:amenity=vending_machine & vending=condoms + - **a condom vending machine** which has the following tags:amenity=vending_machine & vending=condoms ## Basic tags for this layer @@ -857,7 +1029,7 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | -| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | +| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [ice_cream](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dice_cream) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | | [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | [Continental](https://wiki.openstreetmap.org/wiki/Tag:brand%3DContinental) [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:brand%3DSchwalbe) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | | [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR) [0.05 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 CHF) [0.10 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 CHF) [0.20 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 CHF) [0.50 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 CHF) [1 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 CHF) [2 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 CHF) [5 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D5 CHF) | @@ -917,6 +1089,7 @@ The question is `What does this vending machine sell?` - *Milk is sold* is shown if with vending=milk - *Bread is sold* is shown if with vending=bread - *Eggs are sold* is shown if with vending=eggs + - *Ice cream is sold* is shown if with vending=ice_cream - *Cheese is sold* is shown if with vending=cheese - *Honey is sold* is shown if with vending=honey - *Potatoes are sold* is shown if with vending=potatoes @@ -1126,7 +1299,7 @@ No themes use this layer The following options to create new points are included: -**an erotic cinema** which has the following tags:amenity=cinema & cinema=erotic + - **an erotic cinema** which has the following tags:amenity=cinema & cinema=erotic ## Basic tags for this layer diff --git a/Docs/Themes/personal.md b/Docs/Themes/personal.md index a4b9caa4f1..29b3cc5111 100644 --- a/Docs/Themes/personal.md +++ b/Docs/Themes/personal.md @@ -21,6 +21,7 @@ This theme contains the following layers: - [bbq](../Layers/bbq.md) - [bench](../Layers/bench.md) - [bench_at_pt](../Layers/bench_at_pt.md) + - [bicycle_counter](../Layers/bicycle_counter.md) - [bicycle_library](../Layers/bicycle_library.md) - [bicycle_rental](../Layers/bicycle_rental.md) - [bike_cafe](../Layers/bike_cafe.md) @@ -63,6 +64,7 @@ This theme contains the following layers: - [food](../Layers/food.md) - [food_courts](../Layers/food_courts.md) - [ghost_bike](../Layers/ghost_bike.md) + - [ghostsign](../Layers/ghostsign.md) - [governments](../Layers/governments.md) - [grave](../Layers/grave.md) - [guidepost](../Layers/guidepost.md) @@ -96,6 +98,7 @@ This theme contains the following layers: - [picnic_table](../Layers/picnic_table.md) - [playground](../Layers/playground.md) - [playground_equipment](../Layers/playground_equipment.md) + - [police](../Layers/police.md) - [postboxes](../Layers/postboxes.md) - [postoffices](../Layers/postoffices.md) - [public_bookcase](../Layers/public_bookcase.md) diff --git a/Docs/Themes/pets.md b/Docs/Themes/pets.md index a58f855726..3572f57866 100644 --- a/Docs/Themes/pets.md +++ b/Docs/Themes/pets.md @@ -166,7 +166,7 @@ Elements must match **all** of the following expressions: | [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) | | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | -| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) | +| [cuisine](https://wiki.openstreetmap.org/wiki/Key:cuisine) | [string](../SpecialInputElements.md#string) | [pizza](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpizza) [friture](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfriture) [pasta](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dpasta) [kebab](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dkebab) [sandwich](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsandwich) [burger](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dburger) [sushi](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dsushi) [coffee](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dcoffee) [italian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Ditalian) [french](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dfrench) [chinese](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchinese) [greek](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dgreek) [indian](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dindian) [turkish](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dturkish) [thai](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dthai) [mexican ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dmexican ) [japanese ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Djapanese ) [chicken ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dchicken ) [seafood ](https://wiki.openstreetmap.org/wiki/Tag:cuisine%3Dseafood ) | | [website:menu](https://wiki.openstreetmap.org/wiki/Key:website:menu) | [url](../SpecialInputElements.md#url) | | | [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [takeaway](https://wiki.openstreetmap.org/wiki/Key:takeaway) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:takeaway%3Dno) | @@ -186,7 +186,7 @@ Elements must match **all** of the following expressions: | [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | | [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | | [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) [outside](https://wiki.openstreetmap.org/wiki/Tag:dog%3Doutside) | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -295,21 +295,25 @@ The question is `Is this place accessible with a wheelchair?` The question is `What kind of food is served here?` *This place mostly serves {cuisine}* is shown if `cuisine` is set - - *This is a pizzeria* is shown if with cuisine=pizza - - *This is a friture* is shown if with cuisine=friture - - *Mainly serves pasta* is shown if with cuisine=pasta - - *This is kebab shop* is shown if with cuisine=kebab - - *This is a sandwich shop* is shown if with cuisine=sandwich - - *Burgers are served here* is shown if with cuisine=burger - - *Sushi is served here* is shown if with cuisine=sushi - - *Coffee is served here* is shown if with cuisine=coffee - - *This is an Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian - - *French dishes are served here* is shown if with cuisine=french - - *Chinese dishes are served here* is shown if with cuisine=chinese - - *Greek dishes are served here* is shown if with cuisine=greek - - *Indian dishes are served here* is shown if with cuisine=indian - - *Turkish dishes are served here* is shown if with cuisine=turkish - - *Thai dishes are served here* is shown if with cuisine=thai + - *Pizzeria* is shown if with cuisine=pizza + - *Friture* is shown if with cuisine=friture + - *Serves mainly pasta* is shown if with cuisine=pasta + - *Kebab shop* is shown if with cuisine=kebab + - *Sandwich shop* is shown if with cuisine=sandwich + - *Burgersrestaurant* is shown if with cuisine=burger + - *Sushi restaurant* is shown if with cuisine=sushi + - *Coffeebar* is shown if with cuisine=coffee + - *Italian restaurant (which serves more than pasta and pizza)* is shown if with cuisine=italian + - *French restaurant* is shown if with cuisine=french + - *Chinese* is shown if with cuisine=chinese + - *Greek* is shown if with cuisine=greek + - *Indian* is shown if with cuisine=indian + - *Turkish restaurant* is shown if with cuisine=turkish + - *Thai restaurant* is shown if with cuisine=thai + - *Mexican dishes are served here* is shown if with cuisine=mexican + - *Japanese dishes are served here* is shown if with cuisine=japanese + - *Chicken based dishes are served here* is shown if with cuisine=chicken + - *Seafood dishes are served here* is shown if with cuisine=seafood ### show-menu-image @@ -508,6 +512,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -616,6 +621,29 @@ This tagrendering has labels | dogs.1 | Dogs allowed | dog=unleashed | dog=yes | | dogs.2 | No dogs allowed | dog=no | +| id | question | osmTags | +-----|-----|----- | +| Cuisine.0 | *What kind of food is served here?* (default) | | +| Cuisine.1 | Pizzeria | cuisine=pizza | +| Cuisine.2 | Friture | cuisine=friture | +| Cuisine.3 | Serves mainly pasta | cuisine=pasta | +| Cuisine.4 | Kebab shop | cuisine=kebab | +| Cuisine.5 | Sandwich shop | cuisine=sandwich | +| Cuisine.6 | Burgersrestaurant | cuisine=burger | +| Cuisine.7 | Sushi restaurant | cuisine=sushi | +| Cuisine.8 | Coffeebar | cuisine=coffee | +| Cuisine.9 | Italian restaurant (which serves more than pasta and pizza) | cuisine=italian | +| Cuisine.10 | French restaurant | cuisine=french | +| Cuisine.11 | Chinese | cuisine=chinese | +| Cuisine.12 | Greek | cuisine=greek | +| Cuisine.13 | Indian | cuisine=indian | +| Cuisine.14 | Turkish restaurant | cuisine=turkish | +| Cuisine.15 | Thai restaurant | cuisine=thai | +| Cuisine.16 | Mexican dishes are served here | cuisine=mexican | +| Cuisine.17 | Japanese dishes are served here | cuisine=japanese | +| Cuisine.18 | Chicken based dishes are served here | cuisine=chicken | +| Cuisine.19 | Seafood dishes are served here | cuisine=seafood | + | id | question | osmTags | -----|-----|----- | | has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired | @@ -626,7 +654,7 @@ This layer is based on [shops](../Layers/shops.md) A shop - - This layer is shown at zoomlevel **12** and higher + - This layer is shown at zoomlevel **15** and higher No themes use this layer @@ -671,7 +699,7 @@ Elements must match **all** of the following expressions: | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -865,6 +893,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -1152,6 +1183,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -1258,18 +1290,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -1278,6 +1298,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Themes/sports.md b/Docs/Themes/sports.md index 311a715d38..5c0e8ba269 100644 --- a/Docs/Themes/sports.md +++ b/Docs/Themes/sports.md @@ -100,7 +100,7 @@ No themes use this layer The following options to create new points are included: -**a sports shop** which has the following tags:shop=sports + - **a sports shop** which has the following tags:shop=sports ## Basic tags for this layer @@ -140,7 +140,7 @@ Elements must match the expression ** [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | | [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | -| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | +| [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | | [organic](https://wiki.openstreetmap.org/wiki/Key:organic) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dyes) [only](https://wiki.openstreetmap.org/wiki/Tag:organic%3Donly) [no](https://wiki.openstreetmap.org/wiki/Tag:organic%3Dno) | @@ -334,6 +334,9 @@ The question is `What kind of shop is this?` - *Window Blind Store* is shown if with shop=window_blind - *Wine Shop* is shown if with shop=wine +This tagrendering has labels +`description` + ### brand The question is `What is the brand of this shop?` @@ -621,6 +624,7 @@ The question is `Does this place offer internet access?` - *This place offers internet access* is shown if with internet_access=yes. _This option cannot be chosen as answer_ - *This place offers internet access via a terminal or computer* is shown if with internet_access=terminal - *This place offers wired internet access* is shown if with internet_access=wired + - *This place offers both wireless internet and internet access via a terminal or computer* is shown if with internet_access=terminal;wifi This tagrendering has labels `internet-all` @@ -727,18 +731,6 @@ This tagrendering has labels ## Filters -| id | question | osmTags | ------|-----|----- | -| open_now.0 | Open now | _isOpen=yes | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-type.0 | Only show shops selling {search} | | search (string) | - -| id | question | osmTags | fields | ------|-----|-----|----- | -| shop-name.0 | Only show shops with name {search} | | search (string) | - | id | question | osmTags | -----|-----|----- | | second_hand.0 | Only show shops selling second-hand items | shop=second_hand | shop=charity | second_hand=yes | second_hand=only | service:bicycle:second_hand~^(yes|only)$ | @@ -747,6 +739,178 @@ This tagrendering has labels -----|-----|----- | | has_organic.0 | Has organic options | organic=yes | organic=only | +| id | question | osmTags | +-----|-----|----- | +| shop_types.0 | *What kind of shop is this?* (default) | | +| shop_types.1 | Bicycle rental shop | shop=bicycle_rental | +| shop_types.2 | Farm Supply Shop | shop=agrarian | +| shop_types.3 | Liquor Store | shop=alcohol | +| shop_types.4 | Anime / Manga Shop | shop=anime | +| shop_types.5 | Antique Shop | shop=antiques | +| shop_types.6 | Appliance Store | shop=appliance | +| shop_types.7 | Art Store | shop=art | +| shop_types.8 | Baby Goods Store | shop=baby_goods | +| shop_types.9 | Bag/Luggage Store | shop=bag | +| shop_types.10 | Bakery | shop=bakery | +| shop_types.11 | Bathroom Furnishing Store | shop=bathroom_furnishing | +| shop_types.12 | Beauty Shop | shop=beauty | +| shop_types.13 | Bedding/Mattress Store | shop=bed | +| shop_types.14 | Beverage Store | shop=beverages | +| shop_types.15 | Bicycle Shop | shop=bicycle | +| shop_types.16 | Boat Store | shop=boat | +| shop_types.17 | Bookmaker | shop=bookmaker | +| shop_types.18 | Bookstore | shop=books | +| shop_types.19 | Brewing Supply Store | shop=brewing_supplies | +| shop_types.20 | Butcher | shop=butcher | +| shop_types.21 | Camera Equipment Store | shop=camera | +| shop_types.22 | Candle Shop | shop=candles | +| shop_types.23 | Cannabis Shop | shop=cannabis | +| shop_types.24 | Car Dealership | shop=car | +| shop_types.25 | Car Parts Store | shop=car_parts | +| shop_types.26 | Car Repair Shop | shop=car_repair | +| shop_types.27 | RV Dealership | shop=caravan | +| shop_types.28 | Carpet Store | shop=carpet | +| shop_types.29 | Catalog Shop | shop=catalogue | +| shop_types.30 | Charity Store | shop=charity | +| shop_types.31 | Cheese Store | shop=cheese | +| shop_types.32 | Drugstore | shop=chemist | +| shop_types.33 | Chocolate Store | shop=chocolate | +| shop_types.34 | Clothing Store | shop=clothes | +| shop_types.35 | Coffee Store | shop=coffee | +| shop_types.36 | Collectibles Shop | shop=collector | +| shop_types.37 | Computer Store | shop=computer | +| shop_types.38 | Candy Store | shop=confectionery | +| shop_types.39 | Convenience Store | shop=convenience | +| shop_types.40 | Copy Store | shop=copyshop | +| shop_types.41 | Cosmetics Store | shop=cosmetics | +| shop_types.42 | Rural Supplies Store | shop=country_store | +| shop_types.43 | Arts & Crafts Store | shop=craft | +| shop_types.44 | Curtain Store | shop=curtain | +| shop_types.45 | Dairy Store | shop=dairy | +| shop_types.46 | Delicatessen | shop=deli | +| shop_types.47 | Department Store | shop=department_store | +| shop_types.48 | DIY Store | shop=doityourself | +| shop_types.49 | Door Shop | shop=doors | +| shop_types.50 | Dry Cleaner | shop=dry_cleaning | +| shop_types.51 | E-Cigarette Shop | shop=e-cigarette | +| shop_types.52 | Electrical Equipment Store | shop=electrical | +| shop_types.53 | Electronics Store | shop=electronics | +| shop_types.54 | Erotic Store | shop=erotic | +| shop_types.55 | Fabric Store | shop=fabric | +| shop_types.56 | Produce Stand | shop=farm | +| shop_types.57 | Fashion Accessories Store | shop=fashion_accessories | +| shop_types.58 | Fireplace Store | shop=fireplace | +| shop_types.59 | Fishing Shop | shop=fishing | +| shop_types.60 | Flooring Supply Shop | shop=flooring | +| shop_types.61 | Florist | shop=florist | +| shop_types.62 | Framing Shop | shop=frame | +| shop_types.63 | Frozen Food Store | shop=frozen_food | +| shop_types.64 | Fuel Shop | shop=fuel | +| shop_types.65 | Funeral Home | shop=funeral_directors | +| shop_types.66 | Furniture Store | shop=furniture | +| shop_types.67 | Tabletop Game Store | shop=games | +| shop_types.68 | Garden Center | shop=garden_centre | +| shop_types.69 | Bottled Gas Shop | shop=gas | +| shop_types.70 | General Store | shop=general | +| shop_types.71 | Gift Shop | shop=gift | +| shop_types.72 | Greengrocer | shop=greengrocer | +| shop_types.73 | Hairdresser | shop=hairdresser | +| shop_types.74 | Hairdresser Supply Store | shop=hairdresser_supply | +| shop_types.75 | Hardware Store | shop=hardware | +| shop_types.76 | Health Food Store | shop=health_food | +| shop_types.77 | Hearing Aids Store | shop=hearing_aids | +| shop_types.78 | Herbalist | shop=herbalist | +| shop_types.79 | Hifi Store | shop=hifi | +| shop_types.80 | Honey Store | shop=honey | +| shop_types.81 | Household Linen Shop | shop=household_linen | +| shop_types.82 | Houseware Store | shop=houseware | +| shop_types.83 | Hunting Shop | shop=hunting | +| shop_types.84 | Interior Decoration Store | shop=interior_decoration | +| shop_types.85 | Jewelry Store | shop=jewelry | +| shop_types.86 | Kiosk | shop=kiosk | +| shop_types.87 | Kitchen Design Store | shop=kitchen | +| shop_types.88 | Laundry | shop=laundry | +| shop_types.89 | Leather Store | shop=leather | +| shop_types.90 | Lighting Store | shop=lighting | +| shop_types.91 | Locksmith | shop=locksmith | +| shop_types.92 | Lottery Shop | shop=lottery | +| shop_types.93 | Mall | shop=mall | +| shop_types.94 | Massage Shop | shop=massage | +| shop_types.95 | Medical Supply Store | shop=medical_supply | +| shop_types.96 | Military Surplus Store | shop=military_surplus | +| shop_types.97 | Mobile Phone Store | shop=mobile_phone | +| shop_types.98 | Model Shop | shop=model | +| shop_types.99 | Money Lender | shop=money_lender | +| shop_types.100 | Motorcycle Dealership | shop=motorcycle | +| shop_types.101 | Motorcycle Repair Shop | shop=motorcycle_repair | +| shop_types.102 | Music Store | shop=music | +| shop_types.103 | Musical Instrument Store | shop=musical_instrument | +| shop_types.104 | Newsstand | shop=newsagent | +| shop_types.105 | Nutrition Supplements Store | shop=nutrition_supplements | +| shop_types.106 | Nuts Shop | shop=nuts | +| shop_types.107 | Optician | shop=optician | +| shop_types.108 | Outdoors Store | shop=outdoor | +| shop_types.109 | Online Retailer Outpost | shop=outpost | +| shop_types.110 | Paint Store | shop=paint | +| shop_types.111 | Party Supply Store | shop=party | +| shop_types.112 | Pasta Store | shop=pasta | +| shop_types.113 | Pastry Shop | shop=pastry | +| shop_types.114 | Pawnshop | shop=pawnbroker | +| shop_types.115 | Perfume Store | shop=perfumery | +| shop_types.116 | Pet Store | shop=pet | +| shop_types.117 | Pet Groomer | shop=pet_grooming | +| shop_types.118 | Photography Store | shop=photo | +| shop_types.119 | Pottery Store | shop=pottery | +| shop_types.120 | Printer Ink Store | shop=printer_ink | +| shop_types.121 | Psychic | shop=psychic | +| shop_types.122 | Fireworks Store | shop=pyrotechnics | +| shop_types.123 | Radio/Electronic Component Store | shop=radiotechnics | +| shop_types.124 | Religious Store | shop=religion | +| shop_types.125 | Rental Shop | shop=rental | +| shop_types.126 | Repair Shop | shop=repair | +| shop_types.127 | Rice Store | shop=rice | +| shop_types.128 | Scuba Diving Shop | shop=scuba_diving | +| shop_types.129 | Seafood Shop | shop=seafood | +| shop_types.130 | Thrift Store | shop=second_hand | +| shop_types.131 | Sewing Supply Shop | shop=sewing | +| shop_types.132 | Shoe Repair Shop | shop=shoe_repair | +| shop_types.133 | Shoe Store | shop=shoes | +| shop_types.134 | Spice Shop | shop=spices | +| shop_types.135 | Sporting Goods Store | shop=sports | +| shop_types.136 | Stationery Store | shop=stationery | +| shop_types.137 | Storage Rental | shop=storage_rental | +| shop_types.138 | Supermarket | shop=supermarket | +| shop_types.139 | Pool Supply Store | shop=swimming_pool | +| shop_types.140 | Tailor | shop=tailor | +| shop_types.141 | Tattoo Parlor | shop=tattoo | +| shop_types.142 | Tea Store | shop=tea | +| shop_types.143 | Telecom Retail Store | shop=telecommunication | +| shop_types.144 | Ticket Seller | shop=ticket | +| shop_types.145 | Tile Shop | shop=tiles | +| shop_types.146 | Tobacco Shop | shop=tobacco | +| shop_types.147 | Tool Rental | shop=tool_hire | +| shop_types.148 | Toy Store | shop=toys | +| shop_types.149 | Trade Shop | shop=trade | +| shop_types.150 | Travel Agency | shop=travel_agency | +| shop_types.151 | Trophy Shop | shop=trophy | +| shop_types.152 | Tire Store | shop=tyres | +| shop_types.153 | Vacuum Cleaner Store | shop=vacuum_cleaner | +| shop_types.154 | Discount Store | shop=variety_store | +| shop_types.155 | Video Store | shop=video | +| shop_types.156 | Video Game Store | shop=video_games | +| shop_types.157 | Watches Shop | shop=watches | +| shop_types.158 | Drinking Water Shop | shop=water | +| shop_types.159 | Watersport/Swim Shop | shop=water_sports | +| shop_types.160 | Weapon Shop | shop=weapons | +| shop_types.161 | Wholesale Store | shop=wholesale | +| shop_types.162 | Wig Shop | shop=wigs | +| shop_types.163 | Window Blind Store | shop=window_blind | +| shop_types.164 | Wine Shop | shop=wine | + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + | id | question | osmTags | -----|-----|----- | | accepts_cash.0 | Accepts cash | payment:cash=yes | diff --git a/Docs/Themes/stations.md b/Docs/Themes/stations.md index f5380541a3..6798a3c961 100644 --- a/Docs/Themes/stations.md +++ b/Docs/Themes/stations.md @@ -100,7 +100,7 @@ No themes use this layer The following options to create new points are included: -**a departures board** which has the following tags:departures_board=yes + - **a departures board** which has the following tags:departures_board=yes ## Basic tags for this layer diff --git a/Docs/Themes/surveillance.md b/Docs/Themes/surveillance.md index 980e84bf91..2d778dbe35 100644 --- a/Docs/Themes/surveillance.md +++ b/Docs/Themes/surveillance.md @@ -10,6 +10,7 @@ This theme contains the following layers: - [surveillance_camera](../Layers/surveillance_camera.md) - [speed_camera](../Layers/speed_camera.md) + - [police](../Layers/police.md) - [walls_and_buildings](../Layers/walls_and_buildings.md) Available languages: diff --git a/Docs/Themes/toerisme_vlaanderen.md b/Docs/Themes/toerisme_vlaanderen.md index 523f5a17f1..0e508c043b 100644 --- a/Docs/Themes/toerisme_vlaanderen.md +++ b/Docs/Themes/toerisme_vlaanderen.md @@ -144,6 +144,7 @@ Available languages: + [move-button](#move-button) + [delete-button](#delete-button) + [lod](#lod) + - [Filters](#filters) 3. [bicycle_rental_non_docking](#bicycle_rental_non_docking) - [Presets](#presets) - [Basic tags for this layer](#basic-tags-for-this-layer) @@ -169,6 +170,7 @@ Available languages: + [move-button](#move-button) + [delete-button](#delete-button) + [lod](#lod) + - [Filters](#filters) # Layers defined in this theme configuration file These layers can not be reused in different themes. @@ -186,7 +188,7 @@ No themes use this layer The following options to create new points are included: -**laadpunt voor elektrische fietsen** which has the following tags:amenity=charging_station & motorcar=no & bicycle=yes + - **laadpunt voor elektrische fietsen** which has the following tags:amenity=charging_station & motorcar=no & bicycle=yes ## Basic tags for this layer @@ -1420,6 +1422,21 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` + +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + # bicycle_rental_non_docking This layer is based on [bicycle_rental](../Layers/bicycle_rental.md) @@ -1434,9 +1451,8 @@ No themes use this layer The following options to create new points are included: -**a bicycle rental shop** which has the following tags:amenity=bicycle_rental & bicycle_rental=shop - -**a bicycle rental** which has the following tags:amenity=bicycle_rental + - **a bicycle rental shop** which has the following tags:amenity=bicycle_rental & bicycle_rental=shop + - **a bicycle rental** which has the following tags:amenity=bicycle_rental ## Basic tags for this layer @@ -1648,5 +1664,20 @@ _This tagrendering has no question and is thus read-only_ This tagrendering has labels `added_by_default` +## Filters + +| id | question | osmTags | +-----|-----|----- | +| open_now.0 | Open now | _isOpen=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cash.0 | Accepts cash | payment:cash=yes | + +| id | question | osmTags | +-----|-----|----- | +| accepts_cards.0 | Accepts payment cards | payment:cards=yes | + + This document is autogenerated from [assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json) diff --git a/Docs/Themes/velopark.md b/Docs/Themes/velopark.md index e7dbff707e..132a8956c9 100644 --- a/Docs/Themes/velopark.md +++ b/Docs/Themes/velopark.md @@ -221,7 +221,7 @@ _This tagrendering has no question and is thus read-only_ ### nearby_images _This tagrendering has no question and is thus read-only_ -*{nearby_images(open,readonly)}* +*{nearby_images(,readonly)}* ### no_save_needed @@ -279,7 +279,7 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [ref:velopark](https://wiki.openstreetmap.org/wiki/Key:ref:velopark) | [velopark](../SpecialInputElements.md#velopark) | | -| [bicycle_parking](https://wiki.openstreetmap.org/wiki/Key:bicycle_parking) | [string](../SpecialInputElements.md#string) | [stands](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dstands) [wall_loops](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dwall_loops) [handlebar_holder](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dhandlebar_holder) [rack](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Drack) [two_tier](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dtwo_tier) [shed](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dshed) [bollard](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dbollard) [floor](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dfloor) [lockers](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dlockers) | +| [bicycle_parking](https://wiki.openstreetmap.org/wiki/Key:bicycle_parking) | [string](../SpecialInputElements.md#string) | [stands](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dstands) [safe_loops](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dsafe_loops) [wall_loops](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dwall_loops) [handlebar_holder](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dhandlebar_holder) [rack](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Drack) [two_tier](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dtwo_tier) [shed](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dshed) [bollard](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dbollard) [floor](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dfloor) [lockers](https://wiki.openstreetmap.org/wiki/Tag:bicycle_parking%3Dlockers) | | [location](https://wiki.openstreetmap.org/wiki/Key:location) | Multiple choice | [underground](https://wiki.openstreetmap.org/wiki/Tag:location%3Dunderground) [surface](https://wiki.openstreetmap.org/wiki/Tag:location%3Dsurface) [rooftop](https://wiki.openstreetmap.org/wiki/Tag:location%3Drooftop) | | [covered](https://wiki.openstreetmap.org/wiki/Key:covered) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:covered%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:covered%3Dno) | | [capacity](https://wiki.openstreetmap.org/wiki/Key:capacity) | [nat](../SpecialInputElements.md#nat) | | @@ -330,6 +330,7 @@ The question is `What is the type of this bicycle parking?` *This is a bicycle parking of the type: {bicycle_parking}* is shown if `bicycle_parking` is set - *Stands* is shown if with bicycle_parking=stands + - *Rack with side loops* is shown if with bicycle_parking=safe_loops - *Wheelbenders / rack* is shown if with bicycle_parking=wall_loops - *Handlebar holder* is shown if with bicycle_parking=handlebar_holder - *Rack* is shown if with bicycle_parking=rack @@ -472,14 +473,14 @@ This tagrendering is only visible in the popup if the following condition is met ## Filters -| id | question | osmTags | fields | ------|-----|-----|----- | -| last_edited_before.0 | Last edit was before {date} | | date (date) | - | id | question | osmTags | -----|-----|----- | | open_now.0 | Open now | _isOpen=yes | +| id | question | osmTags | fields | +-----|-----|-----|----- | +| last_edited_before.0 | Last edit was before {date} | | date (date) | + This document is autogenerated from [assets/themes/velopark/velopark.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/velopark/velopark.json) diff --git a/Docs/Themes/vending_machine.md b/Docs/Themes/vending_machine.md index 282a0f08ca..6a9723f281 100644 --- a/Docs/Themes/vending_machine.md +++ b/Docs/Themes/vending_machine.md @@ -88,7 +88,7 @@ Elements must match **all** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | -| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | +| [vending](https://wiki.openstreetmap.org/wiki/Key:vending) | [string](../SpecialInputElements.md#string) | [drinks](https://wiki.openstreetmap.org/wiki/Tag:vending%3Ddrinks) [sweets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dsweets) [food](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfood) [cigarettes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcigarettes) [condoms](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcondoms) [coffee](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcoffee) [water](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dwater) [newspapers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dnewspapers) [bicycle_tube](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_tube) [milk](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmilk) [bread](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbread) [eggs](https://wiki.openstreetmap.org/wiki/Tag:vending%3Deggs) [ice_cream](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dice_cream) [cheese](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dcheese) [honey](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dhoney) [potatoes](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpotatoes) [meat](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dmeat) [fruit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dfruit) [strawberries](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dstrawberries) [flowers](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dflowers) [parking_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dparking_tickets) [elongated_coin](https://wiki.openstreetmap.org/wiki/Tag:vending%3Delongated_coin) [public_transport_tickets](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dpublic_transport_tickets) [bicycle_light](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_light) [gloves](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dgloves) [bicycle_repair_kit](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_repair_kit) [bicycle_pump](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_pump) [bicycle_lock](https://wiki.openstreetmap.org/wiki/Tag:vending%3Dbicycle_lock) | | [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | [Continental](https://wiki.openstreetmap.org/wiki/Tag:brand%3DContinental) [Schwalbe](https://wiki.openstreetmap.org/wiki/Tag:brand%3DSchwalbe) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | | [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR) [0.05 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 CHF) [0.10 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 CHF) [0.20 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 CHF) [0.50 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 CHF) [1 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 CHF) [2 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 CHF) [5 CHF](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D5 CHF) | @@ -147,6 +147,7 @@ The question is `What does this vending machine sell?` - *Milk is sold* is shown if with vending=milk - *Bread is sold* is shown if with vending=bread - *Eggs are sold* is shown if with vending=eggs + - *Ice cream is sold* is shown if with vending=ice_cream - *Cheese is sold* is shown if with vending=cheese - *Honey is sold* is shown if with vending=honey - *Potatoes are sold* is shown if with vending=potatoes @@ -342,21 +343,22 @@ This tagrendering has labels | vending.10 | Sale of milk | vending~^(.*milk.*)$ | | vending.11 | Sale of bread | vending~^(.*bread.*)$ | | vending.12 | Sale of eggs | vending~^(.*eggs.*)$ | -| vending.13 | Sale of cheese | vending~^(.*cheese.*)$ | -| vending.14 | Sale of honey | vending~^(.*honey.*)$ | -| vending.15 | Sale of potatoes | vending~^(.*potatoes.*)$ | -| vending.16 | Sale of meat | vending~^(.*meat.*)$ | -| vending.17 | Sale of fruit | vending~^(.*fruit.*)$ | -| vending.18 | Sale of strawberries | vending~^(.*strawberries.*)$ | -| vending.19 | Sale of flowers | vending~^(.*flowers.*)$ | -| vending.20 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | -| vending.21 | Sale of pressed pennies | vending=elongated_coin | -| vending.22 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | -| vending.23 | Sale of bicycle lights | vending=bicycle_light | -| vending.24 | Sale of gloves | vending=gloves | -| vending.25 | Sale of bicycle repair kits | vending=bicycle_repair_kit | -| vending.26 | Sale of bicycle pumps | vending=bicycle_pump | -| vending.27 | Sale of bicycle locks | vending=bicycle_lock | +| vending.13 | Sale of ice cream | vending~^(.*ice_cream.*)$ | +| vending.14 | Sale of cheese | vending~^(.*cheese.*)$ | +| vending.15 | Sale of honey | vending~^(.*honey.*)$ | +| vending.16 | Sale of potatoes | vending~^(.*potatoes.*)$ | +| vending.17 | Sale of meat | vending~^(.*meat.*)$ | +| vending.18 | Sale of fruit | vending~^(.*fruit.*)$ | +| vending.19 | Sale of strawberries | vending~^(.*strawberries.*)$ | +| vending.20 | Sale of flowers | vending~^(.*flowers.*)$ | +| vending.21 | Sale of parking tickets | vending~^(.*parking_tickets.*)$ | +| vending.22 | Sale of pressed pennies | vending=elongated_coin | +| vending.23 | Sale of public transport tickets | vending~^(.*public_transport_tickets.*)$ | +| vending.24 | Sale of bicycle lights | vending=bicycle_light | +| vending.25 | Sale of gloves | vending=gloves | +| vending.26 | Sale of bicycle repair kits | vending=bicycle_repair_kit | +| vending.27 | Sale of bicycle pumps | vending=bicycle_pump | +| vending.28 | Sale of bicycle locks | vending=bicycle_lock | | id | question | osmTags | -----|-----|----- | diff --git a/Docs/Themes/walkingnodes.md b/Docs/Themes/walkingnodes.md index dc8af0ed18..4ea10264a9 100644 --- a/Docs/Themes/walkingnodes.md +++ b/Docs/Themes/walkingnodes.md @@ -113,7 +113,7 @@ No themes use this layer The following options to create new points are included: -**a walking node** which has the following tags:rwn_ref=? & network:type=node_network (snaps to layers `cycleways_and_roads`) + - **a walking node** which has the following tags:rwn_ref=? & network:type=node_network (snaps to layers `cycleways_and_roads`) ## Basic tags for this layer @@ -184,7 +184,7 @@ No themes use this layer The following options to create new points are included: -**a guidepost** which has the following tags:tourism=information & information=guidepost & hiking=yes + - **a guidepost** which has the following tags:tourism=information & information=guidepost & hiking=yes ## Basic tags for this layer diff --git a/Docs/URL_Parameters.md b/Docs/URL_Parameters.md index e70b18ba20..5fec4b0822 100644 --- a/Docs/URL_Parameters.md +++ b/Docs/URL_Parameters.md @@ -105,7 +105,7 @@ The default value is _false_ If true, 'dryrun' mode is activated and a fake user account is loaded -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L40) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L39) The default value is _false_ @@ -113,7 +113,7 @@ The default value is _false_ Disables/Enables logging in and thus disables editing all together. This effectively puts MapComplete into read-only mode. -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L104) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L103) The default value is _true_ @@ -121,7 +121,7 @@ The default value is _true_ Disables/Enables the search bar -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L119) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L118) The default value is _true_ @@ -129,7 +129,7 @@ The default value is _true_ Disables/Enables the background layer control where a user can enable e.g. aerial imagery -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L124) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L123) The default value is _true_ @@ -137,7 +137,7 @@ The default value is _true_ Disables/Enables the filter view where a user can enable/disable MapComplete-layers or filter for certain properties -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L130) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L129) The default value is _true_ @@ -145,7 +145,7 @@ The default value is _true_ Disables/enables the help menu or welcome message -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L136) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L135) The default value is _true_ @@ -153,7 +153,7 @@ The default value is _true_ Disables/enables the button to get in touch with the community -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L141) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L140) The default value is _true_ @@ -161,7 +161,7 @@ The default value is _true_ Disables/Enables the extraLink button. By default, if in iframe mode and the welcome message is hidden, a popout button to the full mapcomplete instance is shown instead (unless disabled with this switch or another extraLink button is enabled) -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L146) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L145) The default value is _true_ @@ -169,7 +169,7 @@ The default value is _true_ Disables/Enables the various links which go back to the index page with the theme overview -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L151) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L150) The default value is _true_ @@ -177,7 +177,7 @@ The default value is _true_ Disables/Enables the 'Share-screen'-tab in the welcome message -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L156) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L155) The default value is _true_ @@ -185,7 +185,7 @@ The default value is _true_ Disables/Enables the geolocation button -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L161) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L160) The default value is _true_ @@ -193,7 +193,7 @@ The default value is _true_ If set to false, all layers will be disabled - except the explicitly enabled layers -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L167) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L166) The default value is _true_ @@ -201,7 +201,7 @@ The default value is _true_ Always show all questions -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L172) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L171) The default value is _false_ @@ -209,7 +209,7 @@ The default value is _false_ Enable the export as GeoJSON and CSV button -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L178) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L177) The default value is _true_ @@ -217,7 +217,7 @@ The default value is _true_ Enable/disable caching from localStorage -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L184) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L183) The default value is _true_ @@ -225,7 +225,7 @@ The default value is _true_ If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L199) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L198) The default value is _false_ @@ -233,7 +233,7 @@ The default value is _false_ If true, shows some extra debugging help such as all the available tags on every object -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L205) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L204) The default value is _false_ @@ -241,7 +241,7 @@ The default value is _false_ If true, the location distance indication will not be written to the changeset and other privacy enhancing measures might be taken. -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L211) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L210) The default value is _false_ @@ -249,15 +249,15 @@ The default value is _false_ Point mapcomplete to a different overpass-instance. Example: https://overpass-api.de/api/interpreter -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L217) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L216) -The default value is _https://overpass-api.de/api/interpreter,https://overpass.kumi.systems/api/interpreter,https://overpass.openstreetmap.ru/cgi/interpreter_ +The default value is _https://overpass-api.de/api/interpreter,https://overpass.private.coffee/api/interpreter,https://overpass.osm.jp/api/interpreter_ ## overpassTimeout Set a different timeout (in seconds) for queries in overpass -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L228) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L227) The default value is _30_ @@ -265,7 +265,7 @@ The default value is _30_ point to switch between OSM-api and overpass -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L236) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L235) The default value is _16_ @@ -273,7 +273,7 @@ The default value is _16_ Tilesize when the OSM-API is used to fetch data within a BBOX -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L244) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L243) The default value is _17_ @@ -323,7 +323,7 @@ One can use the [ID of an ELI-layer](./ELI-overview.md) or use one of the global - carto.dark_matter_no_labels - carto.voyager_no_labels -This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L251) +This documentation is defined in the source code at [FeatureSwitchState.ts](/src/Logic/State/FeatureSwitchState.ts#L250) No default value set @@ -355,7 +355,7 @@ The default value is _0_ Used to complete the login -This documentation is defined in the source code at [ThemeViewState.ts](/src/Models/ThemeViewState.ts#L177) +This documentation is defined in the source code at [ThemeViewState.ts](/src/Models/ThemeViewState.ts#L178) No default value set @@ -371,7 +371,7 @@ The default value is _true_ State of filter kid-books -This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L167) +This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L175) The default value is _false_ @@ -379,7 +379,7 @@ The default value is _false_ State of filter adult-books -This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L167) +This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L175) The default value is _false_ @@ -387,7 +387,7 @@ The default value is _false_ State of filter inside -This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L167) +This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L175) The default value is _0_ @@ -395,7 +395,7 @@ The default value is _0_ State of filter has_image -This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L167) +This documentation is defined in the source code at [FilterConfig.ts](/src/Models/ThemeConfig/FilterConfig.ts#L175) The default value is _0_ @@ -411,7 +411,7 @@ The default value is _true_ The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics' -This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L436) +This documentation is defined in the source code at [generateDocs.ts](ervdvn/git/MapComplete/scripts/generateDocs.ts#L436) The default value is _map_ From f0b9a954c1a88335b222ed03b7e9a23c66ce23b0 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 18:18:53 +0200 Subject: [PATCH 78/84] Chore: translation sync --- assets/layers/advertising/advertising.json | 15 +- assets/layers/aerialway/aerialway.json | 42 ++- assets/layers/artwork/artwork.json | 11 +- .../charging_station/charging_station.json | 290 +++++++++--------- assets/layers/memorial/memorial.json | 6 +- assets/themes/cyclenodes/cyclenodes.json | 2 +- assets/themes/hackerspaces/hackerspaces.json | 2 +- assets/themes/lighthouses/lighthouses.json | 6 +- .../mapcomplete-changes.json | 66 ++-- .../mapcomplete-changes.proto.json | 66 ++-- assets/themes/openlovemap/openlovemap.json | 12 +- langs/cs.json | 2 +- langs/de.json | 2 +- langs/layers/ca.json | 17 + langs/layers/cs.json | 19 +- langs/layers/da.json | 8 + langs/layers/de.json | 17 + langs/layers/en.json | 17 + langs/layers/es.json | 7 + langs/layers/fr.json | 12 +- langs/layers/nl.json | 17 + langs/layers/pt.json | 17 + langs/layers/ru.json | 11 + langs/themes/cs.json | 2 +- package-lock.json | 12 +- 25 files changed, 445 insertions(+), 233 deletions(-) diff --git a/assets/layers/advertising/advertising.json b/assets/layers/advertising/advertising.json index 8e8f28f323..68fc79b3e6 100644 --- a/assets/layers/advertising/advertising.json +++ b/assets/layers/advertising/advertising.json @@ -1118,14 +1118,16 @@ "if": "advertising=tilework", "then": { "en": "This is tilework - the advertisement is painted on tiles", - "de": "Dies ist eine Kachelarbeit - die Werbung ist auf Fliesen gemalt" + "de": "Dies ist eine Kachelarbeit - die Werbung ist auf Fliesen gemalt", + "cs": "Jedná se o dlaždice - reklama je namalovaná na dlaždicích" } }, { "if": "advertising=relief", "then": { "en": "This is a relief", - "de": "Dies ist ein Relief" + "de": "Dies ist ein Relief", + "cs": "Toto je reliéf" } } ] @@ -1647,7 +1649,8 @@ "question": { "en": "Is this sign for a business that no longer exists or no longer being maintained?", "de": "Ist dieses Schild für ein Geschäft, das nicht mehr existiert oder nicht mehr gepflegt wird?", - "es": "¿Es este rótulo de un negocio que ya no existe o que ya no se mantiene?" + "es": "¿Es este rótulo de un negocio que ya no existe o que ya no se mantiene?", + "cs": "Je tato značka určena pro již neexistující nebo neudržovaný podnik?" }, "mappings": [ { @@ -1655,14 +1658,16 @@ "alsoShowIf": "historic=yes", "then": { "en": "This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)", - "de": "Es handelt sich um ein historisches Werbeschild (eine Werbung für ein Unternehmen, das nicht mehr existiert, oder ein sehr altes Schild mit historischem Wert)" + "de": "Es handelt sich um ein historisches Werbeschild (eine Werbung für ein Unternehmen, das nicht mehr existiert, oder ein sehr altes Schild mit historischem Wert)", + "cs": "Jedná se o historický reklamní nápis (reklama na již neexistující podnik nebo velmi starý nápis s památkovou hodnotou)" } }, { "if": "historic=", "then": { "en": "This advertisement sign has no historic value (the business still exists and has no heritage value)", - "de": "Dieses Werbeschild hat keinen historischen Wert (das Unternehmen existiert noch und hat keinen denkmalpflegerischen Wert)" + "de": "Dieses Werbeschild hat keinen historischen Wert (das Unternehmen existiert noch und hat keinen denkmalpflegerischen Wert)", + "cs": "Tento reklamní nápis nemá žádnou historickou hodnotu (podnik stále existuje a nemá žádnou památkovou hodnotu)" } } ] diff --git a/assets/layers/aerialway/aerialway.json b/assets/layers/aerialway/aerialway.json index becb19e847..2f86058a87 100644 --- a/assets/layers/aerialway/aerialway.json +++ b/assets/layers/aerialway/aerialway.json @@ -97,7 +97,8 @@ "if": "aerialway=cable_car", "then": { "en": "This is a cable car where the car goes up and down again on the same cable.", - "de": "Es handelt sich um eine Seilbahn, bei der die Kabine auf demselben Seil nach oben und wieder nach unten fährt." + "de": "Es handelt sich um eine Seilbahn, bei der die Kabine auf demselben Seil nach oben und wieder nach unten fährt.", + "cs": "Jedná se o lanovku, kde vagon jezdí nahoru a dolů po stejném laně." }, "icon": "./assets/layers/aerialway/cable_car.svg" }, @@ -105,7 +106,8 @@ "if": "aerialway=gondola", "then": { "en": "This is a gondola where the cars go around in continuous circles", - "de": "Es handelt sich um eine Seilbahn, bei der die Kabinen in ständigen Kreisen fahren" + "de": "Es handelt sich um eine Seilbahn, bei der die Kabinen in ständigen Kreisen fahren", + "cs": "Jedná se o gondolu, kde vozy jezdí v nepřetržitých kruzích" }, "icon": "./assets/layers/aerialway/gondola_lift.svg" }, @@ -113,7 +115,8 @@ "if": "aerialway=chair_lift", "then": { "en": "An open chairlift with seats to sit on and open to the outside air.", - "de": "Ein offener Sessellift mit Sitzgelegenheiten und Zugang zur Außenluft." + "de": "Ein offener Sessellift mit Sitzgelegenheiten und Zugang zur Außenluft.", + "cs": "Otevřená lanovka se sedačkami k sezení na čerstvém vzduchu." }, "icon": "./assets/layers/aerialway/chair_lift.svg" }, @@ -121,7 +124,8 @@ "if": "aerialway=mixed", "then": { "en": "An aerialway which has both chairs and gondolas in the same continuous track", - "de": "Eine Seilbahn, die sowohl offene Sessel als auch geschlossene Gondeln auf einer durchgehenden Bahn hat" + "de": "Eine Seilbahn, die sowohl offene Sessel als auch geschlossene Gondeln auf einer durchgehenden Bahn hat", + "cs": "Lanová dráha, která má sedačky i gondoly na stejné souvislé dráze" } }, { @@ -129,7 +133,8 @@ "then": { "en": "A drag lift", "de": "Ein Schlepplift", - "pl": "Wyciąg orczykowy" + "pl": "Wyciąg orczykowy", + "cs": "Vlek" }, "hideInAnswer": true }, @@ -137,14 +142,16 @@ "if": "aerialway=t-bar", "then": { "en": "A drag lift with T-shaped carriers for two passengers at a time", - "de": "Ein Schlepplift mit T-förmigen Trägern für jeweils zwei Passagiere" + "de": "Ein Schlepplift mit T-förmigen Trägern für jeweils zwei Passagiere", + "cs": "Vlek s nosiči ve tvaru T pro dva cestující najednou" } }, { "if": "aerialway=j-bar", "then": { "en": "A drag lift with L-shaped bars for a single passenger at a time", - "de": "Ein Schlepplift mit L-förmigen Trägern für jeweils einen Passagier" + "de": "Ein Schlepplift mit L-förmigen Trägern für jeweils einen Passagier", + "cs": "Vlek s tyčemi ve tvaru písmene L pro jednoho cestujícího" } }, { @@ -173,7 +180,8 @@ "then": { "en": "A zip line. (A touristical attraction where adventurous people go down at high speeds) ", "de": "Eine Seilrutsche. (Eine Touristenattraktion, bei der abenteuerlustige Menschen mit hoher Geschwindigkeit hinunterfahren) ", - "pl": "Tyrolka. (Atrakcja turystyczna, która pozwala żądnym przygód zjechać z dużą szybkością) " + "pl": "Tyrolka. (Atrakcja turystyczna, która pozwala żądnym przygód zjechać z dużą szybkością) ", + "cs": "Lano na visuté dráze. (Turistická atrakce, kde se odvážlivci spouštějí vysokou rychlostí) " } } ] @@ -221,12 +229,14 @@ "de": "Wie viele Leute passen in eine Kabine?", "pl": "Ile osób może pomieścić jeden wagon?", "es": "¿Cuál es la capacidad de la cabina?", - "ca": "Quantes persones caben a la cabina?" + "ca": "Quantes persones caben a la cabina?", + "cs": "Kolik osob se vejde do jednoho vozu?" }, "render": { "en": "{aerialway:occupancy} people fit a single carriage", "de": "{aerialway:occupancy} Leute passen in eine Kabine", - "pl": "{aerialway:occupancy} osób mieści się w jednym wagonie" + "pl": "{aerialway:occupancy} osób mieści się w jednym wagonie", + "cs": "{aerialway:occupancy} osob se vejde do jednoho vozu" } }, "opening_hours", @@ -234,7 +244,8 @@ "id": "oneway", "question": { "en": "In what direction can this aerialway be taken?", - "de": "In welche Richtung kann diese Seilbahn genutzt werden?" + "de": "In welche Richtung kann diese Seilbahn genutzt werden?", + "cs": "Jakým směrem tato dráha může vést?" }, "mappings": [ { @@ -242,14 +253,16 @@ "alsoShowIf": "oneway=", "then": { "en": "This aerialway can only be taken to the top", - "de": "Diese Seilbahn kann nur nach oben gefahren werden" + "de": "Diese Seilbahn kann nur nach oben gefahren werden", + "cs": "Touto lanovkou lze vyjet pouze na vrchol" } }, { "if": "oneway=no", "then": { "en": "This aerialway can be taken in both directions", - "de": "Diese Seilbahn kann in beide Richtungen befahren werden" + "de": "Diese Seilbahn kann in beide Richtungen befahren werden", + "cs": "Tuto dráhu lze využít v obou směrech" } } ] @@ -259,7 +272,8 @@ "render": { "en": "This aerialway is {_length:km} kilometer long", "de": "Die Seilbahn hat eine Länge von {_length:km} km", - "fr": "Cette voie aérienne fait {_length:km} kilomètre de long" + "fr": "Cette voie aérienne fait {_length:km} kilomètre de long", + "cs": "Tato dráha je dlouhá {_length:km} kilometr" } } ], diff --git a/assets/layers/artwork/artwork.json b/assets/layers/artwork/artwork.json index 45e8ac0494..474c13d3c5 100644 --- a/assets/layers/artwork/artwork.json +++ b/assets/layers/artwork/artwork.json @@ -216,7 +216,7 @@ "question": { "en": "What is the type of this artwork?", "nl": "Wat voor soort kunstwerk is dit?", - "fr": "Quel est le type de cette œuvre d'art ?", + "fr": "Quel est le type de cette œuvre d'art ?", "de": "Um welche Art Kunstwerk handelt es sich?", "it": "Che tipo di opera d’arte è questo?", "ru": "К какому типу относится эта работа?", @@ -793,7 +793,8 @@ "id": "doubles_as_memorial", "question": { "en": "Does this artwork serve as a memorial?", - "de": "Dient dieses Kunstwerk als Mahnmal?" + "de": "Dient dieses Kunstwerk als Mahnmal?", + "fr": "Cet œuvre a-t-elle un rôle de mémorial ?" }, "mappings": [ { @@ -801,7 +802,8 @@ "then": { "en": "This artwork also serves as a memorial", "de": "Dieses Kunstwerk dient auch als Mahnmal", - "ca": "Aquesta obra d'art també serveix com a memorial" + "ca": "Aquesta obra d'art també serveix com a memorial", + "fr": "Cette œuvre est un mémorial" } }, { @@ -809,7 +811,8 @@ "alsoShowIf": "historic!=memorial", "then": { "en": "This artwork does not serve as a bench", - "de": "Dieses Kunstwerk dient nicht als Sitzbank" + "de": "Dieses Kunstwerk dient nicht als Sitzbank", + "fr": "Cette œuvre ne sert pas de banc" } } ] diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json index 905db37434..5ed693edf7 100644 --- a/assets/layers/charging_station/charging_station.json +++ b/assets/layers/charging_station/charging_station.json @@ -3,16 +3,10 @@ "name": { "en": "Charging stations", "nl": "Oplaadpunten", - "de": "Ladestationen", - "ca": "Estacions de càrrega" - }, - "description": { - "en": "A charging station", - "nl": "Oplaadpunten", - "ca": "Una estació de càrrega", - "de": "Eine Ladestation", - "fr": "Une station de recharge" + "ca": "Estacions de càrrega", + "de": "Ladestationen" }, + "minzoom": 10, "source": { "osmTags": { "and": [ @@ -27,7 +21,6 @@ ] } }, - "minzoom": 10, "title": { "render": { "en": "Charging station", @@ -73,110 +66,14 @@ } ] }, - "pointRendering": [ - { - "location": [ - "point", - "centroid" - ], - "marker": [ - { - "icon": "pin", - "color": "#fff" - }, - { - "icon": { - "render": "./assets/themes/charging_stations/plug.svg", - "mappings": [ - { - "if": "bicycle=yes", - "then": "./assets/themes/charging_stations/bicycle.svg" - }, - { - "if": { - "or": [ - "car=yes", - "motorcar=yes" - ] - }, - "then": "./assets/themes/charging_stations/car.svg" - } - ] - } - } - ], - "iconBadges": [ - { - "if": { - "or": [ - "disused:amenity=charging_station", - "operational_status=broken" - ] - }, - "then": "close:#c22;" - }, - { - "if": { - "or": [ - "proposed:amenity=charging_station", - "planned:amenity=charging_station" - ] - }, - "then": "./assets/layers/charging_station/under_construction.svg" - }, - { - "if": { - "and": [ - "bicycle=yes", - { - "or": [ - "motorcar=yes", - "car=yes" - ] - } - ] - }, - "then": "circle:#fff;./assets/themes/charging_stations/car.svg" - } - ], - "anchor": "bottom", - "iconSize": "50,50" - } - ], - "lineRendering": [ - { - "color": "black", - "width": 2, - "fillColor": "#80808080" - } - ], - "presets": [ - { - "tags": [ - "amenity=charging_station", - "motorcar=no", - "bicycle=yes" - ], - "title": { - "en": "charging station for electrical bikes", - "nl": "oplaadpunt voor elektrische fietsen", - "de": "Ladestation für Elektrofahrräder" - } - }, - { - "tags": [ - "amenity=charging_station", - "motorcar=yes", - "bicycle=no" - ], - "title": { - "en": "charging station for cars", - "nl": "oplaadstation voor elektrische auto's", - "de": "Ladestation für Autos", - "ca": "estació de càrrega per a cotxes" - } - } - ], + "description": { + "en": "A charging station", + "nl": "Oplaadpunten", + "ca": "Una estació de càrrega", + "de": "Eine Ladestation", + "fr": "Une station de recharge" + }, + "#": "no-question-hint-check", "tagRenderings": [ "images", { @@ -2397,9 +2294,9 @@ "then": { "en": "Authentication by a membership card", "nl": "Aanmelden met een lidkaart is mogelijk", + "ca": "Autenticació mitjançant una targeta de soci", "de": "Authentifizierung durch eine Mitgliedskarte", - "fr": "Authentification par carte de membre", - "ca": "Autenticació mitjançant una targeta de soci" + "fr": "Authentification par carte de membre" } }, { @@ -2408,9 +2305,9 @@ "then": { "en": "Authentication by an app", "nl": "Aanmelden via een applicatie is mogelijk", + "ca": "Autenticació mitjançant una aplicació", "de": "Authentifizierung per App", - "fr": "Authentification par une application", - "ca": "Autenticació mitjançant una aplicació" + "fr": "Authentification par une application" } }, { @@ -2486,14 +2383,14 @@ "render": { "en": "Authenticate by calling or SMS'ing to {authentication:phone_call:number}", "nl": "Aanmelden door te bellen of te SMS'en naar {authentication:phone_call:number}", - "de": "Authentifiziere dich, indem du anrufst oder eine SMS sendest an {authentication:phone_call:number}", - "ca": "Autentiqueu-vos trucant o enviant SMS a {authentication:phone_call:number}" + "ca": "Autentiqueu-vos trucant o enviant SMS a {authentication:phone_call:number}", + "de": "Authentifiziere dich, indem du anrufst oder eine SMS sendest an {authentication:phone_call:number}" }, "question": { "en": "What's the phone number for authentication call or SMS?", "nl": "Wat is het telefoonnummer dat men moet bellen of SMS'en om zich aan te melden?", - "de": "Wie lautet die Telefonnummer für den Authentifizierungsanruf oder die SMS?", - "ca": "Quin és el número de telèfon per a la trucada d'autenticació o SMS?" + "ca": "Quin és el número de telèfon per a la trucada d'autenticació o SMS?", + "de": "Wie lautet die Telefonnummer für den Authentifizierungsanruf oder die SMS?" }, "freeform": { "key": "authentication:phone_call:number", @@ -2886,6 +2783,110 @@ } } ], + "lineRendering": [ + { + "color": "black", + "width": 2, + "fillColor": "#80808080" + } + ], + "pointRendering": [ + { + "location": [ + "point", + "centroid" + ], + "marker": [ + { + "icon": "pin", + "color": "#fff" + }, + { + "icon": { + "render": "./assets/themes/charging_stations/plug.svg", + "mappings": [ + { + "if": "bicycle=yes", + "then": "./assets/themes/charging_stations/bicycle.svg" + }, + { + "if": { + "or": [ + "car=yes", + "motorcar=yes" + ] + }, + "then": "./assets/themes/charging_stations/car.svg" + } + ] + } + } + ], + "iconBadges": [ + { + "if": { + "or": [ + "disused:amenity=charging_station", + "operational_status=broken" + ] + }, + "then": "close:#c22;" + }, + { + "if": { + "or": [ + "proposed:amenity=charging_station", + "planned:amenity=charging_station" + ] + }, + "then": "./assets/layers/charging_station/under_construction.svg" + }, + { + "if": { + "and": [ + "bicycle=yes", + { + "or": [ + "motorcar=yes", + "car=yes" + ] + } + ] + }, + "then": "circle:#fff;./assets/themes/charging_stations/car.svg" + } + ], + "anchor": "bottom", + "iconSize": "50,50" + } + ], + "presets": [ + { + "tags": [ + "amenity=charging_station", + "motorcar=no", + "bicycle=yes" + ], + "title": { + "en": "charging station for electrical bikes", + "nl": "oplaadpunt voor elektrische fietsen", + "de": "Ladestation für Elektrofahrräder" + } + }, + { + "tags": [ + "amenity=charging_station", + "motorcar=yes", + "bicycle=no" + ], + "title": { + "en": "charging station for cars", + "nl": "oplaadstation voor elektrische auto's", + "ca": "estació de càrrega per a cotxes", + "de": "Ladestation für Autos" + } + } + ], "filter": [ { "id": "vehicle-type", @@ -2915,10 +2916,10 @@ "question": { "en": "Charging station for cars", "nl": "Oplaadpunten voor auto's", + "ca": "Estació de càrrega per a cotxes", "de": "Ladestationen für Autos", "fr": "Station de recharge pour voitures", - "it": "Stazione di ricarica per auto", - "ca": "Estació de càrrega per a cotxes" + "it": "Stazione di ricarica per auto" }, "osmTags": { "or": [ @@ -2936,10 +2937,10 @@ "question": { "en": "Only working charging stations", "nl": "Enkel werkende oplaadpunten", + "ca": "Només estacions de recàrrega en funcionament", "de": "Nur Ladestationen in Betrieb", "fr": "Seulement les stations de recharge qui fonctionnent", - "it": "Solo stazioni di ricarica funzionanti", - "ca": "Només estacions de recàrrega en funcionament" + "it": "Solo stazioni di ricarica funzionanti" }, "osmTags": { "and": [ @@ -2957,9 +2958,9 @@ "question": { "en": "All connectors", "nl": "Alle types", + "ca": "Tots els connectors", "de": "Alle Anschlüsse", - "it": "Tutti i connettori", - "ca": "Tots els connectors" + "it": "Tutti i connettori" } }, { @@ -3041,8 +3042,8 @@ "question": { "en": "Has a
Type 2 with cable (mennekes)
connector", "nl": "Heeft een
Type 2 met kabel (J1772)
", - "de": "Hat einen
Typ 2 (Mennekes)
Anschluss mit Kabel", - "ca": "Té un connector
Tipus 2 amb cable (mennekes)
" + "ca": "Té un connector
Tipus 2 amb cable (mennekes)
", + "de": "Hat einen
Typ 2 (Mennekes)
Anschluss mit Kabel" }, "osmTags": "socket:type2_cable~*" }, @@ -3137,19 +3138,6 @@ ] } ], - "deletion": { - "softDeletionTags": { - "and": [ - "amenity=", - "disused:amenity=charging_station" - ] - }, - "neededChangesets": 10 - }, - "allowMove": { - "enableRelocation": false, - "enableImproveAccuracy": true - }, "units": [ { "maxstay": { @@ -3344,5 +3332,17 @@ } } ], - "#": "no-question-hint-check" -} + "allowMove": { + "enableRelocation": false, + "enableImproveAccuracy": true + }, + "deletion": { + "softDeletionTags": { + "and": [ + "amenity=", + "disused:amenity=charging_station" + ] + }, + "neededChangesets": 10 + } +} \ No newline at end of file diff --git a/assets/layers/memorial/memorial.json b/assets/layers/memorial/memorial.json index af665f12fe..96ad225bbe 100644 --- a/assets/layers/memorial/memorial.json +++ b/assets/layers/memorial/memorial.json @@ -82,7 +82,8 @@ }, "description": { "en": "A memorial is a physical object which remembers a person or event.", - "de": "Ein Mahnmal ist ein physischer Gegenstand, der an eine Person oder ein Ereignis erinnert." + "de": "Ein Mahnmal ist ein physischer Gegenstand, der an eine Person oder ein Ereignis erinnert.", + "fr": "Un mémorial est un élément physique disposé en mémoire d'une personne ou d'un évènement." }, "tags": [ "historic=memorial" @@ -251,7 +252,8 @@ "then": { "en": "This is a gravestone; the person is buried here", "de": "Dies ist ein Grabstein; die Person ist hier begraben", - "sl": "To je nagrobni kamen; oseba je pokopana tu" + "sl": "To je nagrobni kamen; oseba je pokopana tu", + "fr": "C'est une pierre tombale, une personne est enterrée ici" }, "addExtraTags": [ "memorial=" diff --git a/assets/themes/cyclenodes/cyclenodes.json b/assets/themes/cyclenodes/cyclenodes.json index 24ad76414d..65e3c022e6 100644 --- a/assets/themes/cyclenodes/cyclenodes.json +++ b/assets/themes/cyclenodes/cyclenodes.json @@ -40,7 +40,7 @@ "nl": "Verbindingen van node naar node", "fr": "liens noeud à noeud", "ca": "Enllaços node a node", - "cs": "propojení mezi uzly", + "cs": "Propojení mezi uzly", "pl": "łącza węzeł do węzła" }, "source": { diff --git a/assets/themes/hackerspaces/hackerspaces.json b/assets/themes/hackerspaces/hackerspaces.json index 9fec54d980..8cab4d8045 100644 --- a/assets/themes/hackerspaces/hackerspaces.json +++ b/assets/themes/hackerspaces/hackerspaces.json @@ -12,7 +12,7 @@ "da": "Hackerspaces", "ca": "Espai per a hackers", "pa_PK": "ہیکر دے تھاں", - "cs": "Hackerspaces", + "cs": "Hackerspaces a tvůrčí prostory", "es": "Hackerspaces y makerspaces", "eu": "Hackerspace", "pl": "Hackerspace'y" diff --git a/assets/themes/lighthouses/lighthouses.json b/assets/themes/lighthouses/lighthouses.json index c8316364b1..c452702a70 100644 --- a/assets/themes/lighthouses/lighthouses.json +++ b/assets/themes/lighthouses/lighthouses.json @@ -6,13 +6,15 @@ "da": "Fyrtårne", "it": "Fari", "es": "Faros", - "ca": "Fars" + "ca": "Fars", + "cs": "Majáky" }, "description": { "en": "Lighthouses are tall buildings with a light on top to guide marine traffic.", "de": "Leuchttürme sind hohe Gebäude mit einem Licht an der Spitze, das den Schiffsverkehr leitet.", "it": "I fari sono edifici alti con una luce in cima per guidare il traffico marittimo.", - "es": "Los faros son edificios altos con una luz en la parte superior para guiar el tráfico marítimo." + "es": "Los faros son edificios altos con una luz en la parte superior para guiar el tráfico marítimo.", + "cs": "Majáky jsou vysoké budovy se světlem na vrcholu, které slouží k vedení námořní dopravy." }, "icon": "./assets/themes/lighthouses/lighthouse.svg", "startLat": 51.33884, diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index 67501aaefb..4955ed17dc 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -12,7 +12,8 @@ "en": "This maps shows all the changes made with MapComplete", "de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen", "es": "Este mapa muestra todos los cambios realizados con MapComplete", - "pl": "Ta mapa pokazuje wszystkie zmiany wprowadzone za pomocą MapComplete" + "pl": "Ta mapa pokazuje wszystkie zmiany wprowadzone za pomocą MapComplete", + "cs": "Tyto mapy zobrazují všechny změny provedené pomocí MapComplete" }, "icon": "./assets/svg/logo.svg", "hideFromOverview": true, @@ -41,35 +42,40 @@ "description": { "en": "Shows all MapComplete changes", "de": "Zeigt alle MapComplete-Änderungen", - "es": "Muestra todos los cambios de MapComplete" + "es": "Muestra todos los cambios de MapComplete", + "cs": "Zobrazí všechny změny MapComplete" }, "tagRenderings": [ { "id": "show_changeset_id", "render": { "en": "Changeset {id}", - "de": "Änderungssatz {id}" + "de": "Änderungssatz {id}", + "cs": "Sada změn {id}" } }, { "id": "contributor", "question": { "en": "What contributor did make this change?", - "de": "Wer hat zu dieser Änderung beigetragen?" + "de": "Wer hat zu dieser Änderung beigetragen?", + "cs": "Který přispěvatel provedl tuto změnu?" }, "freeform": { "key": "user" }, "render": { "en": "Change made by {user}", - "de": "Änderung vorgenommen von {user}" + "de": "Änderung vorgenommen von {user}", + "cs": "Změna provedena uživatelem {user}" } }, { "id": "theme-id", "question": { "en": "What theme was used to make this change?", - "de": "Welches Thema wurde für diese Änderung verwendet?" + "de": "Welches Thema wurde für diese Änderung verwendet?", + "cs": "Jaký motiv byl použit k provedení této změny?" }, "freeform": { "key": "theme" @@ -86,22 +92,26 @@ }, "question": { "en": "What locale (language) was this change made in?", - "de": "In welcher Sprache (Locale) wurde diese Änderung vorgenommen?" + "de": "In welcher Sprache (Locale) wurde diese Änderung vorgenommen?", + "cs": "V jakém prostředí (jazyce) byla tato změna provedena?" }, "render": { "en": "User locale is {locale}", - "de": "Die Benutzersprache ist {locale}" + "de": "Die Benutzersprache ist {locale}", + "cs": "Uživatelské prostředí je {locale}" } }, { "id": "host", "render": { "en": "Change with with {host}", - "de": "Änderung mit {host}" + "de": "Änderung mit {host}", + "cs": "Změnit pomocí {host}" }, "question": { "en": "What host (website) was this change made with?", - "de": "Bei welchem Host (Website) wurde diese Änderung vorgenommen?" + "de": "Bei welchem Host (Website) wurde diese Änderung vorgenommen?", + "cs": "U jakého hostitele (webové stránky) byla tato změna provedena?" }, "freeform": { "key": "host" @@ -123,7 +133,8 @@ "id": "version", "question": { "en": "What version of MapComplete was used to make this change?", - "de": "Welche Version von MapComplete wurde verwendet, um diese Änderung vorzunehmen?" + "de": "Welche Version von MapComplete wurde verwendet, um diese Änderung vorzunehmen?", + "cs": "Jaká verze aplikace MapComplete byla použita k provedení této změny?" }, "render": { "en": "Made with {editor}", @@ -528,7 +539,8 @@ "en": "Themename contains {search}", "de": "Themenname enthält {search}", "es": "El nombre contiene {search}", - "pl": "Nazwa tematu zawiera {search}" + "pl": "Nazwa tematu zawiera {search}", + "cs": "Název obsahuje {search}" } } ] @@ -546,7 +558,8 @@ "question": { "en": "Themename does not contain {search}", "de": "Themename enthält nicht {search}", - "es": "El nombre del tema no contiene {search}" + "es": "El nombre del tema no contiene {search}", + "cs": "Název motivu neobsahuje {search}" } } ] @@ -564,7 +577,8 @@ "question": { "en": "Made by contributor {search}", "de": "Erstellt von Mitwirkendem {search}", - "es": "Hecho por el colaborador {search}" + "es": "Hecho por el colaborador {search}", + "cs": "Vytvořeno přispěvatelem {search}" } } ] @@ -582,7 +596,8 @@ "question": { "en": "Not made by contributor {search}", "de": "Nicht erstellt von Mitwirkendem {search}", - "es": "No realizado por el colaborador {search}" + "es": "No realizado por el colaborador {search}", + "cs": "Nevytvořeno přispěvatelem {search}" } } ] @@ -601,7 +616,8 @@ "question": { "en": "Made before {search}", "de": "Erstellt vor {search}", - "es": "Realizado antes de {search}" + "es": "Realizado antes de {search}", + "cs": "Vytvořeno před {search}" } } ] @@ -620,7 +636,8 @@ "question": { "en": "Made after {search}", "de": "Erstellt nach {search}", - "es": "Realizado después de {search}" + "es": "Realizado después de {search}", + "cs": "Vytvořeno po {search}" } } ] @@ -638,7 +655,8 @@ "question": { "en": "User language (iso-code) {search}", "de": "Benutzersprache (ISO-Code) {search}", - "es": "Idioma del usuario (código iso) {search}" + "es": "Idioma del usuario (código iso) {search}", + "cs": "Jazyk uživatele (iso-kód) {search}" } } ] @@ -655,7 +673,8 @@ ], "question": { "en": "Made with host {search}", - "de": "Erstellt mit Host {search}" + "de": "Erstellt mit Host {search}", + "cs": "Vytvořeno pomocí hostitele {search}" } } ] @@ -667,7 +686,8 @@ "osmTags": "add-image>0", "question": { "en": "Changeset added at least one image", - "de": "Changeset hat mindestens ein Bild hinzugefügt" + "de": "Changeset hat mindestens ein Bild hinzugefügt", + "cs": "Sada změn přidala alespoň jeden obrázek" } } ] @@ -679,7 +699,8 @@ "osmTags": "theme!=grb", "question": { "en": "Exclude GRB theme", - "de": "GRB-Thema ausschließen" + "de": "GRB-Thema ausschließen", + "cs": "Vyloučit motiv GRB" } } ] @@ -692,7 +713,8 @@ "question": { "en": "Exclude etymology theme", "de": "Etymologie-Thema ausschließen", - "es": "Excluir el tema de la etimología" + "es": "Excluir el tema de la etimología", + "cs": "Vyloučit etymologii tématu" } } ] diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json index cde6afad78..a3075df92c 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json @@ -12,7 +12,8 @@ "en": "This maps shows all the changes made with MapComplete", "de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen", "es": "Este mapa muestra todos los cambios realizados con MapComplete", - "pl": "Ta mapa pokazuje wszystkie zmiany wprowadzone za pomocą MapComplete" + "pl": "Ta mapa pokazuje wszystkie zmiany wprowadzone za pomocą MapComplete", + "cs": "Tyto mapy zobrazují všechny změny provedené pomocí MapComplete" }, "icon": "./assets/svg/logo.svg", "hideFromOverview": true, @@ -41,35 +42,40 @@ "description": { "en": "Shows all MapComplete changes", "de": "Zeigt alle MapComplete-Änderungen", - "es": "Muestra todos los cambios de MapComplete" + "es": "Muestra todos los cambios de MapComplete", + "cs": "Zobrazí všechny změny MapComplete" }, "tagRenderings": [ { "id": "show_changeset_id", "render": { "en": "Changeset {id}", - "de": "Änderungssatz {id}" + "de": "Änderungssatz {id}", + "cs": "Sada změn {id}" } }, { "id": "contributor", "question": { "en": "What contributor did make this change?", - "de": "Wer hat zu dieser Änderung beigetragen?" + "de": "Wer hat zu dieser Änderung beigetragen?", + "cs": "Který přispěvatel provedl tuto změnu?" }, "freeform": { "key": "user" }, "render": { "en": "Change made by {user}", - "de": "Änderung vorgenommen von {user}" + "de": "Änderung vorgenommen von {user}", + "cs": "Změna provedena uživatelem {user}" } }, { "id": "theme-id", "question": { "en": "What theme was used to make this change?", - "de": "Welches Thema wurde für diese Änderung verwendet?" + "de": "Welches Thema wurde für diese Änderung verwendet?", + "cs": "Jaký motiv byl použit k provedení této změny?" }, "freeform": { "key": "theme" @@ -86,22 +92,26 @@ }, "question": { "en": "What locale (language) was this change made in?", - "de": "In welcher Sprache (Locale) wurde diese Änderung vorgenommen?" + "de": "In welcher Sprache (Locale) wurde diese Änderung vorgenommen?", + "cs": "V jakém prostředí (jazyce) byla tato změna provedena?" }, "render": { "en": "User locale is {locale}", - "de": "Die Benutzersprache ist {locale}" + "de": "Die Benutzersprache ist {locale}", + "cs": "Uživatelské prostředí je {locale}" } }, { "id": "host", "render": { "en": "Change with with {host}", - "de": "Änderung mit {host}" + "de": "Änderung mit {host}", + "cs": "Změnit pomocí {host}" }, "question": { "en": "What host (website) was this change made with?", - "de": "Bei welchem Host (Website) wurde diese Änderung vorgenommen?" + "de": "Bei welchem Host (Website) wurde diese Änderung vorgenommen?", + "cs": "U jakého hostitele (webové stránky) byla tato změna provedena?" }, "freeform": { "key": "host" @@ -123,7 +133,8 @@ "id": "version", "question": { "en": "What version of MapComplete was used to make this change?", - "de": "Welche Version von MapComplete wurde verwendet, um diese Änderung vorzunehmen?" + "de": "Welche Version von MapComplete wurde verwendet, um diese Änderung vorzunehmen?", + "cs": "Jaká verze aplikace MapComplete byla použita k provedení této změny?" }, "render": { "en": "Made with {editor}", @@ -166,7 +177,8 @@ "en": "Themename contains {search}", "de": "Themenname enthält {search}", "es": "El nombre contiene {search}", - "pl": "Nazwa tematu zawiera {search}" + "pl": "Nazwa tematu zawiera {search}", + "cs": "Název obsahuje {search}" } } ] @@ -184,7 +196,8 @@ "question": { "en": "Themename does not contain {search}", "de": "Themename enthält nicht {search}", - "es": "El nombre del tema no contiene {search}" + "es": "El nombre del tema no contiene {search}", + "cs": "Název motivu neobsahuje {search}" } } ] @@ -202,7 +215,8 @@ "question": { "en": "Made by contributor {search}", "de": "Erstellt von Mitwirkendem {search}", - "es": "Hecho por el colaborador {search}" + "es": "Hecho por el colaborador {search}", + "cs": "Vytvořeno přispěvatelem {search}" } } ] @@ -220,7 +234,8 @@ "question": { "en": "Not made by contributor {search}", "de": "Nicht erstellt von Mitwirkendem {search}", - "es": "No realizado por el colaborador {search}" + "es": "No realizado por el colaborador {search}", + "cs": "Nevytvořeno přispěvatelem {search}" } } ] @@ -239,7 +254,8 @@ "question": { "en": "Made before {search}", "de": "Erstellt vor {search}", - "es": "Realizado antes de {search}" + "es": "Realizado antes de {search}", + "cs": "Vytvořeno před {search}" } } ] @@ -258,7 +274,8 @@ "question": { "en": "Made after {search}", "de": "Erstellt nach {search}", - "es": "Realizado después de {search}" + "es": "Realizado después de {search}", + "cs": "Vytvořeno po {search}" } } ] @@ -276,7 +293,8 @@ "question": { "en": "User language (iso-code) {search}", "de": "Benutzersprache (ISO-Code) {search}", - "es": "Idioma del usuario (código iso) {search}" + "es": "Idioma del usuario (código iso) {search}", + "cs": "Jazyk uživatele (iso-kód) {search}" } } ] @@ -293,7 +311,8 @@ ], "question": { "en": "Made with host {search}", - "de": "Erstellt mit Host {search}" + "de": "Erstellt mit Host {search}", + "cs": "Vytvořeno pomocí hostitele {search}" } } ] @@ -305,7 +324,8 @@ "osmTags": "add-image>0", "question": { "en": "Changeset added at least one image", - "de": "Changeset hat mindestens ein Bild hinzugefügt" + "de": "Changeset hat mindestens ein Bild hinzugefügt", + "cs": "Sada změn přidala alespoň jeden obrázek" } } ] @@ -317,7 +337,8 @@ "osmTags": "theme!=grb", "question": { "en": "Exclude GRB theme", - "de": "GRB-Thema ausschließen" + "de": "GRB-Thema ausschließen", + "cs": "Vyloučit motiv GRB" } } ] @@ -330,7 +351,8 @@ "question": { "en": "Exclude etymology theme", "de": "Etymologie-Thema ausschließen", - "es": "Excluir el tema de la etimología" + "es": "Excluir el tema de la etimología", + "cs": "Vyloučit etymologii tématu" } } ] diff --git a/assets/themes/openlovemap/openlovemap.json b/assets/themes/openlovemap/openlovemap.json index e84eefafec..327807d784 100644 --- a/assets/themes/openlovemap/openlovemap.json +++ b/assets/themes/openlovemap/openlovemap.json @@ -71,7 +71,8 @@ "then": { "en": "This shop offers specialized BDSM-gear, such as spreader bars, supplies for needle play, medical bondage supplies, impact tools, shackles, metal colors, cuffs, nipple clamps, shibari accessories, ...", "de": "Dieser Laden bietet spezialisiertes BDSM-Zubehör an, wie zum Beispiel Spreizstangen, Utensilien für Nadelfolter, medizinische Bondage-Ausrüstung, Schlagwerkzeuge, Fesseln, Metallhalsbänder, Handschellen, Nippelklemmen, Shibari-Zubehör, ...", - "es": "Esta tienda ofrece artículos especializados en BDSM, como barras separadoras, artículos para juegos con agujas, artículos de bondage médico, herramientas de impacto, grilletes, colores metálicos, esposas, pinzas para pezones, accesorios de shibari, ..." + "es": "Esta tienda ofrece artículos especializados en BDSM, como barras separadoras, artículos para juegos con agujas, artículos de bondage médico, herramientas de impacto, grilletes, colores metálicos, esposas, pinzas para pezones, accesorios de shibari, ...", + "cs": "Tento obchod nabízí specializované BDSM pomůcky, jako jsou roztahovací tyče, potřeby pro hru na jehlách, potřeby pro lékařskou bondáž, nárazové nástroje, pouta, kovové barvy, pouta, svorky na bradavky, shibari doplňky, ..." } }, { @@ -80,7 +81,8 @@ "then": { "en": "This shop offers pet play accessories, such as puppy masks, animal masks, pony play, tails, hoof shoes, ...", "de": "Dieser Laden bietet Petplay-Zubehör an, wie zum Beispiel Hundemasken, Tiermasken, Ponyplay-Ausrüstung, Schwänze, Hufschuhe, ...", - "es": "Esta tienda ofrece accesorios para mascotas, como máscaras de cachorros, máscaras de animales, juegos de ponis, colas, herraduras..." + "es": "Esta tienda ofrece accesorios para mascotas, como máscaras de cachorros, máscaras de animales, juegos de ponis, colas, herraduras...", + "cs": "Tento obchod nabízí doplňky na hraní si na zvířata, jako jsou masky štěňat, masky zvířat, poníci na hraní, ocasy, boty na kopyta, ..." } }, { @@ -89,7 +91,8 @@ "then": { "en": "This shop offers leather gear, including pants and shirts usable in daily life up till leather harnesses", "de": "Dieser Laden bietet Lederkleidung an, darunter Hosen und Hemden für den Alltag bis hin zu Lederharnissen", - "es": "Esta tienda ofrece ropa de cuero, desde pantalones y camisas de uso diario hasta arneses de cuero" + "es": "Esta tienda ofrece ropa de cuero, desde pantalones y camisas de uso diario hasta arneses de cuero", + "cs": "Tento obchod nabízí kožené vybavení, včetně kalhot a košil použitelných v každodenním životě až po kožené postroje" } }, { @@ -98,7 +101,8 @@ "then": { "en": "This shop offers uniforms for roleplay, such nurse uniforms, military uniforms, police, school girl, french maid, ...", "de": "Dieser Laden bietet Uniformen für Rollenspiele an, wie Krankenschwester-Uniformen, Militäruniformen, Polizei-, Schulmädchen- und Dienstmädchen-Outfits, ...", - "es": "Esta tienda ofrece uniformes para juegos de rol, tales como uniformes de enfermera, uniformes militares, policía, colegiala, criada francesa, ..." + "es": "Esta tienda ofrece uniformes para juegos de rol, tales como uniformes de enfermera, uniformes militares, policía, colegiala, criada francesa, ...", + "cs": "Tento obchod nabízí uniformy pro roleplay, jako jsou uniformy zdravotní sestry, vojenské uniformy, policie, školačky, francouzské pokojské, ..." } } ] diff --git a/langs/cs.json b/langs/cs.json index 7456c1fdcd..926b9e4bfd 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -890,4 +890,4 @@ "startsWithQ": "Identifikátor wikidat začíná písmenem Q a následuje za ním číslo" } } -} +} \ No newline at end of file diff --git a/langs/de.json b/langs/de.json index 1295b6add9..f1d35b8ed5 100644 --- a/langs/de.json +++ b/langs/de.json @@ -874,4 +874,4 @@ "startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt" } } -} +} \ No newline at end of file diff --git a/langs/layers/ca.json b/langs/layers/ca.json index 58d6b44a3e..1212ae08a9 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -8957,6 +8957,23 @@ } } }, + "picture-license": { + "mappings": { + "0": { + "then": "Les imatges que feu tindran llicència CC0 i s'afegiran al domini públic. Això vol dir que tothom pot utilitzar les vostres imatges per a qualsevol propòsit. Aquesta és l'opció predeterminada. " + }, + "1": { + "then": "Les imatges que feu tindran llicència CC0 i s'afegiran al domini públic. Això vol dir que tothom pot utilitzar les vostres imatges per a qualsevol propòsit." + }, + "2": { + "then": "Les fotografies que facis es publicaran sota CC-BY 4.0 que requereix que qualsevol que utilitzi la vostra imatge us ha de donar crèdits" + }, + "3": { + "then": "Les imatges que feu tindran una llicència amb CC-BY-SA 4.0 el que significa que tothom que utilitzi la vostra imatge us ha d'atribuir i que els derivats de la vostra imatge s'han de tornar a compartir amb la mateixa llicència." + } + }, + "question": "Sota quina llicència vols publicar les teves fotos?" + }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/cs.json b/langs/layers/cs.json index c62c3d1e93..cc08bcf670 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -9044,6 +9044,23 @@ } } }, + "picture-license": { + "mappings": { + "0": { + "then": "Pořízené fotografie budou licencovány pod CC0 a přidány do veřejné domény. To znamená, že kdokoli může vaše snímky použít k jakémukoli účelu. Toto je výchozí volba." + }, + "1": { + "then": "Pořízené fotografie budou licencovány pod CC0 a přidány do veřejné domény. To znamená, že kdokoli může vaše snímky použít k jakémukoli účelu." + }, + "2": { + "then": "Pořízené fotografie budou licencovány pod CC-BY 4.0, což vyžaduje, aby vás uvedl každý, kdo použije vaší fotku" + }, + "3": { + "then": "Pořízené fotografie budou licencovány pod CC-BY-SA 4.0, což vyžaduje, aby vás uvedl každý, kdo použije vaší fotku a že odvozené fotky musí být dále sdíleny se stejnou licencí." + } + }, + "question": "Pod jakou licencí chcete své fotografie zveřejnit?" + }, "profile-description": { "mappings": { "0": { @@ -9685,4 +9702,4 @@ "render": "větrná turbína" } } -} +} \ No newline at end of file diff --git a/langs/layers/da.json b/langs/layers/da.json index f428c36c1f..aea73eae3f 100644 --- a/langs/layers/da.json +++ b/langs/layers/da.json @@ -2757,6 +2757,14 @@ } } }, + "picture-license": { + "mappings": { + "1": { + "then": "Billeder, som du har taget, vil blive udgivet under CC0-licensen og lagt ud i fælleseje. Det betyder, at alle kan bruge dine billeder til ethvert formål." + } + }, + "question": "Under hvilken licens vil du frigive dine billeder?" + }, "settings-link": { "render": { "special": { diff --git a/langs/layers/de.json b/langs/layers/de.json index 8e952dceb3..7e977811cd 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -11675,6 +11675,23 @@ } } }, + "picture-license": { + "mappings": { + "0": { + "then": "Die von Ihnen aufgenommenen Bilder werden mit CC0 lizenziert und der Public Domain hinzugefügt. Das bedeutet, dass jeder Ihre Bilder für jeden Zweck verwenden kann. Dies ist die Standardeinstellung." + }, + "1": { + "then": "Ihre aufgenommenen Bilder werden mit CC0 lizenziert und der Public Domain hinzugefügt. Das bedeutet, dass jeder Ihre Bilder für jeden Zweck verwenden kann." + }, + "2": { + "then": "Die von Ihnen aufgenommenen Bilder werden mit CC-BY 4.0 lizenziert, was bedeutet, dass jeder, der Ihr Bild verwendet, Sie als Urheber nennen muss" + }, + "3": { + "then": "Die von Ihnen aufgenommenen Bilder werden mit CC-BY-SA 4.0 lizenziert, was bedeutet, dass jeder, der Ihr Bild verwendet, Sie als Urheber nennen muss und dass Ableitungen Ihres Bildes mit der gleichen Lizenz weitergegeben werden müssen." + } + }, + "question": "Unter welcher Lizenz möchten Sie Ihre Bilder veröffentlichen?" + }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/en.json b/langs/layers/en.json index b09b9de5d1..94ccce02bf 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -11770,6 +11770,23 @@ } } }, + "picture-license": { + "mappings": { + "0": { + "then": "Pictures you take will be licensed with CC0 and added to the public domain. This means that everyone can use your pictures for any purpose. This is the default choice." + }, + "1": { + "then": "Pictures you take will be licensed with CC0 and added to the public domain. This means that everyone can use your pictures for any purpose." + }, + "2": { + "then": "Pictures you take will be licensed with CC-BY 4.0 which requires everyone using your picture that they have to attribute you" + }, + "3": { + "then": "Pictures you take will be licensed with CC-BY-SA 4.0 which means that everyone using your picture must attribute you and that derivatives of your picture must be reshared with the same license." + } + }, + "question": "Under what license do you want to publish your pictures?" + }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/es.json b/langs/layers/es.json index 7c78b72fa2..40d7fc0c15 100644 --- a/langs/layers/es.json +++ b/langs/layers/es.json @@ -4923,6 +4923,13 @@ } } }, + "picture-license": { + "mappings": { + "1": { + "then": "Las fotografías que tome tendrán una licencia con CC0 y se agregarán al dominio público. Esto significa que todos pueden usar sus imágenes para cualquier propósito." + } + } + }, "translation-completeness": { "render": "Las traducciones para {_theme} en {_language} están al {_translation_percentage}%: {_translation_translated_count} cadenas de {_translation_total} están traducidas" }, diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 0cef4ae7da..0889b71722 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -7139,6 +7139,16 @@ } } }, + "picture-license": { + "mappings": { + "1": { + "then": "Les photos que vous avez ajoutées seront sous licence CC0 et mises dans le domaine public. Cela signifie que n'importe qui pourra les utiliser, quel qu'en soit l'usage." + }, + "3": { + "then": "Les photos que vous prenez seront sous la licence CC-BY-SA 4.0 ce qui signifie que quiconque utilisant votre photo doit vous créditer et que les modifications apportées à votre photo doivent être repartagées avec la même licence." + } + } + }, "show_tags": { "mappings": { "0": { @@ -7548,4 +7558,4 @@ "render": "éolienne" } } -} +} \ No newline at end of file diff --git a/langs/layers/nl.json b/langs/layers/nl.json index c2ecbfe443..3208a2e5a5 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -9229,6 +9229,23 @@ } } }, + "picture-license": { + "mappings": { + "0": { + "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC0-licentie en dus aan het publieke domein toegevoegd worden. Dit betekent dat iedereen je afbeeldingen kan gebruiken voor elk mogelijks gebruik. Dit is de standaard-instelling" + }, + "1": { + "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC0-licentie en dus aan het publieke domein toegevoegd worden. Dit betekent dat iedereen je afbeeldingen kan gebruiken voor elk mogelijks gebruik." + }, + "2": { + "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC-BY 4.0-licentie. Dit betekent dat iedereen je afbeelding mag gebruiken voor elke toepassing mits het vermelden van je naam" + }, + "3": { + "then": "Afbeeldingen die je toevoegt zullen gepubliceerd worden met de CC-BY-SA 4.0-licentie. Dit betekent dat iedereen je afbeelding mag gebruiken voor elke toepassing mits het vermelden van je naam en dat afgeleide werken van je afbeelding ook ondere deze licentie moeten gepubliceerd worden." + } + }, + "question": "Met welke licentie wil je je afbeeldingen toevoegen?" + }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/pt.json b/langs/layers/pt.json index 415571b23d..9a422c5cad 100644 --- a/langs/layers/pt.json +++ b/langs/layers/pt.json @@ -1912,6 +1912,23 @@ } } }, + "picture-license": { + "mappings": { + "0": { + "then": "As fotos que você tirar serão licenciadas com CC0 e adicionadas ao domínio público. Isso significa que todos podem usar suas fotos para qualquer finalidade. Esta é a escolha padrão." + }, + "1": { + "then": "As fotos que você tirar serão licenciadas com CC0 e adicionadas ao domínio público. Isso significa que todos podem usar suas fotos para qualquer finalidade." + }, + "2": { + "then": "As fotos que você tirar serão licenciadas com CC-BY 4.0, que exige que todos que usam sua foto atribuam a você" + }, + "3": { + "then": "As fotos que você tirar serão licenciadas com CC-BY-SA 4.0, o que significa que todos que usarem sua foto devem atribuí-lo e que os derivados de sua foto devem ser compartilhados novamente com a mesma licença." + } + }, + "question": "Sob que licença você deseja publicar suas fotos?" + }, "profile-description": { "mappings": { "0": { diff --git a/langs/layers/ru.json b/langs/layers/ru.json index 55d8380323..7202e84a37 100644 --- a/langs/layers/ru.json +++ b/langs/layers/ru.json @@ -2063,6 +2063,17 @@ } } }, + "usersettings": { + "tagRenderings": { + "picture-license": { + "mappings": { + "1": { + "then": "Изображения будут опубликованы под лицензией CC0 и перейдут в общественное достояние. Это значит, что кто угодно имеет право использовать их без ограничений." + } + } + } + } + }, "vending_machine": { "tagRenderings": { "operational_status": { diff --git a/langs/themes/cs.json b/langs/themes/cs.json index fcb26a2c62..543c2f1bda 100644 --- a/langs/themes/cs.json +++ b/langs/themes/cs.json @@ -1275,4 +1275,4 @@ "shortDescription": "Mapa odpadkových košů", "title": "Odpadkový koš" } -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 19aace4dc8..ebb5636edb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7980,9 +7980,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001660", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", - "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", + "version": "1.0.30001664", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", "dev": true, "funding": [ { @@ -26810,9 +26810,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001660", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", - "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", + "version": "1.0.30001664", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", "dev": true }, "canonicalize": { From 1a3bb7bb270a088ad6196b41431e512ddda3fa81 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 30 Sep 2024 23:30:39 +0200 Subject: [PATCH 79/84] Refactoring: fix #2190, refactor noteCommentElement into svelte --- src/UI/Popup/Notes/NoteCommentElement.svelte | 103 ++++++++ src/UI/Popup/Notes/NoteCommentElement.ts | 114 +------- src/UI/SpecialVisualizations.ts | 258 +++++++++---------- 3 files changed, 232 insertions(+), 243 deletions(-) create mode 100644 src/UI/Popup/Notes/NoteCommentElement.svelte diff --git a/src/UI/Popup/Notes/NoteCommentElement.svelte b/src/UI/Popup/Notes/NoteCommentElement.svelte new file mode 100644 index 0000000000..ce682ff1d8 --- /dev/null +++ b/src/UI/Popup/Notes/NoteCommentElement.svelte @@ -0,0 +1,103 @@ + + +
+ +
+ + + {#if comment.action === "opened" || comment.action === "reopened"} + + {:else if comment.action === "closed"} + + {:else} + + {/if} +
+ {@html comment.html} +
+
+ + {#if images.length > 0} + new SlideShow(imgStore) .SetClass("mb-1").SetStyle("min-width: 50px; background: grey;")} /> + {/if} + + +
+ + + {#if $userinfo?.user?.img?.href} + + {/if} + + + {#if comment.user === undefined} + + {:else} + {comment.user} + {/if} + {comment.date} + + +
+
diff --git a/src/UI/Popup/Notes/NoteCommentElement.ts b/src/UI/Popup/Notes/NoteCommentElement.ts index f2837bf62b..9bc3fea6a2 100644 --- a/src/UI/Popup/Notes/NoteCommentElement.ts +++ b/src/UI/Popup/Notes/NoteCommentElement.ts @@ -1,117 +1,7 @@ -import Combine from "../../Base/Combine" -import BaseUIElement from "../../BaseUIElement" -import Link from "../../Base/Link" -import { FixedUiElement } from "../../Base/FixedUiElement" -import Translations from "../../i18n/Translations" -import { Utils } from "../../../Utils" -import Img from "../../Base/Img" -import { SlideShow } from "../../Image/SlideShow" -import { Store, Stores, UIEventSource } from "../../../Logic/UIEventSource" -import { VariableUiElement } from "../../Base/VariableUIElement" -import { SpecialVisualizationState } from "../../SpecialVisualization" -import SvelteUIElement from "../../Base/SvelteUIElement" -import Note from "../../../assets/svg/Note.svelte" -import Resolved from "../../../assets/svg/Resolved.svelte" -import Speech_bubble from "../../../assets/svg/Speech_bubble.svelte" +import { Store, UIEventSource } from "../../../Logic/UIEventSource" -export default class NoteCommentElement extends Combine { - constructor( - comment: { - date: string - uid: number - user: string - user_url: string - action: "closed" | "opened" | "reopened" | "commented" - text: string - html: string - highlighted: boolean - }, - state?: SpecialVisualizationState, - index?: number, - totalNumberOfComments?: number - ) { - const t = Translations.t.notes +export default class NoteCommentElement { - let actionIcon: BaseUIElement - if (comment.action === "opened" || comment.action === "reopened") { - actionIcon = new SvelteUIElement(Note) - } else if (comment.action === "closed") { - actionIcon = new SvelteUIElement(Resolved) - } else { - actionIcon = new SvelteUIElement(Speech_bubble) - } - - let user: BaseUIElement - if (comment.user === undefined) { - user = t.anonymous - } else { - user = new Link(comment.user, comment.user_url ?? "", true) - } - - const userinfo = Stores.FromPromise( - Utils.downloadJsonCached<{ user: { img: { href: string } } }>( - "https://api.openstreetmap.org/api/0.6/user/" + comment.uid, - 24 * 60 * 60 * 1000 - ) - ) - const userImg = new VariableUiElement( - userinfo.map((userinfo) => { - const href = userinfo?.user?.img?.href - if (href !== undefined) { - return new Img(href).SetClass("rounded-full w-8 h-8 mr-4") - } - return undefined - }) - ) - - const htmlElement = document.createElement("div") - htmlElement.innerHTML = Utils.purify(comment.html) - const images = Array.from(htmlElement.getElementsByTagName("a")) - .map((link) => link.href) - .filter((link) => { - link = link.toLowerCase() - const lastDotIndex = link.lastIndexOf(".") - const extension = link.substring(lastDotIndex + 1, link.length) - return Utils.imageExtensions.has(extension) - }) - .filter((link) => !link.startsWith("https://wiki.openstreetmap.org/wiki/File:")) - let imagesEl: BaseUIElement = undefined - if (images.length > 0) { - const imageEls = images.map((i) => - new Img(i) - .SetClass("w-full block cursor-pointer") - .onClick(() => - state?.previewedImage?.setData({ - url_hd: i, - url: i, - }) - ) - .SetStyle("min-width: 50px; background: grey;") - ) - imagesEl = new SlideShow(new UIEventSource(imageEls)).SetClass("mb-1") - } - - super([ - new Combine([ - actionIcon.SetClass("mr-4 w-6").SetStyle("flex-shrink: 0"), - new FixedUiElement(comment.html).SetClass("flex flex-col").SetStyle("margin: 0"), - ]).SetClass("flex"), - imagesEl, - new Combine([userImg, user.SetClass("mr-2"), comment.date]).SetClass( - "flex justify-end items-center subtle" - ), - ]) - this.SetClass("flex flex-col pb-2 mb-2 border-gray-500 border-b") - if (comment.highlighted) { - this.SetClass("focus") - if (index + 2 === totalNumberOfComments) { - console.log("Scrolling into view") - requestAnimationFrame(() => { - this.ScrollIntoView() - }) - } - } - } /** * Adds the comment to the _visualisation_ of the given note; doesn't _actually_ upload diff --git a/src/UI/SpecialVisualizations.ts b/src/UI/SpecialVisualizations.ts index be035b0eca..ee038b3991 100644 --- a/src/UI/SpecialVisualizations.ts +++ b/src/UI/SpecialVisualizations.ts @@ -2,11 +2,7 @@ import Combine from "./Base/Combine" import { FixedUiElement } from "./Base/FixedUiElement" import BaseUIElement from "./BaseUIElement" import Title from "./Base/Title" -import { - RenderingSpecification, - SpecialVisualization, - SpecialVisualizationState, -} from "./SpecialVisualization" +import { RenderingSpecification, SpecialVisualization, SpecialVisualizationState } from "./SpecialVisualization" import { HistogramViz } from "./Popup/HistogramViz" import MinimapViz from "./Popup/MinimapViz.svelte" import { ShareLinkViz } from "./Popup/ShareLinkViz" @@ -27,7 +23,6 @@ import { Translation } from "./i18n/Translation" import Translations from "./i18n/Translations" import OpeningHoursVisualization from "./OpeningHours/OpeningHoursVisualization" import { SubtleButton } from "./Base/SubtleButton" -import NoteCommentElement from "./Popup/Notes/NoteCommentElement" import List from "./Base/List" import StatisticsPanel from "./BigComponents/StatisticsPanel" import AutoApplyButton from "./Popup/AutoApplyButton" @@ -101,6 +96,7 @@ import QrCode from "./Popup/QrCode.svelte" import ClearCaches from "./Popup/ClearCaches.svelte" import GroupedView from "./Popup/GroupedView.svelte" import { QuestionableTagRenderingConfigJson } from "../Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson" +import NoteCommentElement from "./Popup/Notes/NoteCommentElement.svelte" class NearbyImageVis implements SpecialVisualization { // Class must be in SpecialVisualisations due to weird cyclical import that breaks the tests @@ -126,7 +122,7 @@ class NearbyImageVis implements SpecialVisualization { tags: UIEventSource>, args: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): SvelteUIElement { const isOpen = args[0] === "open" const readonly = args[1] === "readonly" @@ -193,7 +189,7 @@ class StealViz implements SpecialVisualization { selectedElement: otherFeature, state, layer, - }) + }), ) } if (elements.length === 1) { @@ -201,8 +197,8 @@ class StealViz implements SpecialVisualization { } return new Combine(elements).SetClass("flex flex-col") }, - [state.indexedFeatures.featuresById] - ) + [state.indexedFeatures.featuresById], + ), ) } @@ -254,11 +250,11 @@ class CloseNoteViz implements SpecialVisualization { public constr( state: SpecialVisualizationState, tags: UIEventSource>, - args: string[] + args: string[], ): SvelteUIElement { const { text, icon, idkey, comment, minZoom, zoomButton } = Utils.ParseVisArgs( this.args, - args + args, ) return new SvelteUIElement(CloseNoteButton, { @@ -299,7 +295,7 @@ export class QuestionViz implements SpecialVisualization { tags: UIEventSource>, args: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): SvelteUIElement { const labels = args[0] ?.split(";") @@ -331,7 +327,7 @@ export default class SpecialVisualizations { for (const specialVisualization of SpecialVisualizations.specialVisualizations) { SpecialVisualizations.specialVisualisationsDict.set( specialVisualization.funcName, - specialVisualization + specialVisualization, ) } } @@ -351,15 +347,15 @@ export default class SpecialVisualizations { viz.docs, viz.args.length > 0 ? MarkdownUtils.table( - ["name", "default", "description"], - viz.args.map((arg) => { - let defaultArg = arg.defaultValue ?? "_undefined_" - if (defaultArg == "") { - defaultArg = "_empty string_" - } - return [arg.name, defaultArg, arg.doc] - }) - ) + ["name", "default", "description"], + viz.args.map((arg) => { + let defaultArg = arg.defaultValue ?? "_undefined_" + if (defaultArg == "") { + defaultArg = "_empty string_" + } + return [arg.name, defaultArg, arg.doc] + }), + ) : undefined, "#### Example usage of " + viz.funcName, "" + example + "", @@ -368,18 +364,18 @@ export default class SpecialVisualizations { public static constructSpecification( template: string, - extraMappings: SpecialVisualization[] = [] + extraMappings: SpecialVisualization[] = [], ): RenderingSpecification[] { return SpecialVisualisationUtils.constructSpecification( template, SpecialVisualizations.specialVisualisationsDict, - extraMappings + extraMappings, ) } public static HelpMessage(): string { const helpTexts: string[] = SpecialVisualizations.specialVisualizations.map((viz) => - SpecialVisualizations.DocumentationFor(viz) + SpecialVisualizations.DocumentationFor(viz), ) const firstPart = new Combine([ @@ -412,10 +408,10 @@ export default class SpecialVisualizations { }, }, null, - " " - ) + " ", + ), ).SetClass("code"), - 'In other words: use `{ "before": ..., "after": ..., "special": {"type": ..., "argname": ...argvalue...}`. The args are in the `special` block; an argvalue can be a string, a translation or another value. (Refer to class `RewriteSpecial` in case of problems)', + "In other words: use `{ \"before\": ..., \"after\": ..., \"special\": {\"type\": ..., \"argname\": ...argvalue...}`. The args are in the `special` block; an argvalue can be a string, a translation or another value. (Refer to class `RewriteSpecial` in case of problems)", ]) .SetClass("flex flex-col") .AsMarkdown() @@ -453,10 +449,10 @@ export default class SpecialVisualizations { assignTo: state.userRelatedState.language, availableLanguages: languages, preferredLanguages: state.osmConnection.userDetails.map( - (ud) => ud.languages + (ud) => ud.languages, ), }) - }) + }), ) }, }, @@ -495,7 +491,7 @@ export default class SpecialVisualizations { state: SpecialVisualizationState, tagSource: UIEventSource>, args: string[], - feature: Feature + feature: Feature, ): SvelteUIElement { return new SvelteUIElement(MinimapViz, { state, args, feature, tagSource }) }, @@ -507,7 +503,7 @@ export default class SpecialVisualizations { constr( state: SpecialVisualizationState, - tagSource: UIEventSource> + tagSource: UIEventSource>, ): BaseUIElement { return new VariableUiElement( tagSource @@ -517,7 +513,7 @@ export default class SpecialVisualizations { return new SvelteUIElement(SplitRoadWizard, { id, state }) } return undefined - }) + }), ) }, }, @@ -531,7 +527,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { if (feature.geometry.type !== "Point") { return undefined @@ -554,7 +550,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { if (!layer.deletion) { return undefined @@ -582,7 +578,7 @@ export default class SpecialVisualizations { state: SpecialVisualizationState, tagSource: UIEventSource>, argument: string[], - feature: Feature + feature: Feature, ): BaseUIElement { const [lon, lat] = GeoOperations.centerpointCoordinates(feature) return new SvelteUIElement(CreateNewNote, { @@ -645,7 +641,7 @@ export default class SpecialVisualizations { .map((tags) => tags[args[0]]) .map((wikidata) => { wikidata = Utils.NoEmpty( - wikidata?.split(";")?.map((wd) => wd.trim()) ?? [] + wikidata?.split(";")?.map((wd) => wd.trim()) ?? [], )[0] const entry = Wikidata.LoadWikidataEntry(wikidata) return new VariableUiElement( @@ -655,9 +651,9 @@ export default class SpecialVisualizations { } const response = e["success"] return Translation.fromMap(response.labels) - }) + }), ) - }) + }), ), }, new MapillaryLinkVis(), @@ -671,7 +667,7 @@ export default class SpecialVisualizations { tags: UIEventSource>, _, __, - layer: LayerConfig + layer: LayerConfig, ) => new SvelteUIElement(AllTagsPanel, { tags, layer }), }, { @@ -693,7 +689,7 @@ export default class SpecialVisualizations { return new ImageCarousel( AllImageProviders.LoadImagesFor(tags, imagePrefixes), tags, - state + state, ) }, }, @@ -714,7 +710,7 @@ export default class SpecialVisualizations { }, ], constr: (state, tags, args) => { - const targetKey = args[0] === "" ? undefined : args[0] + const targetKey = args[0] === "" ? undefined : args[0] return new SvelteUIElement(UploadImage, { state, tags, @@ -750,7 +746,7 @@ export default class SpecialVisualizations { nameKey: nameKey, fallbackName, }, - state.featureSwitchIsTesting + state.featureSwitchIsTesting, ) return new SvelteUIElement(StarsBarIcon, { score: reviews.average, @@ -784,7 +780,7 @@ export default class SpecialVisualizations { nameKey: nameKey, fallbackName, }, - state.featureSwitchIsTesting + state.featureSwitchIsTesting, ) return new SvelteUIElement(ReviewForm, { reviews, state, tags, feature, layer }) }, @@ -815,7 +811,7 @@ export default class SpecialVisualizations { nameKey: nameKey, fallbackName, }, - state.featureSwitchIsTesting + state.featureSwitchIsTesting, ) return new SvelteUIElement(AllReviews, { reviews, state, tags, feature, layer }) }, @@ -841,7 +837,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, args: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new Combine([ SpecialVisualizations.specialVisualisationsDict["create_review"].constr( @@ -849,14 +845,14 @@ export default class SpecialVisualizations { tagSource, args, feature, - layer + layer, ), SpecialVisualizations.specialVisualisationsDict["list_reviews"].constr( state, tagSource, args, feature, - layer + layer, ), ]) }, @@ -874,7 +870,7 @@ export default class SpecialVisualizations { constr( state: SpecialVisualizationState, _: UIEventSource>, - argument: string[] + argument: string[], ): BaseUIElement { const [text] = argument return new SvelteUIElement(ImportReviewIdentity, { state, text }) @@ -931,7 +927,7 @@ export default class SpecialVisualizations { constr( state: SpecialVisualizationState, tags: UIEventSource>, - args: string[] + args: string[], ): SvelteUIElement { const keyToUse = args[0] const prefix = args[1] @@ -968,17 +964,17 @@ export default class SpecialVisualizations { return undefined } const allUnits: Unit[] = [].concat( - ...(state?.layout?.layers?.map((lyr) => lyr.units) ?? []) + ...(state?.layout?.layers?.map((lyr) => lyr.units) ?? []), ) const unit = allUnits.filter((unit) => - unit.isApplicableToKey(key) + unit.isApplicableToKey(key), )[0] if (unit === undefined) { return value } const getCountry = () => tagSource.data._country return unit.asHumanLongValue(value, getCountry) - }) + }), ) }, }, @@ -995,7 +991,7 @@ export default class SpecialVisualizations { new Combine([ t.downloadFeatureAsGeojson.SetClass("font-bold text-lg"), t.downloadGeoJsonHelper.SetClass("subtle"), - ]).SetClass("flex flex-col") + ]).SetClass("flex flex-col"), ) .onClick(() => { console.log("Exporting as Geojson") @@ -1008,7 +1004,7 @@ export default class SpecialVisualizations { title + "_mapcomplete_export.geojson", { mimetype: "application/vnd.geo+json", - } + }, ) }) .SetClass("w-full") @@ -1044,7 +1040,7 @@ export default class SpecialVisualizations { constr: (state) => { return new SubtleButton( new SvelteUIElement(Trash).SetClass("h-6"), - Translations.t.general.removeLocationHistory + Translations.t.general.removeLocationHistory, ).onClick(() => { state.historicalUserLocations.features.setData([]) state.selectedElement.setData(undefined) @@ -1081,11 +1077,11 @@ export default class SpecialVisualizations { comments .filter((c) => c.text !== "") .map( - (c, i) => - new NoteCommentElement(c, state, i, comments.length) - ) + (comment) => + new SvelteUIElement(NoteCommentElement, { comment, state }), + ), ).SetClass("flex flex-col") - }) + }), ), }, { @@ -1103,7 +1099,7 @@ export default class SpecialVisualizations { constr: (state, tags, args, feature, layer) => { const id = tags.data[args[0] ?? "id"] tags = state.featureProperties.getStore(id) - return new SvelteUIElement(UploadImage, { state, tags, layer }) + return new SvelteUIElement(UploadImage, { state, tags, layer }) }, }, { @@ -1118,7 +1114,7 @@ export default class SpecialVisualizations { tagsSource: UIEventSource>, _: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ) => new VariableUiElement( tagsSource.map((tags) => { @@ -1138,7 +1134,7 @@ export default class SpecialVisualizations { }) .SetClass("px-1") .setSpan() - }) + }), ), }, { @@ -1154,8 +1150,8 @@ export default class SpecialVisualizations { const challenge = Stores.FromPromise( Utils.downloadJsonCached( `${Maproulette.defaultEndpoint}/challenge/${parentId}`, - 24 * 60 * 60 * 1000 - ) + 24 * 60 * 60 * 1000, + ), ) return new VariableUiElement( @@ -1180,7 +1176,7 @@ export default class SpecialVisualizations { } else { return [title, new List(listItems)] } - }) + }), ) }, docs: "Fetches the metadata of MapRoulette campaign that this task is part of and shows those details (namely `title`, `description` and `instruction`).\n\nThis reads the property `mr_challengeId` to detect the parent campaign.", @@ -1194,15 +1190,15 @@ export default class SpecialVisualizations { "\n" + "```json\n" + "{\n" + - ' "id": "mark_duplicate",\n' + - ' "render": {\n' + - ' "special": {\n' + - ' "type": "maproulette_set_status",\n' + - ' "message": {\n' + - ' "en": "Mark as not found or false positive"\n' + + " \"id\": \"mark_duplicate\",\n" + + " \"render\": {\n" + + " \"special\": {\n" + + " \"type\": \"maproulette_set_status\",\n" + + " \"message\": {\n" + + " \"en\": \"Mark as not found or false positive\"\n" + " },\n" + - ' "status": "2",\n' + - ' "image": "close"\n' + + " \"status\": \"2\",\n" + + " \"image\": \"close\"\n" + " }\n" + " }\n" + "}\n" + @@ -1278,7 +1274,7 @@ export default class SpecialVisualizations { (l) => l.name !== null && l.title && - state.perLayer.get(l.id) !== undefined + state.perLayer.get(l.id) !== undefined, ) .map( (l) => { @@ -1288,8 +1284,8 @@ export default class SpecialVisualizations { const fsBboxed = new BBoxFeatureSourceForLayer(fs, bbox) return new StatisticsPanel(fsBboxed) }, - [state.mapProperties.bounds] - ) + [state.mapProperties.bounds], + ), ) }, }, @@ -1359,7 +1355,7 @@ export default class SpecialVisualizations { constr( state: SpecialVisualizationState, tagSource: UIEventSource>, - args: string[] + args: string[], ): SvelteUIElement { let [text, href, classnames, download, ariaLabel, icon] = args if (download === "") { @@ -1397,7 +1393,7 @@ export default class SpecialVisualizations { }, }, null, - " " + " ", ) + "\n```", args: [ @@ -1421,7 +1417,7 @@ export default class SpecialVisualizations { featureTags: UIEventSource>, args: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ) { const [key, tr, classesRaw] = args let classes = classesRaw ?? "" @@ -1439,7 +1435,7 @@ export default class SpecialVisualizations { "Could not create a special visualization for multi(", args.join(", ") + ")", "no properties found for object", - feature.properties.id + feature.properties.id, ) return undefined } @@ -1455,7 +1451,7 @@ export default class SpecialVisualizations { elements.push(subsTr) } return elements - }) + }), ) }, }, @@ -1475,7 +1471,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new VariableUiElement( tagSource.map((tags) => { @@ -1487,7 +1483,7 @@ export default class SpecialVisualizations { console.error("Cannot create a translation for", v, "due to", e) return JSON.stringify(v) } - }) + }), ) }, }, @@ -1507,7 +1503,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const key = argument[0] const validator = new FediverseValidator() @@ -1517,7 +1513,7 @@ export default class SpecialVisualizations { .map((fediAccount) => { fediAccount = validator.reformat(fediAccount) const [_, username, host] = fediAccount.match( - FediverseValidator.usernameAtServer + FediverseValidator.usernameAtServer, ) const normalLink = new SvelteUIElement(Link, { @@ -1529,10 +1525,10 @@ export default class SpecialVisualizations { const loggedInContributorMastodon = state.userRelatedState?.preferencesAsTags?.data?.[ "_mastodon_link" - ] + ] console.log( "LoggedinContributorMastodon", - loggedInContributorMastodon + loggedInContributorMastodon, ) if (!loggedInContributorMastodon) { return normalLink @@ -1548,7 +1544,7 @@ export default class SpecialVisualizations { newTab: true, }).SetClass("button"), ]) - }) + }), ) }, }, @@ -1568,7 +1564,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, args: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new FixedUiElement("{" + args[0] + "}") }, @@ -1589,7 +1585,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const key = argument[0] ?? "value" return new VariableUiElement( @@ -1607,12 +1603,12 @@ export default class SpecialVisualizations { } catch (e) { return new FixedUiElement( "Could not parse this tag: " + - JSON.stringify(value) + - " due to " + - e + JSON.stringify(value) + + " due to " + + e, ).SetClass("alert") } - }) + }), ) }, }, @@ -1633,7 +1629,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const giggityUrl = argument[0] return new SvelteUIElement(Giggity, { tags: tagSource, state, giggityUrl }) @@ -1649,12 +1645,12 @@ export default class SpecialVisualizations { _: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const tags = (( state )).geolocation.currentUserLocation.features.map( - (features) => features[0]?.properties + (features) => features[0]?.properties, ) return new Combine([ new SvelteUIElement(OrientationDebugPanel, {}), @@ -1676,7 +1672,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new SvelteUIElement(MarkAsFavourite, { tags: tagSource, @@ -1696,7 +1692,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new SvelteUIElement(MarkAsFavouriteMini, { tags: tagSource, @@ -1716,7 +1712,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new SvelteUIElement(DirectionIndicator, { state, feature }) }, @@ -1729,7 +1725,7 @@ export default class SpecialVisualizations { state: SpecialVisualizationState, tags: UIEventSource>, argument: string[], - feature: Feature + feature: Feature, ): SvelteUIElement { return new SvelteUIElement(QrCode, { state, tags, feature }) }, @@ -1748,7 +1744,7 @@ export default class SpecialVisualizations { constr( state: SpecialVisualizationState, tagSource: UIEventSource>, - args: string[] + args: string[], ): BaseUIElement { const key = args[0] === "" ? "_direction:centerpoint" : args[0] return new VariableUiElement( @@ -1759,11 +1755,11 @@ export default class SpecialVisualizations { }) .mapD((value) => { const dir = GeoOperations.bearingToHuman( - GeoOperations.parseBearing(value) + GeoOperations.parseBearing(value), ) console.log("Human dir", dir) return Translations.t.general.visualFeedback.directionsAbsolute[dir] - }) + }), ) }, }, @@ -1793,7 +1789,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, args: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const url = args[0] const readonly = args[3] === "yes" @@ -1819,12 +1815,12 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, args: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new Toggle( undefined, new SvelteUIElement(LoginButton, { osmConnection: state.osmConnection }), - state.osmConnection.isLoggedIn + state.osmConnection.isLoggedIn, ) }, }, @@ -1862,7 +1858,7 @@ export default class SpecialVisualizations { tags: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const key = argument[0] ?? "website" const useProxy = argument[1] !== "no" @@ -1889,11 +1885,11 @@ export default class SpecialVisualizations { const features = await LinkedDataLoader.fetchVeloparkEntry( url, - loadAll + loadAll, ) const feature = features.find( - (f) => f.properties["ref:velopark"] === url + (f) => f.properties["ref:velopark"] === url, ) ?? features[0] const properties = feature.properties properties["ref:velopark"] = url @@ -1903,7 +1899,7 @@ export default class SpecialVisualizations { console.error(e) throw e } - })() + })(), ) } return Stores.FromPromiseWithErr( @@ -1912,27 +1908,27 @@ export default class SpecialVisualizations { return await LinkedDataLoader.fetchJsonLd( url, { country }, - useProxy ? "proxy" : "fetch-lod" + useProxy ? "proxy" : "fetch-lod", ) } catch (e) { console.log( "Could not get with proxy/download LOD, attempting to download directly. Error for ", url, "is", - e + e, ) return await LinkedDataLoader.fetchJsonLd( url, { country }, - "fetch-raw" + "fetch-raw", ) } - })() + })(), ) }) externalData.addCallbackAndRunD((lod) => - console.log("linked_data_from_website received the following data:", lod) + console.log("linked_data_from_website received the following data:", lod), ) return new Toggle( @@ -1947,7 +1943,7 @@ export default class SpecialVisualizations { collapsed: isClosed, }), undefined, - url.map((url) => !!url) + url.map((url) => !!url), ) }, }, @@ -1967,7 +1963,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const text = argument[0] const cssClasses = argument[1] @@ -1989,7 +1985,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { const translation = tagSource.map((tags) => { const layer = state.layout.getMatchingLayer(tags) @@ -2007,7 +2003,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): BaseUIElement { return new SvelteUIElement(PendingChangesIndicator, { state, compact: false }) }, @@ -2027,7 +2023,7 @@ export default class SpecialVisualizations { tagSource: UIEventSource>, argument: string[], feature: Feature, - layer: LayerConfig + layer: LayerConfig, ): SvelteUIElement { return new SvelteUIElement(ClearCaches, { msg: argument[0] ?? "Clear local caches", @@ -2052,7 +2048,7 @@ export default class SpecialVisualizations { tags: UIEventSource>, argument: string[], selectedElement: Feature, - layer: LayerConfig + layer: LayerConfig, ): SvelteUIElement { const [header, labelsStr] = argument const labels = labelsStr.split(";").map((x) => x.trim()) @@ -2075,7 +2071,7 @@ export default class SpecialVisualizations { tags: UIEventSource>, argument: string[], selectedElement: Feature, - layer: LayerConfig + layer: LayerConfig, ): SvelteUIElement { const t = Translations.t.preset_type const question: QuestionableTagRenderingConfigJson = { @@ -2101,22 +2097,22 @@ export default class SpecialVisualizations { }, }, { - funcName:"clear_all", + funcName: "clear_all", docs: "Clears all user preferences", needsUrls: [], args: [ { name: "text", - doc: "Text to show on the button" - } + doc: "Text to show on the button", + }, ], constr(state: SpecialVisualizationState, tagSource: UIEventSource>, argument: string[], feature: Feature, layer: LayerConfig): BaseUIElement { const text = argument[0] return new SubtleButton(undefined, text).onClick(() => { state.osmConnection.preferencesHandler.ClearPreferences() }) - } - } + }, + }, ] specialVisualizations.push(new AutoApplyButton(specialVisualizations)) @@ -2131,7 +2127,7 @@ export default class SpecialVisualizations { "Invalid special visualisation found: funcName is undefined or doesn't match " + regex + invalid.map((sp) => sp.i).join(", ") + - '. Did you perhaps type \n funcName: "funcname" // type declaration uses COLON\ninstead of:\n funcName = "funcName" // value definition uses EQUAL' + ". Did you perhaps type \n funcName: \"funcname\" // type declaration uses COLON\ninstead of:\n funcName = \"funcName\" // value definition uses EQUAL" ) } From a70e2272f7598de59071480a844e6347d1c85f8f Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 1 Oct 2024 16:47:12 +0200 Subject: [PATCH 80/84] Chore: housekeeping --- Docs/Layers/bike_shop.md | 285 ---- Docs/TagInfo/mapcomplete_cyclofix.json | 920 ----------- Docs/TagInfo/mapcomplete_personal.json | 920 ----------- Docs/wikiIndex.txt | 218 +-- langs/cs.json | 2 +- langs/de.json | 2 +- langs/layers/cs.json | 2 +- langs/layers/fr.json | 2 +- langs/themes/cs.json | 2 +- package.json | 4 +- scripts/fixSchemas.ts | 1 + scripts/generateDocs.ts | 2 +- src/assets/schemas/layerconfigmeta.json | 620 +++++++- src/assets/schemas/layoutconfigmeta.json | 1368 +++++++++++++++-- .../questionabletagrenderingconfigmeta.json | 21 +- .../schemas/tagrenderingconfigmeta.json | 15 +- 16 files changed, 1906 insertions(+), 2478 deletions(-) diff --git a/Docs/Layers/bike_shop.md b/Docs/Layers/bike_shop.md index 0d8bff4a74..e90f2bf4d6 100644 --- a/Docs/Layers/bike_shop.md +++ b/Docs/Layers/bike_shop.md @@ -15,7 +15,6 @@ A shop specifically selling bicycles or related items - [images](#images) - [reviews](#reviews) - [shops-name](#shops-name) - - [shop_types](#shop_types) - [brand](#brand) - [second_hand](#second_hand) - [opening_hours](#opening_hours) @@ -33,18 +32,9 @@ A shop specifically selling bicycles or related items - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) - [bicycle_rental](#bicycle_rental) - - [bicycle-types](#bicycle-types) - - [rental-capacity-city_bike](#rental-capacity-city_bike) - - [rental-capacity-ebike](#rental-capacity-ebike) - - [rental-capacity-kid_bike](#rental-capacity-kid_bike) - - [rental-capacity-bmx](#rental-capacity-bmx) - - [rental-capacity-mtb](#rental-capacity-mtb) - - [rental-capacity-bicycle_pannier](#rental-capacity-bicycle_pannier) - - [rental-capacity-tandem_bicycle](#rental-capacity-tandem_bicycle) - [bike_pump_service](#bike_pump_service) - [bike_repair_tools](#bike_repair_tools) - [bike_wash](#bike_wash) - - [bike_cleaning-service_bicycle_cleaning_charge](#bike_cleaning-service_bicycle_cleaning_charge) - [internet](#internet) - [internet-fee](#internet-fee) - [internet-ssid](#internet-ssid) @@ -88,7 +78,6 @@ Elements must match **any** of the following expressions: | attribute | type | values which are supported by this layer | -----|-----|----- | | [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | | -| [shop](https://wiki.openstreetmap.org/wiki/Key:shop) | [string](../SpecialInputElements.md#string) | [bicycle_rental](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle_rental) [agrarian](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dagrarian) [alcohol](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dalcohol) [anime](https://wiki.openstreetmap.org/wiki/Tag:shop%3Danime) [antiques](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dantiques) [appliance](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dappliance) [art](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dart) [baby_goods](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbaby_goods) [bag](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbag) [bakery](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbakery) [bathroom_furnishing](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbathroom_furnishing) [beauty](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbeauty) [bed](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbed) [beverages](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbeverages) [bicycle](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle) [boat](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dboat) [bookmaker](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbookmaker) [books](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbooks) [brewing_supplies](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbrewing_supplies) [butcher](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbutcher) [camera](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcamera) [candles](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcandles) [cannabis](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcannabis) [car](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcar) [car_parts](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcar_parts) [car_repair](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcar_repair) [caravan](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcaravan) [carpet](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcarpet) [catalogue](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcatalogue) [charity](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcharity) [cheese](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcheese) [chemist](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dchemist) [chocolate](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dchocolate) [clothes](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dclothes) [coffee](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcoffee) [collector](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcollector) [computer](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcomputer) [confectionery](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dconfectionery) [convenience](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dconvenience) [copyshop](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcopyshop) [cosmetics](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcosmetics) [country_store](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcountry_store) [craft](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcraft) [curtain](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dcurtain) [dairy](https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddairy) [deli](https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddeli) [department_store](https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddepartment_store) [doityourself](https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddoityourself) [doors](https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddoors) [dry_cleaning](https://wiki.openstreetmap.org/wiki/Tag:shop%3Ddry_cleaning) [e-cigarette](https://wiki.openstreetmap.org/wiki/Tag:shop%3De-cigarette) [electrical](https://wiki.openstreetmap.org/wiki/Tag:shop%3Delectrical) [electronics](https://wiki.openstreetmap.org/wiki/Tag:shop%3Delectronics) [erotic](https://wiki.openstreetmap.org/wiki/Tag:shop%3Derotic) [fabric](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfabric) [farm](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfarm) [fashion_accessories](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfashion_accessories) [fireplace](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfireplace) [fishing](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfishing) [flooring](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dflooring) [florist](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dflorist) [frame](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dframe) [frozen_food](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfrozen_food) [fuel](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfuel) [funeral_directors](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfuneral_directors) [furniture](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dfurniture) [games](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dgames) [garden_centre](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dgarden_centre) [gas](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dgas) [general](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dgeneral) [gift](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dgift) [greengrocer](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dgreengrocer) [hairdresser](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhairdresser) [hairdresser_supply](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhairdresser_supply) [hardware](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhardware) [health_food](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhealth_food) [hearing_aids](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhearing_aids) [herbalist](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dherbalist) [hifi](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhifi) [honey](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhoney) [household_linen](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhousehold_linen) [houseware](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhouseware) [hunting](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhunting) [interior_decoration](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dinterior_decoration) [jewelry](https://wiki.openstreetmap.org/wiki/Tag:shop%3Djewelry) [kiosk](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dkiosk) [kitchen](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dkitchen) [laundry](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dlaundry) [leather](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dleather) [lighting](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dlighting) [locksmith](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dlocksmith) [lottery](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dlottery) [mall](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmall) [massage](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmassage) [medical_supply](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmedical_supply) [military_surplus](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmilitary_surplus) [mobile_phone](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmobile_phone) [model](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmodel) [money_lender](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmoney_lender) [motorcycle](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmotorcycle) [motorcycle_repair](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmotorcycle_repair) [music](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmusic) [musical_instrument](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dmusical_instrument) [newsagent](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dnewsagent) [nutrition_supplements](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dnutrition_supplements) [nuts](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dnuts) [optician](https://wiki.openstreetmap.org/wiki/Tag:shop%3Doptician) [outdoor](https://wiki.openstreetmap.org/wiki/Tag:shop%3Doutdoor) [outpost](https://wiki.openstreetmap.org/wiki/Tag:shop%3Doutpost) [paint](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpaint) [party](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dparty) [pasta](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpasta) [pastry](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpastry) [pawnbroker](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpawnbroker) [perfumery](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dperfumery) [pet](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpet) [pet_grooming](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpet_grooming) [photo](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dphoto) [pottery](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpottery) [printer_ink](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dprinter_ink) [psychic](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpsychic) [pyrotechnics](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dpyrotechnics) [radiotechnics](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dradiotechnics) [religion](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dreligion) [rental](https://wiki.openstreetmap.org/wiki/Tag:shop%3Drental) [repair](https://wiki.openstreetmap.org/wiki/Tag:shop%3Drepair) [rice](https://wiki.openstreetmap.org/wiki/Tag:shop%3Drice) [scuba_diving](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dscuba_diving) [seafood](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dseafood) [second_hand](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsecond_hand) [sewing](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsewing) [shoe_repair](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dshoe_repair) [shoes](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dshoes) [spices](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dspices) [sports](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsports) [stationery](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dstationery) [storage_rental](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dstorage_rental) [supermarket](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsupermarket) [swimming_pool](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dswimming_pool) [tailor](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtailor) [tattoo](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtattoo) [tea](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtea) [telecommunication](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtelecommunication) [ticket](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dticket) [tiles](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtiles) [tobacco](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtobacco) [tool_hire](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtool_hire) [toys](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtoys) [trade](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtrade) [travel_agency](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtravel_agency) [trophy](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtrophy) [tyres](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dtyres) [vacuum_cleaner](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dvacuum_cleaner) [variety_store](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dvariety_store) [video](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dvideo) [video_games](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dvideo_games) [watches](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dwatches) [water](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dwater) [water_sports](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dwater_sports) [weapons](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dweapons) [wholesale](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dwholesale) [wigs](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dwigs) [window_blind](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dwindow_blind) [wine](https://wiki.openstreetmap.org/wiki/Tag:shop%3Dwine) | | [brand](https://wiki.openstreetmap.org/wiki/Key:brand) | [string](../SpecialInputElements.md#string) | | | [second_hand](https://wiki.openstreetmap.org/wiki/Key:second_hand) | Multiple choice | [only](https://wiki.openstreetmap.org/wiki/Tag:second_hand%3Donly) [yes](https://wiki.openstreetmap.org/wiki/Tag:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:second_hand%3Dno) | | [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | | @@ -101,18 +90,9 @@ Elements must match **any** of the following expressions: | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | | [service:bicycle:rental](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:rental) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:rental%3Dno) | -| [rental](https://wiki.openstreetmap.org/wiki/Key:rental) | [string](../SpecialInputElements.md#string) | [city_bike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dcity_bike) [ebike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Debike) [bmx](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dbmx) [mtb](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dmtb) [kid_bike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dkid_bike) [tandem](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dtandem) [racebike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dracebike) [bike_helmet](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dbike_helmet) [cargo_bike](https://wiki.openstreetmap.org/wiki/Tag:rental%3Dcargo_bike) | -| [capacity:city_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:city_bike) | [pnat](../SpecialInputElements.md#pnat) | | -| [capacity:ebike](https://wiki.openstreetmap.org/wiki/Key:capacity:ebike) | [pnat](../SpecialInputElements.md#pnat) | | -| [capacity:kid_bike](https://wiki.openstreetmap.org/wiki/Key:capacity:kid_bike) | [pnat](../SpecialInputElements.md#pnat) | | -| [capacity:bmx](https://wiki.openstreetmap.org/wiki/Key:capacity:bmx) | [pnat](../SpecialInputElements.md#pnat) | | -| [capacity:mtb](https://wiki.openstreetmap.org/wiki/Key:capacity:mtb) | [pnat](../SpecialInputElements.md#pnat) | | -| [capacity:bicycle_pannier](https://wiki.openstreetmap.org/wiki/Key:capacity:bicycle_pannier) | [pnat](../SpecialInputElements.md#pnat) | | -| [capacity:tandem_bicycle](https://wiki.openstreetmap.org/wiki/Key:capacity:tandem_bicycle) | [pnat](../SpecialInputElements.md#pnat) | | | [service:bicycle:pump](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:pump) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dno) [separate](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:pump%3Dseparate) | | [service:bicycle:diy](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:diy) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:diy%3Donly_sold) | | [service:bicycle:cleaning](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dyes) [diy](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Ddiy) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:cleaning%3Dno) | -| [service:bicycle:cleaning:charge](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:cleaning:charge) | [string](../SpecialInputElements.md#string) | | | [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) [terminal;wifi](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal;wifi) | | [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | | [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | @@ -137,179 +117,6 @@ _This tagrendering has no question and is thus read-only_ The question is `What is the name of this shop?` *This shop is called {name}* is shown if `name` is set -### shop_types - -The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set - - - *Bicycle rental shop* is shown if with shop=bicycle_rental - - *Farm Supply Shop* is shown if with shop=agrarian - - *Liquor Store* is shown if with shop=alcohol - - *Anime / Manga Shop* is shown if with shop=anime - - *Antique Shop* is shown if with shop=antiques - - *Appliance Store* is shown if with shop=appliance - - *Art Store* is shown if with shop=art - - *Baby Goods Store* is shown if with shop=baby_goods - - *Bag/Luggage Store* is shown if with shop=bag - - *Bakery* is shown if with shop=bakery - - *Bathroom Furnishing Store* is shown if with shop=bathroom_furnishing - - *Beauty Shop* is shown if with shop=beauty - - *Bedding/Mattress Store* is shown if with shop=bed - - *Beverage Store* is shown if with shop=beverages - - *Bicycle Shop* is shown if with shop=bicycle - - *Boat Store* is shown if with shop=boat - - *Bookmaker* is shown if with shop=bookmaker - - *Bookstore* is shown if with shop=books - - *Brewing Supply Store* is shown if with shop=brewing_supplies - - *Butcher* is shown if with shop=butcher - - *Camera Equipment Store* is shown if with shop=camera - - *Candle Shop* is shown if with shop=candles - - *Cannabis Shop* is shown if with shop=cannabis - - *Car Dealership* is shown if with shop=car - - *Car Parts Store* is shown if with shop=car_parts - - *Car Repair Shop* is shown if with shop=car_repair - - *RV Dealership* is shown if with shop=caravan - - *Carpet Store* is shown if with shop=carpet - - *Catalog Shop* is shown if with shop=catalogue - - *Charity Store* is shown if with shop=charity - - *Cheese Store* is shown if with shop=cheese - - *Drugstore* is shown if with shop=chemist - - *Chocolate Store* is shown if with shop=chocolate - - *Clothing Store* is shown if with shop=clothes - - *Coffee Store* is shown if with shop=coffee - - *Collectibles Shop* is shown if with shop=collector - - *Computer Store* is shown if with shop=computer - - *Candy Store* is shown if with shop=confectionery - - *Convenience Store* is shown if with shop=convenience - - *Copy Store* is shown if with shop=copyshop - - *Cosmetics Store* is shown if with shop=cosmetics - - *Rural Supplies Store* is shown if with shop=country_store - - *Arts & Crafts Store* is shown if with shop=craft - - *Curtain Store* is shown if with shop=curtain - - *Dairy Store* is shown if with shop=dairy - - *Delicatessen* is shown if with shop=deli - - *Department Store* is shown if with shop=department_store - - *DIY Store* is shown if with shop=doityourself - - *Door Shop* is shown if with shop=doors - - *Dry Cleaner* is shown if with shop=dry_cleaning - - *E-Cigarette Shop* is shown if with shop=e-cigarette - - *Electrical Equipment Store* is shown if with shop=electrical - - *Electronics Store* is shown if with shop=electronics - - *Erotic Store* is shown if with shop=erotic - - *Fabric Store* is shown if with shop=fabric - - *Produce Stand* is shown if with shop=farm - - *Fashion Accessories Store* is shown if with shop=fashion_accessories - - *Fireplace Store* is shown if with shop=fireplace - - *Fishing Shop* is shown if with shop=fishing - - *Flooring Supply Shop* is shown if with shop=flooring - - *Florist* is shown if with shop=florist - - *Framing Shop* is shown if with shop=frame - - *Frozen Food Store* is shown if with shop=frozen_food - - *Fuel Shop* is shown if with shop=fuel - - *Funeral Home* is shown if with shop=funeral_directors - - *Furniture Store* is shown if with shop=furniture - - *Tabletop Game Store* is shown if with shop=games - - *Garden Center* is shown if with shop=garden_centre - - *Bottled Gas Shop* is shown if with shop=gas - - *General Store* is shown if with shop=general - - *Gift Shop* is shown if with shop=gift - - *Greengrocer* is shown if with shop=greengrocer - - *Hairdresser* is shown if with shop=hairdresser - - *Hairdresser Supply Store* is shown if with shop=hairdresser_supply - - *Hardware Store* is shown if with shop=hardware - - *Health Food Store* is shown if with shop=health_food - - *Hearing Aids Store* is shown if with shop=hearing_aids - - *Herbalist* is shown if with shop=herbalist - - *Hifi Store* is shown if with shop=hifi - - *Honey Store* is shown if with shop=honey - - *Household Linen Shop* is shown if with shop=household_linen - - *Houseware Store* is shown if with shop=houseware - - *Hunting Shop* is shown if with shop=hunting - - *Interior Decoration Store* is shown if with shop=interior_decoration - - *Jewelry Store* is shown if with shop=jewelry - - *Kiosk* is shown if with shop=kiosk - - *Kitchen Design Store* is shown if with shop=kitchen - - *Laundry* is shown if with shop=laundry - - *Leather Store* is shown if with shop=leather - - *Lighting Store* is shown if with shop=lighting - - *Locksmith* is shown if with shop=locksmith - - *Lottery Shop* is shown if with shop=lottery - - *Mall* is shown if with shop=mall - - *Massage Shop* is shown if with shop=massage - - *Medical Supply Store* is shown if with shop=medical_supply - - *Military Surplus Store* is shown if with shop=military_surplus - - *Mobile Phone Store* is shown if with shop=mobile_phone - - *Model Shop* is shown if with shop=model - - *Money Lender* is shown if with shop=money_lender - - *Motorcycle Dealership* is shown if with shop=motorcycle - - *Motorcycle Repair Shop* is shown if with shop=motorcycle_repair - - *Music Store* is shown if with shop=music - - *Musical Instrument Store* is shown if with shop=musical_instrument - - *Newsstand* is shown if with shop=newsagent - - *Nutrition Supplements Store* is shown if with shop=nutrition_supplements - - *Nuts Shop* is shown if with shop=nuts - - *Optician* is shown if with shop=optician - - *Outdoors Store* is shown if with shop=outdoor - - *Online Retailer Outpost* is shown if with shop=outpost - - *Paint Store* is shown if with shop=paint - - *Party Supply Store* is shown if with shop=party - - *Pasta Store* is shown if with shop=pasta - - *Pastry Shop* is shown if with shop=pastry - - *Pawnshop* is shown if with shop=pawnbroker - - *Perfume Store* is shown if with shop=perfumery - - *Pet Store* is shown if with shop=pet - - *Pet Groomer* is shown if with shop=pet_grooming - - *Photography Store* is shown if with shop=photo - - *Pottery Store* is shown if with shop=pottery - - *Printer Ink Store* is shown if with shop=printer_ink - - *Psychic* is shown if with shop=psychic - - *Fireworks Store* is shown if with shop=pyrotechnics - - *Radio/Electronic Component Store* is shown if with shop=radiotechnics - - *Religious Store* is shown if with shop=religion - - *Rental Shop* is shown if with shop=rental - - *Repair Shop* is shown if with shop=repair - - *Rice Store* is shown if with shop=rice - - *Scuba Diving Shop* is shown if with shop=scuba_diving - - *Seafood Shop* is shown if with shop=seafood - - *Thrift Store* is shown if with shop=second_hand - - *Sewing Supply Shop* is shown if with shop=sewing - - *Shoe Repair Shop* is shown if with shop=shoe_repair - - *Shoe Store* is shown if with shop=shoes - - *Spice Shop* is shown if with shop=spices - - *Sporting Goods Store* is shown if with shop=sports - - *Stationery Store* is shown if with shop=stationery - - *Storage Rental* is shown if with shop=storage_rental - - *Supermarket* is shown if with shop=supermarket - - *Pool Supply Store* is shown if with shop=swimming_pool - - *Tailor* is shown if with shop=tailor - - *Tattoo Parlor* is shown if with shop=tattoo - - *Tea Store* is shown if with shop=tea - - *Telecom Retail Store* is shown if with shop=telecommunication - - *Ticket Seller* is shown if with shop=ticket - - *Tile Shop* is shown if with shop=tiles - - *Tobacco Shop* is shown if with shop=tobacco - - *Tool Rental* is shown if with shop=tool_hire - - *Toy Store* is shown if with shop=toys - - *Trade Shop* is shown if with shop=trade - - *Travel Agency* is shown if with shop=travel_agency - - *Trophy Shop* is shown if with shop=trophy - - *Tire Store* is shown if with shop=tyres - - *Vacuum Cleaner Store* is shown if with shop=vacuum_cleaner - - *Discount Store* is shown if with shop=variety_store - - *Video Store* is shown if with shop=video - - *Video Game Store* is shown if with shop=video_games - - *Watches Shop* is shown if with shop=watches - - *Drinking Water Shop* is shown if with shop=water - - *Watersport/Swim Shop* is shown if with shop=water_sports - - *Weapon Shop* is shown if with shop=weapons - - *Wholesale Store* is shown if with shop=wholesale - - *Wig Shop* is shown if with shop=wigs - - *Window Blind Store* is shown if with shop=window_blind - - *Wine Shop* is shown if with shop=wine - -This tagrendering has labels -`description` - ### brand The question is `What is the brand of this shop?` @@ -466,88 +273,6 @@ The question is `Does this shop rent out bikes?` This tagrendering is only visible in the popup if the following condition is met: shop=bicycle | shop=sport | shop=bicycle_repair | shop=outdoor | shop=rental | service:bicycle:rental~.+ -### bicycle-types - -The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set - - - *Normal city bikes can be rented here* is shown if with rental=city_bike - - *Electrical bikes can be rented here* is shown if with rental=ebike - - *BMX bikes can be rented here* is shown if with rental=bmx - - *Mountainbikes can be rented here* is shown if with rental=mtb - - *Bikes for children can be rented here* is shown if with rental=kid_bike - - *Tandem bicycles can be rented here* is shown if with rental=tandem - - *Race bicycles can be rented here* is shown if with rental=racebike - - *Bike helmets can be rented here* is shown if with rental=bike_helmet - - *Cargo bikes can be rented here* is shown if with rental=cargo_bike - -This tagrendering is only visible in the popup if the following condition is met: service:bicycle:rental=yes | bicycle_rental~.+ -This tagrendering has labels -`bicycle_rental` - -### rental-capacity-city_bike - -The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set - -This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ -This tagrendering has labels -`bicycle_rental` - -### rental-capacity-ebike - -The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set - -This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ -This tagrendering has labels -`bicycle_rental` - -### rental-capacity-kid_bike - -The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set - -This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ -This tagrendering has labels -`bicycle_rental` - -### rental-capacity-bmx - -The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set - -This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ -This tagrendering has labels -`bicycle_rental` - -### rental-capacity-mtb - -The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set - -This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ -This tagrendering has labels -`bicycle_rental` - -### rental-capacity-bicycle_pannier - -The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set - -This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ -This tagrendering has labels -`bicycle_rental` - -### rental-capacity-tandem_bicycle - -The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set - -This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ -This tagrendering has labels -`bicycle_rental` - ### bike_pump_service The question is `Does this shop offer a bike pump for use by anyone?` @@ -578,16 +303,6 @@ The question is `Are bicycles washed here?` This tagrendering is only visible in the popup if the following condition is met: shop=bicycle | shop=bicycle_repair | ^(service:bicycle:.*)$~~^(yes|only)$ | service:bicycle:cleaning~.+ -### bike_cleaning-service_bicycle_cleaning_charge - -The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set - - - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ - -This tagrendering is only visible in the popup if the following condition is met: amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+ - ### internet The question is `Does this place offer internet access?` diff --git a/Docs/TagInfo/mapcomplete_cyclofix.json b/Docs/TagInfo/mapcomplete_cyclofix.json index 5f17f08319..c5dd60fbd5 100644 --- a/Docs/TagInfo/mapcomplete_cyclofix.json +++ b/Docs/TagInfo/mapcomplete_cyclofix.json @@ -323,830 +323,6 @@ "key": "name", "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')" }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'shop' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bicycle_rental with a fixed text, namely 'Bicycle rental shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "bicycle_rental" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "agrarian" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "alcohol" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "anime" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=antiques with a fixed text, namely 'Antique Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "antiques" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "appliance" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "art" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "baby_goods" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "bag" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "bakery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "bathroom_furnishing" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "beauty" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "bed" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "beverages" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "bicycle" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "boat" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "bookmaker" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=books with a fixed text, namely 'Bookstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "books" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "brewing_supplies" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "butcher" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "camera" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "candles" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "cannabis" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "car" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "car_parts" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "car_repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "caravan" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "carpet" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "catalogue" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "charity" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "cheese" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "chemist" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "chocolate" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "clothes" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "coffee" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "collector" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "computer" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "confectionery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "convenience" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "copyshop" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "cosmetics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=country_store with a fixed text, namely 'Rural Supplies Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "country_store" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "craft" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "curtain" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "dairy" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=deli with a fixed text, namely 'Delicatessen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "deli" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "department_store" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "doityourself" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "doors" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "dry_cleaning" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "e-cigarette" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "electrical" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "electronics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "erotic" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "fabric" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "farm" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "fashion_accessories" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "fireplace" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "fishing" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "flooring" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "florist" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "frame" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "frozen_food" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "fuel" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "funeral_directors" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "furniture" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "games" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "garden_centre" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "gas" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "general" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "gift" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "greengrocer" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "hairdresser" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "hairdresser_supply" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "hardware" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=health_food with a fixed text, namely 'Health Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "health_food" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "hearing_aids" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "herbalist" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "hifi" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=honey with a fixed text, namely 'Honey Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "honey" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "household_linen" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "houseware" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "hunting" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "interior_decoration" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "jewelry" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "kiosk" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "kitchen" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "laundry" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "leather" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "lighting" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "locksmith" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "lottery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "mall" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "massage" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "medical_supply" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "military_surplus" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "mobile_phone" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "model" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "money_lender" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "motorcycle" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "motorcycle_repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "music" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "musical_instrument" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=newsagent with a fixed text, namely 'Newsstand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "newsagent" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "nutrition_supplements" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=nuts with a fixed text, namely 'Nuts Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "nuts" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "optician" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "outdoor" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "outpost" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "paint" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "party" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pasta with a fixed text, namely 'Pasta Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "pasta" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "pastry" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pawnbroker with a fixed text, namely 'Pawnshop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "pawnbroker" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "perfumery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "pet" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pet_grooming with a fixed text, namely 'Pet Groomer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "pet_grooming" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "photo" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "pottery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "printer_ink" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "psychic" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "pyrotechnics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "radiotechnics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "religion" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "rental" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=rice with a fixed text, namely 'Rice Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "rice" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "scuba_diving" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "seafood" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=second_hand with a fixed text, namely 'Thrift Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "second_hand" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "sewing" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "shoe_repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "shoes" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "spices" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "sports" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "stationery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "storage_rental" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "supermarket" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "swimming_pool" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "tailor" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "tattoo" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "tea" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "telecommunication" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "ticket" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "tiles" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "tobacco" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "tool_hire" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "toys" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "trade" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "travel_agency" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "trophy" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "tyres" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "vacuum_cleaner" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=variety_store with a fixed text, namely 'Discount Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "variety_store" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "video" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "video_games" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "watches" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "water" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "water_sports" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "weapons" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "wholesale" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "wigs" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "window_blind" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if craft=)", - "value": "wine" - }, { "key": "brand", "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'brand' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')" @@ -1362,83 +538,6 @@ "description": "Layer 'Bike repair/shop' shows service:bicycle:rental=no with a fixed text, namely 'This shop doesn't rent out bikes' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if service:bicycle:rental~.+ | shop=bicycle | shop=sport | shop=bicycle_repair | shop=outdoor | shop=rental)", "value": "no" }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'rental' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=city_bike with a fixed text, namely 'Normal city bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "city_bike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=ebike with a fixed text, namely 'Electrical bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "ebike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=bmx with a fixed text, namely 'BMX bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "bmx" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=mtb with a fixed text, namely 'Mountainbikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "mtb" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=kid_bike with a fixed text, namely 'Bikes for children can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "kid_bike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=tandem with a fixed text, namely 'Tandem bicycles can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "tandem" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=racebike with a fixed text, namely 'Race bicycles can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "racebike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=bike_helmet with a fixed text, namely 'Bike helmets can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "bike_helmet" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=cargo_bike with a fixed text, namely 'Cargo bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "cargo_bike" - }, - { - "key": "capacity:city_bike", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:city_bike' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*city_bike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:ebike", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:ebike' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*ebike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:kid_bike", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:kid_bike' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*kid_bike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:bmx", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bmx' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*bmx.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:mtb", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:mtb' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*mtb.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:bicycle_pannier", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bicycle_pannier' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*bicycle_pannier.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:tandem_bicycle", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:tandem_bicycle' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if rental~^(.*tandem_bicycle.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, { "key": "service:bicycle:pump", "description": "Layer 'Bike repair/shop' shows service:bicycle:pump=yes with a fixed text, namely 'This shop offers a bike pump for anyone' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if service:bicycle:pump~.+ | shop=bicycle | shop=bicycle_repair | service:bicycle:retail=yes | ^(service:bicycle:.+)$~~^(yes)$)", @@ -1484,25 +583,6 @@ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning=no with a fixed text, namely 'This shop doesn't offer bicycle cleaning' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if service:bicycle:cleaning~.+ | shop=bicycle | shop=bicycle_repair | ^(service:bicycle:.*)$~~^(yes|only)$)", "value": "no" }, - { - "key": "service:bicycle:cleaning:charge", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)" - }, - { - "key": "service:bicycle:cleaning:fee", - "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)", - "value": "no" - }, - { - "key": "service:bicycle:cleaning:fee", - "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)", - "value": "yes" - }, - { - "key": "service:bicycle:cleaning:charge", - "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Cyclofix - a map for cyclists') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)", - "value": "" - }, { "key": "internet_access", "description": "Layer 'Bike repair/shop' shows internet_access=wlan with a fixed text, namely 'This place offers wireless internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Cyclofix - a map for cyclists')", diff --git a/Docs/TagInfo/mapcomplete_personal.json b/Docs/TagInfo/mapcomplete_personal.json index 4c3653c407..16fe21b243 100644 --- a/Docs/TagInfo/mapcomplete_personal.json +++ b/Docs/TagInfo/mapcomplete_personal.json @@ -2897,830 +2897,6 @@ "key": "name", "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Personal theme')" }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'shop' (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bicycle_rental with a fixed text, namely 'Bicycle rental shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "bicycle_rental" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "agrarian" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "alcohol" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "anime" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=antiques with a fixed text, namely 'Antique Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "antiques" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "appliance" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "art" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "baby_goods" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "bag" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "bakery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "bathroom_furnishing" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "beauty" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "bed" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "beverages" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "bicycle" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "boat" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "bookmaker" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=books with a fixed text, namely 'Bookstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "books" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "brewing_supplies" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "butcher" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "camera" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "candles" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "cannabis" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "car" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "car_parts" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "car_repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "caravan" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "carpet" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "catalogue" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "charity" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "cheese" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "chemist" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "chocolate" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "clothes" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "coffee" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "collector" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "computer" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "confectionery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "convenience" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "copyshop" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "cosmetics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=country_store with a fixed text, namely 'Rural Supplies Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "country_store" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "craft" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "curtain" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "dairy" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=deli with a fixed text, namely 'Delicatessen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "deli" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "department_store" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "doityourself" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "doors" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "dry_cleaning" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "e-cigarette" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "electrical" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "electronics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "erotic" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "fabric" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "farm" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "fashion_accessories" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "fireplace" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "fishing" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "flooring" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "florist" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "frame" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "frozen_food" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "fuel" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "funeral_directors" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "furniture" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "games" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "garden_centre" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "gas" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "general" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "gift" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "greengrocer" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "hairdresser" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "hairdresser_supply" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "hardware" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=health_food with a fixed text, namely 'Health Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "health_food" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "hearing_aids" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "herbalist" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "hifi" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=honey with a fixed text, namely 'Honey Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "honey" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "household_linen" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "houseware" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "hunting" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "interior_decoration" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "jewelry" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "kiosk" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "kitchen" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "laundry" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "leather" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "lighting" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "locksmith" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "lottery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "mall" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "massage" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "medical_supply" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "military_surplus" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "mobile_phone" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "model" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "money_lender" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "motorcycle" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "motorcycle_repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "music" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "musical_instrument" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=newsagent with a fixed text, namely 'Newsstand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "newsagent" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "nutrition_supplements" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=nuts with a fixed text, namely 'Nuts Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "nuts" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "optician" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "outdoor" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "outpost" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "paint" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "party" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pasta with a fixed text, namely 'Pasta Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "pasta" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "pastry" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pawnbroker with a fixed text, namely 'Pawnshop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "pawnbroker" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "perfumery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "pet" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pet_grooming with a fixed text, namely 'Pet Groomer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "pet_grooming" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "photo" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "pottery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "printer_ink" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "psychic" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "pyrotechnics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "radiotechnics" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "religion" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "rental" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=rice with a fixed text, namely 'Rice Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "rice" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "scuba_diving" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "seafood" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=second_hand with a fixed text, namely 'Thrift Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "second_hand" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "sewing" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "shoe_repair" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "shoes" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "spices" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "sports" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "stationery" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "storage_rental" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "supermarket" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "swimming_pool" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "tailor" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "tattoo" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "tea" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "telecommunication" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "ticket" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "tiles" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "tobacco" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "tool_hire" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "toys" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "trade" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "travel_agency" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "trophy" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "tyres" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "vacuum_cleaner" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=variety_store with a fixed text, namely 'Discount Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "variety_store" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "video" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "video_games" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "watches" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "water" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "water_sports" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "weapons" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "wholesale" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "wigs" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "window_blind" - }, - { - "key": "shop", - "description": "Layer 'Bike repair/shop' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if craft=)", - "value": "wine" - }, { "key": "brand", "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'brand' (in the mapcomplete.org theme 'Personal theme')" @@ -3936,83 +3112,6 @@ "description": "Layer 'Bike repair/shop' shows service:bicycle:rental=no with a fixed text, namely 'This shop doesn't rent out bikes' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if service:bicycle:rental~.+ | shop=bicycle | shop=sport | shop=bicycle_repair | shop=outdoor | shop=rental)", "value": "no" }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'rental' (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=city_bike with a fixed text, namely 'Normal city bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "city_bike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=ebike with a fixed text, namely 'Electrical bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "ebike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=bmx with a fixed text, namely 'BMX bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "bmx" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=mtb with a fixed text, namely 'Mountainbikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "mtb" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=kid_bike with a fixed text, namely 'Bikes for children can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "kid_bike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=tandem with a fixed text, namely 'Tandem bicycles can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "tandem" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=racebike with a fixed text, namely 'Race bicycles can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "racebike" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=bike_helmet with a fixed text, namely 'Bike helmets can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "bike_helmet" - }, - { - "key": "rental", - "description": "Layer 'Bike repair/shop' shows rental=cargo_bike with a fixed text, namely 'Cargo bikes can be rented here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if (service:bicycle:rental=yes | bicycle_rental~.+))", - "value": "cargo_bike" - }, - { - "key": "capacity:city_bike", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:city_bike' (in the mapcomplete.org theme 'Personal theme') (This is only shown if rental~^(.*city_bike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:ebike", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:ebike' (in the mapcomplete.org theme 'Personal theme') (This is only shown if rental~^(.*ebike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:kid_bike", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:kid_bike' (in the mapcomplete.org theme 'Personal theme') (This is only shown if rental~^(.*kid_bike.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:bmx", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bmx' (in the mapcomplete.org theme 'Personal theme') (This is only shown if rental~^(.*bmx.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:mtb", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:mtb' (in the mapcomplete.org theme 'Personal theme') (This is only shown if rental~^(.*mtb.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:bicycle_pannier", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:bicycle_pannier' (in the mapcomplete.org theme 'Personal theme') (This is only shown if rental~^(.*bicycle_pannier.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, - { - "key": "capacity:tandem_bicycle", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'capacity:tandem_bicycle' (in the mapcomplete.org theme 'Personal theme') (This is only shown if rental~^(.*tandem_bicycle.*)$ & (service:bicycle:rental=yes | bicycle_rental~.+))" - }, { "key": "service:bicycle:pump", "description": "Layer 'Bike repair/shop' shows service:bicycle:pump=yes with a fixed text, namely 'This shop offers a bike pump for anyone' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if service:bicycle:pump~.+ | shop=bicycle | shop=bicycle_repair | service:bicycle:retail=yes | ^(service:bicycle:.+)$~~^(yes)$)", @@ -4058,25 +3157,6 @@ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning=no with a fixed text, namely 'This shop doesn't offer bicycle cleaning' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if service:bicycle:cleaning~.+ | shop=bicycle | shop=bicycle_repair | ^(service:bicycle:.*)$~~^(yes|only)$)", "value": "no" }, - { - "key": "service:bicycle:cleaning:charge", - "description": "Layer 'Bike repair/shop' shows and asks freeform values for key 'service:bicycle:cleaning:charge' (in the mapcomplete.org theme 'Personal theme') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)" - }, - { - "key": "service:bicycle:cleaning:fee", - "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)", - "value": "no" - }, - { - "key": "service:bicycle:cleaning:fee", - "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Personal theme') (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)", - "value": "yes" - }, - { - "key": "service:bicycle:cleaning:charge", - "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge= with a fixed text, namely 'Free to use' (in the mapcomplete.org theme 'Personal theme') Picking this answer will delete the key service:bicycle:cleaning:charge. (This is only shown if amenity!=bike_wash & amenity!=bicycle_wash & service:bicycle:cleaning!=no & service:bicycle:cleaning~.+)", - "value": "" - }, { "key": "internet_access", "description": "Layer 'Bike repair/shop' shows internet_access=wlan with a fixed text, namely 'This place offers wireless internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", diff --git a/Docs/wikiIndex.txt b/Docs/wikiIndex.txt index 2d7e141475..ae9d145582 100644 --- a/Docs/wikiIndex.txt +++ b/Docs/wikiIndex.txt @@ -20,15 +20,6 @@ |genre= POI, editor, cyclofix }} {{service_item -|name= [https://mapcomplete.org/waste waste] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}} -|descr= A MapComplete theme: Map showing waste baskets and recycling facilities -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, waste -}} -{{service_item |name= [https://mapcomplete.org/etymology etymology] |region= Worldwide |lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:fr|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} @@ -38,6 +29,15 @@ |genre= POI, editor, etymology }} {{service_item +|name= [https://mapcomplete.org/waste waste] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}} +|descr= A MapComplete theme: Map showing waste baskets and recycling facilities +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, waste +}} +{{service_item |name= [https://mapcomplete.org/food food] |region= Worldwide |lang= {{#language:nl|en}}, {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:nb_NO|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:pl|en}}, {{#language:it|en}} @@ -65,40 +65,31 @@ |genre= POI, editor, shops }} {{service_item -|name= [https://mapcomplete.org/playgrounds playgrounds] +|name= [https://mapcomplete.org/healthcare healthcare] |region= Worldwide -|lang= {{#language:nl|en}}, {{#language:en|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:nb_NO|en}}, {{#language:id|en}}, {{#language:hu|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} -|descr= A MapComplete theme: A map with playgrounds +|lang= {{#language:en|en}}, {{#language:ca|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:pl|en}}, {{#language:it|en}} +|descr= A MapComplete theme: On this map, various healthcare related items are shown |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png -|genre= POI, editor, playgrounds +|genre= POI, editor, healthcare }} {{service_item -|name= [https://mapcomplete.org/hailhydrant hailhydrant] +|name= [https://mapcomplete.org/sports sports] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:fr|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} -|descr= A MapComplete theme: Map to show hydrants, extinguishers, fire stations, and ambulance stations. +|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:it|en}} +|descr= A MapComplete theme: Map showing sport facilities. |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png -|genre= POI, editor, hailhydrant +|genre= POI, editor, sports }} {{service_item -|name= [https://mapcomplete.org/toilets toilets] +|name= [https://mapcomplete.org/artwork artwork] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}} -|descr= A MapComplete theme: A map of public toilets +|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:de|en}}, {{#language:id|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:es|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:pl|en}}, {{#language:ca|en}}, {{#language:zh_Hans|en}}, {{#language:fil|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:zgh|en}}, {{#language:eu|en}}, {{#language:pt_BR|en}}, {{#language:pt|en}} +|descr= A MapComplete theme: An open map of statues, busts, graffitis and other artwork all over the world |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png -|genre= POI, editor, toilets -}} -{{service_item -|name= [https://mapcomplete.org/aed aed] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:id|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:sv|en}}, {{#language:pl|en}}, {{#language:pt_BR|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:sl|en}}, {{#language:zh_Hans|en}}, {{#language:da|en}}, {{#language:fil|en}}, {{#language:cs|en}}, {{#language:zgh|en}}, {{#language:eu|en}}, {{#language:pt|en}} -|descr= A MapComplete theme: On this map, one can find and mark nearby defibrillators -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, aed +|genre= POI, editor, artwork }} {{service_item |name= [https://mapcomplete.org/bookcases bookcases] @@ -110,6 +101,78 @@ |genre= POI, editor, bookcases }} {{service_item +|name= [https://mapcomplete.org/playgrounds playgrounds] +|region= Worldwide +|lang= {{#language:nl|en}}, {{#language:en|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:nb_NO|en}}, {{#language:id|en}}, {{#language:hu|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} +|descr= A MapComplete theme: A map with playgrounds +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, playgrounds +}} +{{service_item +|name= [https://mapcomplete.org/drinking_water drinking_water] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} +|descr= A MapComplete theme: On this map, publicly accessible drinking water spots are shown and can be easily added +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, drinking_water +}} +{{service_item +|name= [https://mapcomplete.org/toilets toilets] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}} +|descr= A MapComplete theme: A map of public toilets +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, toilets +}} +{{service_item +|name= [https://mapcomplete.org/vending_machine vending_machine] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:pl|en}}, {{#language:it|en}} +|descr= A MapComplete theme: Find vending machines for everything +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, vending_machine +}} +{{service_item +|name= [https://mapcomplete.org/aed aed] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:id|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:sv|en}}, {{#language:pl|en}}, {{#language:pt_BR|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:sl|en}}, {{#language:zh_Hans|en}}, {{#language:da|en}}, {{#language:fil|en}}, {{#language:cs|en}}, {{#language:zgh|en}}, {{#language:eu|en}}, {{#language:pt|en}} +|descr= A MapComplete theme: On this map, one can find and mark nearby defibrillators +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, aed +}} +{{service_item +|name= [https://mapcomplete.org/clock clock] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:fr|en}}, {{#language:pl|en}}, {{#language:da|en}}, {{#language:it|en}} +|descr= A MapComplete theme: Map showing all public clocks +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, clock +}} +{{service_item +|name= [https://mapcomplete.org/charging_stations charging_stations] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:it|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:nb_NO|en}}, {{#language:ru|en}}, {{#language:hu|en}}, {{#language:fr|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:eu|en}}, {{#language:pl|en}} +|descr= A MapComplete theme: A worldwide map of charging stations +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, charging_stations +}} +{{service_item +|name= [https://mapcomplete.org/surveillance surveillance] +|region= Worldwide +|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:fr|en}}, {{#language:pl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:da|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}} +|descr= A MapComplete theme: Surveillance cameras and other means of surveillance +|material= {{yes|[https://mapcomplete.org/ Yes]}} +|image= MapComplete_Screenshot.png +|genre= POI, editor, surveillance +}} +{{service_item |name= [https://mapcomplete.org/advertising advertising] |region= Worldwide |lang= {{#language:ca|en}}, {{#language:es|en}}, {{#language:en|en}}, {{#language:de|en}}, {{#language:cs|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:zh_Hant|en}}, {{#language:eu|en}}, {{#language:pl|en}}, {{#language:zh_Hans|en}} @@ -119,13 +182,13 @@ |genre= POI, editor, advertising }} {{service_item -|name= [https://mapcomplete.org/artwork artwork] +|name= [https://mapcomplete.org/circular_economy circular_economy] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:de|en}}, {{#language:id|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:es|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:pl|en}}, {{#language:ca|en}}, {{#language:zh_Hans|en}}, {{#language:fil|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:zgh|en}}, {{#language:eu|en}}, {{#language:pt_BR|en}}, {{#language:pt|en}} -|descr= A MapComplete theme: An open map of statues, busts, graffitis and other artwork all over the world +|lang= {{#language:en|en}}, {{#language:es|en}}, {{#language:de|en}}, {{#language:ca|en}}, {{#language:cs|en}} +|descr= A MapComplete theme: Various items which help people to share, reuse or recycle |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png -|genre= POI, editor, artwork +|genre= POI, editor, circular_economy }} {{service_item |name= [https://mapcomplete.org/atm atm] @@ -139,7 +202,7 @@ {{service_item |name= [https://mapcomplete.org/benches benches] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:nb_NO|en}}, {{#language:pt_BR|en}}, {{#language:hu|en}}, {{#language:id|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:zh_Hans|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:eu|en}}, {{#language:pl|en}}, {{#language:pt|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:nb_NO|en}}, {{#language:pt_BR|en}}, {{#language:hu|en}}, {{#language:id|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:zh_Hans|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:eu|en}}, {{#language:pl|en}}, {{#language:pt|en}}, {{#language:fil|en}} |descr= A MapComplete theme: A map of benches |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -148,7 +211,7 @@ {{service_item |name= [https://mapcomplete.org/bicycle_parkings bicycle_parkings] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:zh_Hans|en}}, {{#language:it|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:zh_Hans|en}}, {{#language:it|en}}, {{#language:fil|en}}, {{#language:ca|en}}, {{#language:cs|en}} |descr= A MapComplete theme: A map showing all types of bicycle parkings |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -200,24 +263,6 @@ |genre= POI, editor, campersite }} {{service_item -|name= [https://mapcomplete.org/charging_stations charging_stations] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:it|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:nb_NO|en}}, {{#language:ru|en}}, {{#language:hu|en}}, {{#language:fr|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:eu|en}}, {{#language:pl|en}} -|descr= A MapComplete theme: A worldwide map of charging stations -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, charging_stations -}} -{{service_item -|name= [https://mapcomplete.org/circular_economy circular_economy] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:es|en}}, {{#language:de|en}} -|descr= A MapComplete theme: Various items which help people to share, reuse or recycle -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, circular_economy -}} -{{service_item |name= [https://mapcomplete.org/climbing climbing] |region= Worldwide |lang= {{#language:nl|en}}, {{#language:de|en}}, {{#language:en|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:pl|en}} @@ -227,15 +272,6 @@ |genre= POI, editor, climbing }} {{service_item -|name= [https://mapcomplete.org/clock clock] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:fr|en}}, {{#language:pl|en}}, {{#language:da|en}}, {{#language:it|en}} -|descr= A MapComplete theme: Map showing all public clocks -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, clock -}} -{{service_item |name= [https://mapcomplete.org/cycle_infra cycle_infra] |region= Worldwide |lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:nb_NO|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} @@ -256,22 +292,13 @@ {{service_item |name= [https://mapcomplete.org/disaster_response disaster_response] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:it|en}}, {{#language:de|en}}, {{#language:es|en}} +|lang= {{#language:en|en}}, {{#language:it|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}} |descr= A MapComplete theme: This map contains elements meant for disaster preparedness and response |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png |genre= POI, editor, disaster_response }} {{service_item -|name= [https://mapcomplete.org/drinking_water drinking_water] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:it|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} -|descr= A MapComplete theme: On this map, publicly accessible drinking water spots are shown and can be easily added -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, drinking_water -}} -{{service_item |name= [https://mapcomplete.org/education education] |region= Worldwide |lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:pl|en}}, {{#language:it|en}} @@ -301,7 +328,7 @@ {{service_item |name= [https://mapcomplete.org/fireplace fireplace] |region= Worldwide -|lang= {{#language:de|en}}, {{#language:en|en}}, {{#language:es|en}} +|lang= {{#language:de|en}}, {{#language:en|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}} |descr= A MapComplete theme: Outdoor place to make a fire or a fixed barbecue in an official place |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -328,7 +355,7 @@ {{service_item |name= [https://mapcomplete.org/ghostsigns ghostsigns] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}} |descr= A MapComplete theme: A map showing disused signs on buildings |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -337,7 +364,7 @@ {{service_item |name= [https://mapcomplete.org/glutenfree glutenfree] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}} |descr= A MapComplete theme: A crowdsourced map with glutenfree items |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -364,13 +391,13 @@ The position of a signpost can be used by a hiker/biker/rider/s… |genre= POI, editor, hackerspaces }} {{service_item -|name= [https://mapcomplete.org/healthcare healthcare] +|name= [https://mapcomplete.org/hailhydrant hailhydrant] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:ca|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:pl|en}}, {{#language:it|en}} -|descr= A MapComplete theme: On this map, various healthcare related items are shown +|lang= {{#language:en|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:fr|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:pl|en}} +|descr= A MapComplete theme: Map to show hydrants, extinguishers, fire stations, and ambulance stations. |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png -|genre= POI, editor, healthcare +|genre= POI, editor, hailhydrant }} {{service_item |name= [https://mapcomplete.org/hotels hotels] @@ -411,7 +438,7 @@ The position of a signpost can be used by a hiker/biker/rider/s… {{service_item |name= [https://mapcomplete.org/lactosefree lactosefree] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}} |descr= A MapComplete theme: A crowdsourced map with lactose free shops and restaurants |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -420,7 +447,7 @@ The position of a signpost can be used by a hiker/biker/rider/s… {{service_item |name= [https://mapcomplete.org/lighthouses lighthouses] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:cs|en}} |descr= A MapComplete theme: Lighthouses are tall buildings with a light on top to guide marine traffic |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -562,15 +589,6 @@ The position of a signpost can be used by a hiker/biker/rider/s… |genre= POI, editor, sport_pitches }} {{service_item -|name= [https://mapcomplete.org/sports sports] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:it|en}} -|descr= A MapComplete theme: Map showing sport facilities. -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, sports -}} -{{service_item |name= [https://mapcomplete.org/street_lighting street_lighting] |region= Worldwide |lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:nb_NO|en}}, {{#language:cs|en}}, {{#language:pl|en}}, {{#language:it|en}} @@ -580,15 +598,6 @@ The position of a signpost can be used by a hiker/biker/rider/s… |genre= POI, editor, street_lighting }} {{service_item -|name= [https://mapcomplete.org/surveillance surveillance] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:fr|en}}, {{#language:pl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:da|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}} -|descr= A MapComplete theme: Surveillance cameras and other means of surveillance -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, surveillance -}} -{{service_item |name= [https://mapcomplete.org/transit transit] |region= Worldwide |lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}} @@ -607,15 +616,6 @@ The position of a signpost can be used by a hiker/biker/rider/s… |genre= POI, editor, trees }} {{service_item -|name= [https://mapcomplete.org/vending_machine vending_machine] -|region= Worldwide -|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:pl|en}}, {{#language:it|en}} -|descr= A MapComplete theme: Find vending machines for everything -|material= {{yes|[https://mapcomplete.org/ Yes]}} -|image= MapComplete_Screenshot.png -|genre= POI, editor, vending_machine -}} -{{service_item |name= [https://mapcomplete.org/waste_basket waste_basket] |region= Worldwide |lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:fr|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}, {{#language:pl|en}} diff --git a/langs/cs.json b/langs/cs.json index 7456c1fdcd..926b9e4bfd 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -890,4 +890,4 @@ "startsWithQ": "Identifikátor wikidat začíná písmenem Q a následuje za ním číslo" } } -} +} \ No newline at end of file diff --git a/langs/de.json b/langs/de.json index 1295b6add9..f1d35b8ed5 100644 --- a/langs/de.json +++ b/langs/de.json @@ -874,4 +874,4 @@ "startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt" } } -} +} \ No newline at end of file diff --git a/langs/layers/cs.json b/langs/layers/cs.json index da0343527d..cc08bcf670 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -9702,4 +9702,4 @@ "render": "větrná turbína" } } -} +} \ No newline at end of file diff --git a/langs/layers/fr.json b/langs/layers/fr.json index a2ec498c74..0889b71722 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -7558,4 +7558,4 @@ "render": "éolienne" } } -} +} \ No newline at end of file diff --git a/langs/themes/cs.json b/langs/themes/cs.json index fcb26a2c62..543c2f1bda 100644 --- a/langs/themes/cs.json +++ b/langs/themes/cs.json @@ -1275,4 +1275,4 @@ "shortDescription": "Mapa odpadkových košů", "title": "Odpadkový koš" } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 5167250ca9..4e3beb2ef0 100644 --- a/package.json +++ b/package.json @@ -123,9 +123,9 @@ "optimize-images-png": "cd assets/generated/ && find -name '*.png' -exec optipng '{}' \\; && echo 'PNGs are optimized'", "optimize-images-jpg": "cd assets/ && find . -regextype sed -regex \".*/.*.\\(jpg\\|JPG\\|JPEG\\|jpeg\\)\" -exec jpegoptim '{}' \\; && echo 'JPGs are optimized'", "optimize-images-scaledown-jpg": "cd assets/ && find . -regextype sed -regex \".*/.*.\\(jpg\\|JPG\\|JPEG\\|jpeg\\)\" -exec mogrify -resize 640x640\\> '{}' \\; && echo 'JPGs are optimized'", - "generate:schemas": "ts2json-schema -p src/Models/ThemeConfig/Json/ -o Docs/Schemas/ -t tsconfig.json -R . -m \".*ConfigJson\" && echo 'tsjson is done' && vite-node scripts/fixSchemas.ts ", + "generate:schemas": "export NODE_OPTIONS=\"--max-old-space-size=8192\" && ts2json-schema -p src/Models/ThemeConfig/Json/ -o Docs/Schemas/ -t tsconfig.json -R . -m \".*ConfigJson\" && echo 'tsjson is done' && vite-node scripts/fixSchemas.ts ", "reuse-compliance": "reuse lint", - "housekeeping": "git pull && npx update-browserslist-db@latest && npm run weblate:merge-heavy && npm run generate && npm run generate:docs && npm run generate:schemas && npm run generate:contributor-list && vite-node scripts/fetchLanguages.ts && vite-node scripts/generateSunnyUnlabeled.ts && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* src/* && git commit -m 'chore: automated housekeeping...'", + "housekeeping": "export NODE_OPTIONS=\"--max-old-space-size=1200\" && git pull && npx update-browserslist-db@latest && npm run weblate:merge-heavy && npm run generate && npm run generate:docs && npm run generate:schemas && npm run generate:contributor-list && vite-node scripts/fetchLanguages.ts && vite-node scripts/generateSunnyUnlabeled.ts && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* src/* && git commit -m 'chore: automated housekeeping...'", "###": "MICROSERVICES AND SERVER MAINTAINENCE", "release": "standard-version && git push --follow-tags", "release:minor": "standard-version --release-as minor", diff --git a/scripts/fixSchemas.ts b/scripts/fixSchemas.ts index 42fb0f843a..0a38b95193 100644 --- a/scripts/fixSchemas.ts +++ b/scripts/fixSchemas.ts @@ -362,6 +362,7 @@ function main() { for (const path of allSchemas) { const dir = path.substring(0, path.lastIndexOf("/")) const name = path.substring(path.lastIndexOf("/"), path.length - "JSC.ts".length) + console.log("Trying to read", path) let content = readFileSync(path, { encoding: "utf8" }) content = content.substring("export default ".length) let parsed = JSON.parse(content) diff --git a/scripts/generateDocs.ts b/scripts/generateDocs.ts index 2daa8ff26a..8e5330dd07 100644 --- a/scripts/generateDocs.ts +++ b/scripts/generateDocs.ts @@ -86,7 +86,7 @@ class WikiPageGenerator { "! Name, link !! Genre !! Covered region !! Language !! Description !! Free materials !! Image\n" + "|-" - for (const layout of themeOverview) { + for (const layout of themeOverview.themes) { if (layout.hideFromOverview) { continue } diff --git a/src/assets/schemas/layerconfigmeta.json b/src/assets/schemas/layerconfigmeta.json index 382725e367..16dc9fded7 100644 --- a/src/assets/schemas/layerconfigmeta.json +++ b/src/assets/schemas/layerconfigmeta.json @@ -58,6 +58,17 @@ ], "description": "A description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature." }, + { + "path": [ + "searchTerms" + ], + "required": false, + "hints": { + "question": "What are some other terms used to describe these objects?" + }, + "type": "object", + "description": "This is used in the search functionality" + }, { "path": [ "source" @@ -552,10 +563,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -1043,7 +1064,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -1607,7 +1641,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -1698,6 +1745,11 @@ "then": "addSmall", "icon": "addSmall" }, + { + "if": "value=airport", + "then": "airport", + "icon": "airport" + }, { "if": "value=brick_wall_round", "then": "brick_wall_round", @@ -1708,6 +1760,16 @@ "then": "brick_wall_square", "icon": "brick_wall_square" }, + { + "if": "value=building_office_2", + "then": "building_office_2", + "icon": "building_office_2" + }, + { + "if": "value=building_storefront", + "then": "building_storefront", + "icon": "building_storefront" + }, { "if": "value=bug", "then": "bug", @@ -1778,6 +1840,11 @@ "then": "gear", "icon": "gear" }, + { + "if": "value=globe_alt", + "then": "globe_alt", + "icon": "globe_alt" + }, { "if": "value=gps_arrow", "then": "gps_arrow", @@ -1808,6 +1875,11 @@ "then": "home", "icon": "home" }, + { + "if": "value=house", + "then": "house", + "icon": "house" + }, { "if": "value=key", "then": "key", @@ -1913,11 +1985,21 @@ "then": "teardrop_with_hole_green", "icon": "teardrop_with_hole_green" }, + { + "if": "value=train", + "then": "train", + "icon": "train" + }, { "if": "value=triangle", "then": "triangle", "icon": "triangle" }, + { + "if": "value=user_circle", + "then": "user_circle", + "icon": "user_circle" + }, { "if": "value=wifi", "then": "wifi", @@ -2552,10 +2634,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -3064,7 +3156,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -3272,10 +3377,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -3784,7 +3899,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -3989,10 +4117,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -4501,7 +4639,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -4689,10 +4840,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -5201,7 +5362,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -5390,10 +5564,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -5902,7 +6086,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -6096,10 +6293,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -6608,7 +6815,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -6797,10 +7017,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -7309,7 +7539,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -7498,10 +7741,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -8010,7 +8263,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -8207,10 +8473,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -8723,7 +8999,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -8920,10 +9209,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -9436,7 +9735,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -10383,6 +10695,10 @@ "if": "value=bench_at_pt", "then": "bench_at_pt - A layer showing all public-transport-stops which do have a bench" }, + { + "if": "value=bicycle_counter", + "then": "bicycle_counter - Layer showing monitoring stations for bicycle traffic" + }, { "if": "value=bicycle_library", "then": "bicycle_library - A facility where bicycles can be lent for longer period of times" @@ -10583,10 +10899,18 @@ "if": "value=food_courts", "then": "food_courts - Food courts with a variety of food options." }, + { + "if": "value=geocoded_image", + "then": "geocoded_image - undefined" + }, { "if": "value=ghost_bike", "then": "ghost_bike - A layer showing memorials for cyclists, killed in road accidents" }, + { + "if": "value=ghostsign", + "then": "ghostsign - Layer showing disused signs on buildings" + }, { "if": "value=governments", "then": "governments - This layer show governmental buildings. It was setup as commissioned layer for the client of OSOC '22" @@ -10767,6 +11091,10 @@ "if": "value=playground_equipment", "then": "playground_equipment - Layer showing playground equipment" }, + { + "if": "value=police", + "then": "police - Many types of police facilities " + }, { "if": "value=postboxes", "then": "postboxes - The layer showing postboxes." @@ -10811,6 +11139,10 @@ "if": "value=school", "then": "school - Schools giving primary and secondary education and post-secondary, non-tertiary education. Note that this level of education does not imply an age of the pupiles" }, + { + "if": "value=search", + "then": "search - Priviliged layer showing the search results" + }, { "if": "value=selected_element", "then": "selected_element - Highlights the currently selected element. Override this layer to have different colors" @@ -11125,7 +11457,7 @@ ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -11237,10 +11569,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "required": [ @@ -11991,6 +12333,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -12251,7 +12597,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -12578,7 +12924,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -13297,6 +13656,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -13570,7 +13933,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -13910,7 +14273,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -14650,6 +15026,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -14923,7 +15303,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -15263,7 +15643,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -16007,6 +16400,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -16293,7 +16690,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -16646,7 +17043,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -17365,6 +17775,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -17638,7 +18052,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -17978,7 +18392,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -18722,6 +19149,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -19008,7 +19439,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -19361,7 +19792,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -19398,7 +19842,7 @@ ] } ], - "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one." + "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\nNote: adding \"#filter\":\"no-auto\" will disable the filters added by tagRenderings" }, { "path": [ @@ -19535,6 +19979,15 @@ "type": "string", "description": "Used for comments or to disable a check\n\"ignore-possible-duplicate\": disables a check in `DetectDuplicateFilters` which complains that a filter can be replaced by a filter from the `filters`-library-layer" }, + { + "path": [ + "#filter" + ], + "required": false, + "hints": {}, + "type": "string", + "description": "Set this to disable the feature that tagRenderings can introduce filters" + }, { "path": [ "deletion" @@ -20223,5 +20676,24 @@ }, "type": "boolean", "description": "When a changeset is made, a 'distance to object'-class is written to the changeset.\nFor some particular themes and layers, this might leak too much information, and we want to obfuscate this" + }, + { + "path": [ + "snapName" + ], + "required": false, + "hints": { + "group": "hidden", + "question": "When a feature is snapped to this name, how should this item be called?" + }, + "type": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ], + "description": "In the move wizard, the option `snap object onto {snapName}` is shown" } ] \ No newline at end of file diff --git a/src/assets/schemas/layoutconfigmeta.json b/src/assets/schemas/layoutconfigmeta.json index 4a133d5f8d..06d06418e5 100644 --- a/src/assets/schemas/layoutconfigmeta.json +++ b/src/assets/schemas/layoutconfigmeta.json @@ -117,6 +117,11 @@ "then": "addSmall", "icon": "addSmall" }, + { + "if": "value=airport", + "then": "airport", + "icon": "airport" + }, { "if": "value=brick_wall_round", "then": "brick_wall_round", @@ -127,6 +132,16 @@ "then": "brick_wall_square", "icon": "brick_wall_square" }, + { + "if": "value=building_office_2", + "then": "building_office_2", + "icon": "building_office_2" + }, + { + "if": "value=building_storefront", + "then": "building_storefront", + "icon": "building_storefront" + }, { "if": "value=bug", "then": "bug", @@ -197,6 +212,11 @@ "then": "gear", "icon": "gear" }, + { + "if": "value=globe_alt", + "then": "globe_alt", + "icon": "globe_alt" + }, { "if": "value=gps_arrow", "then": "gps_arrow", @@ -227,6 +247,11 @@ "then": "home", "icon": "home" }, + { + "if": "value=house", + "then": "house", + "icon": "house" + }, { "if": "value=key", "then": "key", @@ -332,11 +357,21 @@ "then": "teardrop_with_hole_green", "icon": "teardrop_with_hole_green" }, + { + "if": "value=train", + "then": "train", + "icon": "train" + }, { "if": "value=triangle", "then": "triangle", "icon": "triangle" }, + { + "if": "value=user_circle", + "then": "user_circle", + "icon": "user_circle" + }, { "if": "value=wifi", "then": "wifi", @@ -612,6 +647,10 @@ "if": "value=bench_at_pt", "then": "bench_at_pt (builtin) - A layer showing all public-transport-stops which do have a bench" }, + { + "if": "value=bicycle_counter", + "then": "bicycle_counter (builtin) - Layer showing monitoring stations for bicycle traffic" + }, { "if": "value=bicycle_library", "then": "bicycle_library (builtin) - A facility where bicycles can be lent for longer period of times" @@ -812,10 +851,18 @@ "if": "value=food_courts", "then": "food_courts (builtin) - Food courts with a variety of food options." }, + { + "if": "value=geocoded_image", + "then": "geocoded_image (builtin) - undefined" + }, { "if": "value=ghost_bike", "then": "ghost_bike (builtin) - A layer showing memorials for cyclists, killed in road accidents" }, + { + "if": "value=ghostsign", + "then": "ghostsign (builtin) - Layer showing disused signs on buildings" + }, { "if": "value=governments", "then": "governments (builtin) - This layer show governmental buildings. It was setup as commissioned layer for the client of OSOC '22" @@ -996,6 +1043,10 @@ "if": "value=playground_equipment", "then": "playground_equipment (builtin) - Layer showing playground equipment" }, + { + "if": "value=police", + "then": "police (builtin) - Many types of police facilities " + }, { "if": "value=postboxes", "then": "postboxes (builtin) - The layer showing postboxes." @@ -1040,6 +1091,10 @@ "if": "value=school", "then": "school (builtin) - Schools giving primary and secondary education and post-secondary, non-tertiary education. Note that this level of education does not imply an age of the pupiles" }, + { + "if": "value=search", + "then": "search (builtin) - Priviliged layer showing the search results" + }, { "if": "value=selected_element", "then": "selected_element (builtin) - Highlights the currently selected element. Override this layer to have different colors" @@ -1232,7 +1287,7 @@ ] }, "description": { - "description": "A description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic\nquestion: How would you describe the features that are shown on this layer?", + "description": "question: How would you describe the features that are shown on this layer?\n\nA description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature.\n\ngroup: Basic", "anyOf": [ { "$ref": "#/definitions/Record" @@ -1242,6 +1297,10 @@ } ] }, + "searchTerms": { + "description": "question: What are some other terms used to describe these objects?\n\nThis is used in the search functionality", + "$ref": "#/definitions/Record" + }, "source": { "description": "Question: Where should the data be fetched from?\ntitle: Data Source\n\nThis determines where the data for the layer is fetched: from OSM or from an external geojson dataset.\n\nIf no 'geojson' is defined, data will be fetched from overpass and the OSM-API.\n\nEvery source _must_ define which tags _must_ be present in order to be picked up.\n\nNote: a source must always be defined. 'special' is only allowed if this is a builtin-layer\n\ntypes: Load data with specific tags from OpenStreetMap ; Load data from an external geojson source ;\ntypesdefault: 0\nifunset: Determine the tags automatically based on the presets\ngroup: Basic", "anyOf": [ @@ -1505,10 +1564,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -1775,7 +1844,7 @@ ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -1887,10 +1956,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "required": [ @@ -1951,7 +2030,7 @@ } }, "filter": { - "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\n\ngroup: filters", + "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\n\nNote: adding \"#filter\":\"no-auto\" will disable the filters added by tagRenderings\n\ngroup: filters", "anyOf": [ { "type": "array", @@ -1979,6 +2058,13 @@ } ] }, + "#filter": { + "description": "Set this to disable the feature that tagRenderings can introduce filters", + "enum": [ + "no-auto" + ], + "type": "string" + }, "deletion": { "description": "This block defines under what circumstances the delete dialog is shown for objects of this layer.\nIf set, a dialog is shown to the user to (soft) delete the point.\nThe dialog is built to be user friendly and to prevent mistakes.\nIf deletion is not possible, the dialog will hide itself and show the reason of non-deletability instead.\n\nTo configure, the following values are possible:\n\n- false: never ever show the delete button\n- true: show the default delete button\n- undefined: use the mapcomplete default to show deletion or not. Currently, this is the same as 'false' but this will change in the future\n- or: a hash with options (see below)\n\n### The delete dialog\n\n\n\n#### Hard deletion if enough experience\n\nA feature can only be deleted from OpenStreetMap by mapcomplete if:\n\n- It is a node\n- No ways or relations use the node\n- The logged-in user has enough experience OR the user is the only one to have edited the point previously\n- The logged-in user has no unread messages (or has a ton of experience)\n- The user did not select one of the 'non-delete-options' (see below)\n\nIn all other cases, a 'soft deletion' is used.\n\n#### Soft deletion\n\nA 'soft deletion' is when the point isn't deleted fromOSM but retagged so that it'll won't how up in the mapcomplete theme anymore.\nThis makes it look like it was deleted, without doing damage. A fixme will be added to the point.\n\nNote that a soft deletion is _only_ possible if these tags are provided by the theme creator, as they'll be different for every theme\n\n##### No-delete options\n\nIn some cases, the contributor might want to delete something for the wrong reason (e.g. someone who wants to have a path removed \"because the path is on their private property\").\nHowever, the path exists in reality and should thus be on OSM - otherwise the next contributor will pass by and notice \"hey, there is a path missing here! Let me redraw it in OSM!)\n\nThe correct approach is to retag the feature in such a way that it is semantically correct *and* that it doesn't show up on the theme anymore.\nA no-delete option is offered as 'reason to delete it', but secretly retags.\n\ngroup: editing\ntypes: Use an advanced delete configuration ; boolean\niftrue: Allow deletion\niffalse: Do not allow deletion\nifunset: Do not allow deletion", "anyOf": [ @@ -2167,6 +2253,17 @@ "enableMorePrivacy": { "description": "question: Should a theme using this layer leak some location info when making changes?\n\nWhen a changeset is made, a 'distance to object'-class is written to the changeset.\nFor some particular themes and layers, this might leak too much information, and we want to obfuscate this\n\nifunset: Write 'change_within_x_m' as usual and if GPS is enabled\niftrue: Do not write 'change_within_x_m' and do not indicate that this was done by survey", "type": "boolean" + }, + "snapName": { + "description": "question: When a feature is snapped to this name, how should this item be called?\n\nIn the move wizard, the option `snap object onto {snapName}` is shown\n\ngroup: hidden", + "anyOf": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ] } }, "required": [ @@ -2268,6 +2365,18 @@ ], "description": "A description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature." }, + { + "path": [ + "layers", + "searchTerms" + ], + "required": false, + "hints": { + "question": "What are some other terms used to describe these objects?" + }, + "type": "object", + "description": "This is used in the search functionality" + }, { "path": [ "layers", @@ -2777,10 +2886,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -3289,7 +3408,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -3877,7 +4009,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -3973,6 +4118,11 @@ "then": "addSmall", "icon": "addSmall" }, + { + "if": "value=airport", + "then": "airport", + "icon": "airport" + }, { "if": "value=brick_wall_round", "then": "brick_wall_round", @@ -3983,6 +4133,16 @@ "then": "brick_wall_square", "icon": "brick_wall_square" }, + { + "if": "value=building_office_2", + "then": "building_office_2", + "icon": "building_office_2" + }, + { + "if": "value=building_storefront", + "then": "building_storefront", + "icon": "building_storefront" + }, { "if": "value=bug", "then": "bug", @@ -4053,6 +4213,11 @@ "then": "gear", "icon": "gear" }, + { + "if": "value=globe_alt", + "then": "globe_alt", + "icon": "globe_alt" + }, { "if": "value=gps_arrow", "then": "gps_arrow", @@ -4083,6 +4248,11 @@ "then": "home", "icon": "home" }, + { + "if": "value=house", + "then": "house", + "icon": "house" + }, { "if": "value=key", "then": "key", @@ -4188,11 +4358,21 @@ "then": "teardrop_with_hole_green", "icon": "teardrop_with_hole_green" }, + { + "if": "value=train", + "then": "train", + "icon": "train" + }, { "if": "value=triangle", "then": "triangle", "icon": "triangle" }, + { + "if": "value=user_circle", + "then": "user_circle", + "icon": "user_circle" + }, { "if": "value=wifi", "then": "wifi", @@ -4844,10 +5024,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -5377,7 +5567,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -5586,10 +5789,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -6119,7 +6332,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -6325,10 +6551,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -6858,7 +7094,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -7047,10 +7296,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -7580,7 +7839,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -7770,10 +8042,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -8303,7 +8585,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -8498,10 +8793,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -9031,7 +9336,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -9221,10 +9539,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -9754,7 +10082,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -9944,10 +10285,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -10477,7 +10828,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -10675,10 +11039,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -11212,7 +11586,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -11410,10 +11797,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -11947,7 +12344,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -12933,6 +13343,10 @@ "if": "value=bench_at_pt", "then": "bench_at_pt - A layer showing all public-transport-stops which do have a bench" }, + { + "if": "value=bicycle_counter", + "then": "bicycle_counter - Layer showing monitoring stations for bicycle traffic" + }, { "if": "value=bicycle_library", "then": "bicycle_library - A facility where bicycles can be lent for longer period of times" @@ -13133,10 +13547,18 @@ "if": "value=food_courts", "then": "food_courts - Food courts with a variety of food options." }, + { + "if": "value=geocoded_image", + "then": "geocoded_image - undefined" + }, { "if": "value=ghost_bike", "then": "ghost_bike - A layer showing memorials for cyclists, killed in road accidents" }, + { + "if": "value=ghostsign", + "then": "ghostsign - Layer showing disused signs on buildings" + }, { "if": "value=governments", "then": "governments - This layer show governmental buildings. It was setup as commissioned layer for the client of OSOC '22" @@ -13317,6 +13739,10 @@ "if": "value=playground_equipment", "then": "playground_equipment - Layer showing playground equipment" }, + { + "if": "value=police", + "then": "police - Many types of police facilities " + }, { "if": "value=postboxes", "then": "postboxes - The layer showing postboxes." @@ -13361,6 +13787,10 @@ "if": "value=school", "then": "school - Schools giving primary and secondary education and post-secondary, non-tertiary education. Note that this level of education does not imply an age of the pupiles" }, + { + "if": "value=search", + "then": "search - Priviliged layer showing the search results" + }, { "if": "value=selected_element", "then": "selected_element - Highlights the currently selected element. Override this layer to have different colors" @@ -13677,7 +14107,7 @@ ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -13789,10 +14219,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "required": [ @@ -14568,6 +15008,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -14841,7 +15285,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -15181,7 +15625,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -15925,6 +16382,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -16211,7 +16672,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -16564,7 +17025,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -17331,6 +17805,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -17617,7 +18095,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -17970,7 +18448,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -18739,6 +19230,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -19038,7 +19533,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -19404,7 +19899,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -20148,6 +20656,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -20434,7 +20946,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -20787,7 +21299,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -21556,6 +22081,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -21855,7 +22384,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -22221,7 +22750,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -22259,7 +22801,7 @@ ] } ], - "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one." + "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\nNote: adding \"#filter\":\"no-auto\" will disable the filters added by tagRenderings" }, { "path": [ @@ -22403,6 +22945,16 @@ "type": "string", "description": "Used for comments or to disable a check\n\"ignore-possible-duplicate\": disables a check in `DetectDuplicateFilters` which complains that a filter can be replaced by a filter from the `filters`-library-layer" }, + { + "path": [ + "layers", + "#filter" + ], + "required": false, + "hints": {}, + "type": "string", + "description": "Set this to disable the feature that tagRenderings can introduce filters" + }, { "path": [ "layers", @@ -23126,6 +23678,26 @@ "type": "boolean", "description": "When a changeset is made, a 'distance to object'-class is written to the changeset.\nFor some particular themes and layers, this might leak too much information, and we want to obfuscate this" }, + { + "path": [ + "layers", + "snapName" + ], + "required": false, + "hints": { + "group": "hidden", + "question": "When a feature is snapped to this name, how should this item be called?" + }, + "type": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ], + "description": "In the move wizard, the option `snap object onto {snapName}` is shown" + }, { "path": [ "layers", @@ -23184,6 +23756,19 @@ ], "description": "A description for the features shown in this layer.\nThis often resembles the introduction of the wiki.osm.org-page for this feature." }, + { + "path": [ + "layers", + "override", + "searchTerms" + ], + "required": false, + "hints": { + "question": "What are some other terms used to describe these objects?" + }, + "type": "object", + "description": "This is used in the search functionality" + }, { "path": [ "layers", @@ -23708,10 +24293,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -24241,7 +24836,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -24853,7 +25461,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -24954,6 +25575,11 @@ "then": "addSmall", "icon": "addSmall" }, + { + "if": "value=airport", + "then": "airport", + "icon": "airport" + }, { "if": "value=brick_wall_round", "then": "brick_wall_round", @@ -24964,6 +25590,16 @@ "then": "brick_wall_square", "icon": "brick_wall_square" }, + { + "if": "value=building_office_2", + "then": "building_office_2", + "icon": "building_office_2" + }, + { + "if": "value=building_storefront", + "then": "building_storefront", + "icon": "building_storefront" + }, { "if": "value=bug", "then": "bug", @@ -25034,6 +25670,11 @@ "then": "gear", "icon": "gear" }, + { + "if": "value=globe_alt", + "then": "globe_alt", + "icon": "globe_alt" + }, { "if": "value=gps_arrow", "then": "gps_arrow", @@ -25064,6 +25705,11 @@ "then": "home", "icon": "home" }, + { + "if": "value=house", + "then": "house", + "icon": "house" + }, { "if": "value=key", "then": "key", @@ -25169,11 +25815,21 @@ "then": "teardrop_with_hole_green", "icon": "teardrop_with_hole_green" }, + { + "if": "value=train", + "then": "train", + "icon": "train" + }, { "if": "value=triangle", "then": "triangle", "icon": "triangle" }, + { + "if": "value=user_circle", + "then": "user_circle", + "icon": "user_circle" + }, { "if": "value=wifi", "then": "wifi", @@ -25842,10 +26498,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -26396,7 +27062,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -26606,10 +27285,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -27160,7 +27849,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -27367,10 +28069,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -27921,7 +28633,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -28111,10 +28836,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -28665,7 +29400,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -28856,10 +29604,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -29410,7 +30168,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -29606,10 +30377,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -30160,7 +30941,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -30351,10 +31145,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -30905,7 +31709,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -31096,10 +31913,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -31650,7 +32477,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -31849,10 +32689,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -32407,7 +33257,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -32606,10 +33469,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "additionalProperties": false @@ -33164,7 +34037,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -34189,6 +35075,10 @@ "if": "value=bench_at_pt", "then": "bench_at_pt - A layer showing all public-transport-stops which do have a bench" }, + { + "if": "value=bicycle_counter", + "then": "bicycle_counter - Layer showing monitoring stations for bicycle traffic" + }, { "if": "value=bicycle_library", "then": "bicycle_library - A facility where bicycles can be lent for longer period of times" @@ -34389,10 +35279,18 @@ "if": "value=food_courts", "then": "food_courts - Food courts with a variety of food options." }, + { + "if": "value=geocoded_image", + "then": "geocoded_image - undefined" + }, { "if": "value=ghost_bike", "then": "ghost_bike - A layer showing memorials for cyclists, killed in road accidents" }, + { + "if": "value=ghostsign", + "then": "ghostsign - Layer showing disused signs on buildings" + }, { "if": "value=governments", "then": "governments - This layer show governmental buildings. It was setup as commissioned layer for the client of OSOC '22" @@ -34573,6 +35471,10 @@ "if": "value=playground_equipment", "then": "playground_equipment - Layer showing playground equipment" }, + { + "if": "value=police", + "then": "police - Many types of police facilities " + }, { "if": "value=postboxes", "then": "postboxes - The layer showing postboxes." @@ -34617,6 +35519,10 @@ "if": "value=school", "then": "school - Schools giving primary and secondary education and post-secondary, non-tertiary education. Note that this level of education does not imply an age of the pupiles" }, + { + "if": "value=search", + "then": "search - Priviliged layer showing the search results" + }, { "if": "value=selected_element", "then": "selected_element - Highlights the currently selected element. Override this layer to have different colors" @@ -34935,7 +35841,7 @@ ] }, "labels": { - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer", + "description": "What labels should be applied on this tagRendering?\n\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\n\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search", "type": "array", "items": { "type": "string" @@ -35047,10 +35953,20 @@ }, "filter": { "description": "This tagRendering can introduce this builtin filter", - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ] } }, "required": [ @@ -35851,6 +36767,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -36137,7 +37057,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -36490,7 +37410,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -37259,6 +38192,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -37558,7 +38495,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -37924,7 +38861,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -38718,6 +39668,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -39017,7 +39971,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -39383,7 +40337,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -40177,6 +41144,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -40489,7 +41460,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -40868,7 +41839,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -41637,6 +42621,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -41936,7 +42924,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -42302,7 +43290,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -43096,6 +44097,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -43408,7 +44413,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -43787,7 +44792,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" }, { @@ -43826,7 +44844,7 @@ ] } ], - "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one." + "description": "All the extra questions for filtering.\nIf a string is given, mapComplete will search in\n1. The tagrenderings for a match on ID and use the mappings as options\n2. search 'filters.json' for the appropriate filter or\n3. will try to parse it as `layername.filterid` and us that one.\nNote: adding \"#filter\":\"no-auto\" will disable the filters added by tagRenderings" }, { "path": [ @@ -43977,6 +44995,17 @@ "type": "string", "description": "Used for comments or to disable a check\n\"ignore-possible-duplicate\": disables a check in `DetectDuplicateFilters` which complains that a filter can be replaced by a filter from the `filters`-library-layer" }, + { + "path": [ + "layers", + "override", + "#filter" + ], + "required": false, + "hints": {}, + "type": "string", + "description": "Set this to disable the feature that tagRenderings can introduce filters" + }, { "path": [ "layers", @@ -44734,6 +45763,27 @@ "type": "boolean", "description": "When a changeset is made, a 'distance to object'-class is written to the changeset.\nFor some particular themes and layers, this might leak too much information, and we want to obfuscate this" }, + { + "path": [ + "layers", + "override", + "snapName" + ], + "required": false, + "hints": { + "group": "hidden", + "question": "When a feature is snapped to this name, how should this item be called?" + }, + "type": [ + { + "$ref": "#/definitions/Record" + }, + { + "type": "string" + } + ], + "description": "In the move wizard, the option `snap object onto {snapName}` is shown" + }, { "path": [ "layers", diff --git a/src/assets/schemas/questionabletagrenderingconfigmeta.json b/src/assets/schemas/questionabletagrenderingconfigmeta.json index f5d15c1cd0..d2ea1fe193 100644 --- a/src/assets/schemas/questionabletagrenderingconfigmeta.json +++ b/src/assets/schemas/questionabletagrenderingconfigmeta.json @@ -672,6 +672,10 @@ { "if": "value=currency", "then": "currency Validates monetary amounts" + }, + { + "if": "value=regex", + "then": "regex Validates a regex" } ] }, @@ -919,7 +923,7 @@ "required": false, "hints": {}, "type": "array", - "description": "A list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer" + "description": "What labels should be applied on this tagRendering?\nA list of labels. These are strings that are used for various purposes, e.g. to only include a subset of the tagRenderings when reusing a layer\nSpecial values:\n- \"hidden\": do not show this tagRendering. Useful in it is used by e.g. an accordion\n- \"description\": this label is a description used in the search" }, { "path": [ @@ -1233,7 +1237,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" } ] \ No newline at end of file diff --git a/src/assets/schemas/tagrenderingconfigmeta.json b/src/assets/schemas/tagrenderingconfigmeta.json index 2b3e2a7675..c179466ad8 100644 --- a/src/assets/schemas/tagrenderingconfigmeta.json +++ b/src/assets/schemas/tagrenderingconfigmeta.json @@ -462,7 +462,20 @@ ], "required": false, "hints": {}, - "type": "array", + "type": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "enum": [ + true + ], + "type": "boolean" + } + ], "description": "This tagRendering can introduce this builtin filter" } ] \ No newline at end of file From a3906bdf54b2c7ae4d00be4185d90dd32ca9d4b0 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 1 Oct 2024 16:57:43 +0200 Subject: [PATCH 81/84] Editorial cleanups and extra links --- Docs/Reasonings/NoAnonymousContributions.md | 37 ++++++++++++++------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/Docs/Reasonings/NoAnonymousContributions.md b/Docs/Reasonings/NoAnonymousContributions.md index 49209fc41a..637b89ac12 100644 --- a/Docs/Reasonings/NoAnonymousContributions.md +++ b/Docs/Reasonings/NoAnonymousContributions.md @@ -8,44 +8,57 @@ At first sight, it makes perfect sense: it is a user-friendly tool and making an And this is technically possible too - a few other projects have taken this approach: -1. https://wheelmap.org/ uses [a single user account](https://www.openstreetmap.org/user/wheelmap_visitor) too add data to osm.org. [wiki page](https://wiki.openstreetmap.org/wiki/Wheelmap) -2. https://www.onosm.org/ [wiki page](https://wiki.openstreetmap.org/wiki/Onosm.org) creates an anonymous map note +1. https://wheelmap.org/ uses [a single user account](https://www.openstreetmap.org/user/wheelmap_visitor) too add data to osm.org. ([wiki page](https://wiki.openstreetmap.org/wiki/Wheelmap)) +2. https://www.onosm.org/ creates an anonymous map note ([wiki page](https://wiki.openstreetmap.org/wiki/Onosm.org) ) -As usual, allowing anonymous contributions is a tradeoff. I (pietervdvn), as creator of MapComplete, have the opinion that having anonymous contributions for MapComplete would be a net negative. +As usual, allowing or not allowing anonymous contributions is a tradeoff. +I (pietervdvn), as creator of MapComplete, have the opinion that having anonymous contributions for MapComplete would be a net negative. ## Anonymous notes burden the heavy mappers (or are never resolved) -In some regions, there are a few heavy contributors who try to resolve all notes. In Belgium (where I'm from and thus have knowledge of), there are oraganized efforts to bring down the number of notes. This effort is mainly carried by 4 or 5 contributors. +In some regions, there are a few heavy contributors who try to resolve all notes. In Belgium (where I'm from and thus have knowledge of), there are organized efforts to bring down the number of notes. +This effort is mainly carried by 4 or 5 contributors (I could write them down here, but that is beside the point). -Adding anonymous notes would just generate a lot of extra work for them; becoming "anonymous mapping by proxy" - eventually with an extra check. +Adding anonymous notes would just generate a lot of extra work for them; becoming "anonymous mapping by proxy" - although those people would probably do an extra check on the data, basically replicating the effort of the original contributor. + +If there is no systematic note resolving in an area, this means that the data will never be added to OSM and will never be used _and_ get stale over time, being a useless contribution. +This can be witnessed in some regions with notes for `onOsm.org`, for example here https://www.openstreetmap.org/note/2718428#map=13/19.95786/79.30876&layers=N -If there is no systematic note resolving in an area, this means that the data will never be added to OSM and will never be used _and_ get stale over time, being a useless contribution, for example here https://www.openstreetmap.org/note/2718428#map=13/19.95786/79.30876&layers=N; many onosm.org notes are over 1 year old. ## There is no possibility to contact the contributor... By having an anonymous contribution, it is not possible for the community to reach out to the contributors. This means that, in case of doubts, questions or incomplete information, it is not possible to follow up. This is currently a major grieve with anonymous map notes. -Someone who systematically makes the same mistake would be impossible to contact. It would even be impossible to know if it is one person making this mistake, or if there is something unclear in MapComplete which causes new contributors to systematically make a mistake. +Someone who systematically makes the same mistake would be impossible to contact. +It would even be impossible to know if it is one person making this mistake, or if there is something unclear in MapComplete which causes new contributors to systematically make a mistake. ### ... which hurts community building -Furthermore, OpenStreetMap is more then the data; it is also the _people_ behind it and the relations they build. Many contributor will never get in touch with the wider community, but some of them will. +Furthermore, OpenStreetMap is more then the data; it is also the _people_ behind it and the relations they build. +Many contributor don't feel the need to get in touch with the wider community, but some of them will. -In Belgium (and many other areas), core contributors systematically send a welcome message to new mappers with hints and more info. Anonymous contributions make this impossible. +In Belgium (and many other areas), core contributors systematically send a welcome message to new mappers with hints and more info. +Anonymous contributions make this impossible and thus deny the new contributor of getting in touch. ## Errors and vandalism becomes easier to do and harder to clean up Up till now, we didn't have any vandalism with MapComplete. -_Not_ having a to write down a name or to log in makes the barrier to experiment really low. People might not realize that their changes are making changes for everyone; or they might realize and intentionally change some data. We had a lot of low-quality edits via Maps.me, especially of people who didn't understand that their addition was shared (I've seen "hotels" named "grandma" because they stayed for a few days there) +_Not_ having a to write down a name or to log in lowers the barrier to experiment. +People might not realize that their actions are making changes for everyone; +or they might realize and intentionally change some data. -We also had [one spam-campaign](https://wiki.openstreetmap.org/wiki/Organised_Editing/Activities/Trziste_prace). It would have become practically impossible to clean up this mess if this would have happened with anonymous accounts, whereas the datateam could simply revert all changes by those users now. +We had a lot of low-quality edits via Maps.me, especially of people who didn't understand that their addition was shared (I've seen "hotels" named "grandma" because they stayed for a few days there) -# Editing programs are not allowed to have anonymous contributions +We also had [one spam-campaign carried out using MapComplete](https://wiki.openstreetmap.org/wiki/Organised_Editing/Activities/Trziste_prace). +It would have become practically impossible to clean up this mess if this would have happened with anonymous accounts, whereas the Data Working Group could simply revert all changes by those users now. + +## Editing programs are not allowed to have anonymous contributions Bing map builder had a single user account for all changes - until they got blocked. The foundation [asked them](https://osmfoundation.org/wiki/Board/Minutes/2022-06#MapBuilder_implementation_proposal) to address some grievances with anonymous contributions. [Please read the wiki for more details](https://wiki.openstreetmap.org/wiki/Map_builder) +I was also opposed to their practice of using _pseudonymous_, numerical accounts, as you can read [in my diary entry about the topics](https://www.openstreetmap.org/user/Pieter%20Vander%20Vennet/diary/400909) wheelmap.org gets an exception to this, because they only modify a single tag (and can thus not do a lot of damage) and are _old_ - they started in 2010, when OSM was 5 years old and unusable anyway. From fb3bf98f1923db4bbba02728d23360a12319a08c Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 1 Oct 2024 23:46:04 +0200 Subject: [PATCH 82/84] Fix: fix download panel --- src/Models/ThemeViewState.ts | 7 ++++++- src/UI/DownloadFlow/DownloadPanel.svelte | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts index 7a7ea4f50d..03c0c2261f 100644 --- a/src/Models/ThemeViewState.ts +++ b/src/Models/ThemeViewState.ts @@ -155,6 +155,10 @@ export default class ThemeViewState implements SpecialVisualizationState { public readonly geocodedImages: UIEventSource = new UIEventSource([]) public readonly searchState: SearchState + /** + * Used to check in the download panel if used + */ + public readonly featureSummary: SummaryTileSourceRewriter constructor(layout: LayoutConfig, mvtAvailableLayers: Set) { Utils.initDomPurify() @@ -356,6 +360,7 @@ export default class ThemeViewState implements SpecialVisualizationState { bounds: this.visualFeedbackViewportBounds, }, ) + this.featureSummary = this.setupSummaryLayer() this.hasDataInView = new NoElementsInViewDetector(this).hasFeatureInView this.imageUploadManager = new ImageUploadManager( layout, @@ -785,7 +790,7 @@ export default class ThemeViewState implements SpecialVisualizationState { ), current_view: this.currentView, favourite: this.favourites, - summary: this.setupSummaryLayer(), + summary: this.featureSummary, last_click: this.lastClickObject, search: this.searchState.locationResults, } diff --git a/src/UI/DownloadFlow/DownloadPanel.svelte b/src/UI/DownloadFlow/DownloadPanel.svelte index 428eae6c7f..0be2d6d480 100644 --- a/src/UI/DownloadFlow/DownloadPanel.svelte +++ b/src/UI/DownloadFlow/DownloadPanel.svelte @@ -22,7 +22,7 @@ let metaIsIncluded = false - let numberOfFeatures = state.featureSummary.totalNumberOfFeatures + let numberOfFeatures = state.featureSummary?.totalNumberOfFeatures async function getGeojson() { await state.indexedFeatures.downloadAll() From 86af270aa0a0bcb49843eb009fccee47a54012cd Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 2 Oct 2024 00:18:32 +0200 Subject: [PATCH 83/84] Fix: mention license of panoramax --- langs/en.json | 3 ++- src/UI/Image/UploadImage.svelte | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/langs/en.json b/langs/en.json index 70823edbae..83eaac81ea 100644 --- a/langs/en.json +++ b/langs/en.json @@ -206,6 +206,7 @@ "openPanoramax": "Open Panoramax here", "openThemeDocumentation": "Open the documentation for thematic map {name}", "panoramaxHelp": "Panoramax is an online service which gathers street-level pictures and offers them under a free license. Contributors are allowed to use these pictures to improve OpenStreetMap", + "panoramaxLicenseCCBYSA": "Your pictures are published under CC-BY-SA - everyone can reuse your image if they mention your name", "seeOnMapillary": "See this image on Mapillary", "themeBy": "Theme maintained by {author}", "title": "Copyright and attribution", @@ -895,4 +896,4 @@ "startsWithQ": "A wikidata identifier starts with Q and is followed by a number" } } -} \ No newline at end of file +} diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte index 4495f025bd..ff7d4581c6 100644 --- a/src/UI/Image/UploadImage.svelte +++ b/src/UI/Image/UploadImage.svelte @@ -83,11 +83,11 @@ {/each} handleFiles(e.detail)} > -
+
{#if image !== undefined} {:else} @@ -100,8 +100,10 @@ {/if}
-
- +
+ + +
From 279eb63f50116f1084df3e1a4406e3ac800a0883 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 2 Oct 2024 00:18:57 +0200 Subject: [PATCH 84/84] UX: select closest feature on 'space' --- src/Models/ThemeViewState.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts index 03c0c2261f..596060f120 100644 --- a/src/Models/ThemeViewState.ts +++ b/src/Models/ThemeViewState.ts @@ -357,7 +357,7 @@ export default class ThemeViewState implements SpecialVisualizationState { { currentZoom: this.mapProperties.zoom, layerState: this.layerState, - bounds: this.visualFeedbackViewportBounds, + bounds: this.visualFeedbackViewportBounds.map(bounds => bounds ?? this.mapProperties.bounds?.data, [this.mapProperties.bounds]), }, ) this.featureSummary = this.setupSummaryLayer() @@ -531,9 +531,11 @@ export default class ThemeViewState implements SpecialVisualizationState { * Selects the feature that is 'i' closest to the map center */ private selectClosestAtCenter(i: number = 0) { + console.log("Selecting closest",i) if (this.userRelatedState.a11y.data !== "never") { this.visualFeedback.setData(true) } + const toSelect = this.closestFeatures.features?.data?.[i] if (!toSelect) { window.requestAnimationFrame(() => {