diff --git a/.forgejo/workflows/on_release.yml b/.forgejo/workflows/on_release.yml
index 3845b26cf..e87e9455e 100644
--- a/.forgejo/workflows/on_release.yml
+++ b/.forgejo/workflows/on_release.yml
@@ -53,9 +53,11 @@ jobs:
cd android/app
# We assign the version code simply based on the date
new_version_code=$(( ( $(date +%s) - $(date -d "2025-07-01" +%s) ) / 86400 ))
+ new_version_code=$(( 1949 + $new_version_code )) # see https://source.mapcomplete.org/MapComplete/MapComplete/issues/2520
versionname="${{ github.ref_name }}"
versionname="${versionname:1}"
- sed -i "s/versionCode $version_code/versionCode $new_version_code/" "build.gradle"
+ echo "Versioncode will be $new_version_code ; versionname is $versionname"
+ sed -i "s/versionCode .*$/versionCode $new_version_code/" "build.gradle"
sed -i "s/versionName \".*\"/versionName \"$versionname\"/" "build.gradle"
cat build.gradle | grep "versionName"
cat build.gradle | grep "versionCode"
diff --git a/.vscode/settings.json b/.vscode/settings.json
index b607ae0fc..a0e2c3e54 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -60,5 +60,10 @@
"type": "Gitea",
"name": "MapComplete Forgejo"
}
- ]
+ ],
+ "explorer.fileNesting.enabled": true,
+ "explorer.fileNesting.patterns": {
+ "*": "${capture}.license"
+ },
+ "explorer.fileNesting.expand": false
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b375f5ed5..c04831189 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,63 @@
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.55.7](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.55.6...v0.55.7) (2025-09-02)
+
+### [0.55.6](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.55.5...v0.55.6) (2025-09-02)
+
+
+### Features
+
+* add 'download app' item into the menu drawer (if not on Android) ([0a0d3dc](https://source.mapcomplete.org/MapComplete/MapComplete/commits/0a0d3dc8dab91862b93974639a68e1b89ad5789c))
+* add avatar with offline support ([f671cd3](https://source.mapcomplete.org/MapComplete/MapComplete/commits/f671cd342fd84a669104b2e0f452b450b0329ea4))
+* add multiTitle, better error handling, improve help text of script ([0d33e18](https://source.mapcomplete.org/MapComplete/MapComplete/commits/0d33e18a593dd6527465cd5e86b2506fceb4d1ed))
+* include (all) sign languages in the 'LanguageElement' special rendering ([fe31af4](https://source.mapcomplete.org/MapComplete/MapComplete/commits/fe31af4b15446fc7787ba3e2ecc677c46d6c8de2))
+* offline: more features to be able to work fully offline ([06aa8a3](https://source.mapcomplete.org/MapComplete/MapComplete/commits/06aa8a34061ec1e607b8f0de4ab8cf12213b8dae))
+* **offline:** attempt to upload pictures when connection is restored ([dd0ed24](https://source.mapcomplete.org/MapComplete/MapComplete/commits/dd0ed24f3b4425676d6f85a4467bb7c1662459fd))
+* **offline:** better support for making changes while offline ([7155cd7](https://source.mapcomplete.org/MapComplete/MapComplete/commits/7155cd7f6184073bf641f1524ae438a803710b94))
+* **offline:** don't attempt to upload images if offline ([f1da972](https://source.mapcomplete.org/MapComplete/MapComplete/commits/f1da97285fe68c72b13299ebc97c28428fc95230))
+* **offline:** more offline hardening ([561e4cb](https://source.mapcomplete.org/MapComplete/MapComplete/commits/561e4cb00990cb1e1e38f9459ff858256b9acfaf))
+* **offline:** reload data of current view when internet is restored, see [#2111](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2111) ([e44cf02](https://source.mapcomplete.org/MapComplete/MapComplete/commits/e44cf029bdbf50810579b1ae8d7aedfdf63d3df4))
+* **offline:** UX: add icon ([a5bab8d](https://source.mapcomplete.org/MapComplete/MapComplete/commits/a5bab8d819082dee354eed1fc7bcac998c4f49ab))
+
+
+### Bug Fixes
+
+* check for type in TagLink ([bd3c266](https://source.mapcomplete.org/MapComplete/MapComplete/commits/bd3c266a4d1ce344b613431e5704a91207347b8c))
+* fix 'non-loading' due to incorrect caching in service worker ([f6d6ec9](https://source.mapcomplete.org/MapComplete/MapComplete/commits/f6d6ec98859de5665fa0e2a048ebfe92e4f924c0))
+* fix [#2509](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2509) ([aed6def](https://source.mapcomplete.org/MapComplete/MapComplete/commits/aed6defa168030fb7947271df068fe5feb0b0ba2))
+* fix crash ([a570e29](https://source.mapcomplete.org/MapComplete/MapComplete/commits/a570e292423785dd7532feb28facc46e4ade5e6d))
+* fix crash in GRB theme when replacing geometry ([3c5a528](https://source.mapcomplete.org/MapComplete/MapComplete/commits/3c5a528307db102ff24d9d3b82b884bca58ad4c3))
+* fix crash in GRB theme when replacing geometry ([6e1aaf6](https://source.mapcomplete.org/MapComplete/MapComplete/commits/6e1aaf6be1950a50eee8c01ade244821bb221563))
+* fix showing splitpoint icons ([9da10a9](https://source.mapcomplete.org/MapComplete/MapComplete/commits/9da10a9b32f91b11fbeafac2d63b7b5d66a1e737))
+* fix small typing issues ([fd5e390](https://source.mapcomplete.org/MapComplete/MapComplete/commits/fd5e39065d4d6381838b718d34f75d02372f66a1))
+* fix tests ([42f07bc](https://source.mapcomplete.org/MapComplete/MapComplete/commits/42f07bc1f3f64a63ce7dec0bf22a4a1e5bdbd42f))
+* fix tests ([8f776bf](https://source.mapcomplete.org/MapComplete/MapComplete/commits/8f776bf0306338f0bac36db20006f7c26ac49f92))
+* fix tests ([b81f597](https://source.mapcomplete.org/MapComplete/MapComplete/commits/b81f59779dea74ca9c01f8d7df30844d29ec01ae))
+* panoramax attribution now filters out empty strings (for some edge cases on non-mapcomplete panoramax servers) ([17f0978](https://source.mapcomplete.org/MapComplete/MapComplete/commits/17f097851aafeb4db9c8cc0590abde9efe8bf599))
+* split values for tag2link ([36b3faf](https://source.mapcomplete.org/MapComplete/MapComplete/commits/36b3faf2d14bf174545d437705a17d3c2917c643))
+
+
+### Theme improvements
+
+* **hut:** move 'hut' above shelter, steal shelter type question, also see [#2515](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2515) ([3da62f8](https://source.mapcomplete.org/MapComplete/MapComplete/commits/3da62f8d708c73cd72868db0206ed90cea2b6b98))
+* move shelter filter to filters ([eb317d0](https://source.mapcomplete.org/MapComplete/MapComplete/commits/eb317d0bdabb0e5cf1dc4a871d65757a432c4de3))
+* **nature:** Add picnic sites ([#1849](https://source.mapcomplete.org/MapComplete/MapComplete/issues/1849)) ([4294e49](https://source.mapcomplete.org/MapComplete/MapComplete/commits/4294e4930509bb8157597d3d6242046a5fa14e8d))
+* New arcade theme ([2c65747](https://source.mapcomplete.org/MapComplete/MapComplete/commits/2c6574762c30d60440806ace3f9e3320f771c9a4))
+* **parking:** Add support for access tags ([#1797](https://source.mapcomplete.org/MapComplete/MapComplete/issues/1797)) ([03d07b6](https://source.mapcomplete.org/MapComplete/MapComplete/commits/03d07b670de7fa84c0e58f647073f67fb6d60046))
+* **parkings:** Add charge points ([c0ee578](https://source.mapcomplete.org/MapComplete/MapComplete/commits/c0ee578df1b0db3c9670b6c8f722787e6a9b72f3))
+* **preset_type_select:** fix 'auto-icon' display ([81f98e6](https://source.mapcomplete.org/MapComplete/MapComplete/commits/81f98e62ceec6313256a7864822225efb0b772d1))
+* **preset_type_select:** preset type select now removes keys set by other presets ([152d93b](https://source.mapcomplete.org/MapComplete/MapComplete/commits/152d93bf4bdc73e4d331e2718181599ccf9a18b1))
+* **range:** change rendering ([e9f7192](https://source.mapcomplete.org/MapComplete/MapComplete/commits/e9f71924c14bc9d3b9940060775d8edc8311225c))
+* **shops:** Add self_checkout question ([2cf0bc1](https://source.mapcomplete.org/MapComplete/MapComplete/commits/2cf0bc1866cd8df4bc7006b29a5f49210761ccb3))
+* **shops:** change conditions for self_checkout question ([aecc36d](https://source.mapcomplete.org/MapComplete/MapComplete/commits/aecc36dfbe0972eec5f76d11a5b526a1992ecb2c))
+* **shops:** Exlcude shop=no ([06ac28d](https://source.mapcomplete.org/MapComplete/MapComplete/commits/06ac28dab98777ba91c06ec46800f08c52d14bdc))
+* **shops:** Remove brand tags if marked as without brand ([877dd26](https://source.mapcomplete.org/MapComplete/MapComplete/commits/877dd260aed3a21ffbb1f638b07e35277df835b6))
+* **surveillance:** add some tweaks to the 'panorama'-camera ([db62329](https://source.mapcomplete.org/MapComplete/MapComplete/commits/db62329d396e067dcb2155a7deed2e466065e383))
+* **width:** add cyclestreet indication, add icons ([67c5322](https://source.mapcomplete.org/MapComplete/MapComplete/commits/67c5322a80067acb911eb99f6ec876763039f61f))
+* **width:** add note if street are low on cars, hide 'unknown'-layer by default, add 'separate' as recognized parking type ([9a2b5d0](https://source.mapcomplete.org/MapComplete/MapComplete/commits/9a2b5d0cf7021d369f85b51779cc73ac8c6159fa))
+* **zhv:** fix broken import ([40bd564](https://source.mapcomplete.org/MapComplete/MapComplete/commits/40bd564f864a73e4b9f476e3347c22134cf3f79b))
+
### [0.55.5](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.55.4...v0.55.5) (2025-08-19)
diff --git a/Docs/SpecialRenderings.md b/Docs/SpecialRenderings.md
index cb00c41ad..c4882712f 100644
--- a/Docs/SpecialRenderings.md
+++ b/Docs/SpecialRenderings.md
@@ -14,8 +14,6 @@ General usage is `{func_name()}`, `{func_name(arg, someotherarg)}` or `{func_nam
- [UI](#ui)
+ [braced](#braced)
+ [create_copy](#create_copy)
- + [preset_description](#preset_description)
- + [show_icons](#show_icons)
+ [title](#title)
+ [translated](#translated)
- [data](#data)
@@ -81,15 +79,13 @@ General usage is `{func_name()}`, `{func_name(arg, someotherarg)}` or `{func_nam
- [tagrendering_manipulation](#tagrendering_manipulation)
+ [group](#group)
+ [multi](#multi)
+ + [open_in_iD](#open_in_id)
+ + [open_in_josm](#open_in_josm)
+ [steal](#steal)
- - [ui](#ui)
- + [preset_type_select](#preset_type_select)
- [web_and_communication](#web_and_communication)
+ [fediverse_link](#fediverse_link)
+ [link](#link)
+ [mapillary_link](#mapillary_link)
- + [open_in_iD](#open_in_id)
- + [open_in_josm](#open_in_josm)
+ [send_email](#send_email)
+ [wikidata_label](#wikidata_label)
+ [wikipedia](#wikipedia)
@@ -99,6 +95,8 @@ General usage is `{func_name()}`, `{func_name(arg, someotherarg)}` or `{func_nam
+ [histogram](#histogram)
+ [language_chooser](#language_chooser)
+ [multi_apply](#multi_apply)
+ + [preset_description](#preset_description)
+ + [preset_type_select](#preset_type_select)
+ [upload_to_osm](#upload_to_osm)
# Using expanded syntax
@@ -142,7 +140,8 @@ Show a literal text within braces
-----|-----|----- |
| text | _undefined_ | The value to show |
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L296](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L296)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L295](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L295)
#### Example usage of braced
@@ -152,42 +151,19 @@ Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L296](/src/
Allow to create a copy of the current element
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L315](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L315)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L314](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L314)
#### Example usage of create_copy
`{create_copy()}`
-### preset_description
-
-Shows the extra description from the presets of the layer, if one matches. It will pick the most specific one (e.g. if preset `A` implies `B`, but `B` does not imply `A`, it'll pick B) or the first one if no ordering can be made. Might be empty
-
-Defined in [/src/UI/Popup/DataVisualisations.ts#L215](/src/UI/Popup/DataVisualisations.ts#L215)
-
-#### Example usage of preset_description
-
-`{preset_description()}`
-
-### show_icons
-
-Displays all icons from the specified tagRenderings (if they are known and have an icon) together, e.g. to give a summary of the dietary options
-
-| name | default | description |
------|-----|----- |
-| labels | _undefined_ | A ';'-separated list of labels and/or ids of tagRenderings |
-| class | inline-flex mx-4 | CSS-classes of the container, space-separated |
-
-Defined in [/src/UI/Popup/DataVisualisations.ts#L307](/src/UI/Popup/DataVisualisations.ts#L307)
-
-#### Example usage of show_icons
-
-`{show_icons(,inline-flex mx-4)}`
-
### title
Shows the title of the popup. Useful for some cases, e.g. 'What is phone number of {title()}?'
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L281](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L281)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L280](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L280)
#### Example usage of title
@@ -201,7 +177,8 @@ If the given key can be interpreted as a JSON, only show the key containing the
-----|-----|----- |
| key | value | The attribute to interpret as json |
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L251](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L251)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L250](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L250)
#### Example usage of translated
@@ -215,7 +192,7 @@ Visualises data of a POI, sometimes with data updating capabilities
Prints all key-value pairs of the object - used for debugging
-Defined in [/src/UI/Popup/DataVisualisations.ts#L270](/src/UI/Popup/DataVisualisations.ts#L270)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L263](/src/UI/Popup/DataVisualisations.ts#L263)
#### Example usage of all_tags
@@ -229,7 +206,7 @@ Converts a short, canonical value into the long, translated text including the u
-----|-----|----- |
| key | _undefined_ | The key of the tag to give the canonical text for |
-Defined in [/src/UI/Popup/DataVisualisations.ts#L163](/src/UI/Popup/DataVisualisations.ts#L163)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L155](/src/UI/Popup/DataVisualisations.ts#L155)
#### Example usage of canonical
@@ -244,7 +221,7 @@ Converts compass degrees (with 0° being north, 90° being east, ...) into a hum
| key | _direction:centerpoint | The attribute containing the degrees |
| offset | 0 | Offset value that is added to the actual value, e.g. `180` to indicate the opposite (backward) direction |
-Defined in [/src/UI/Popup/DataVisualisations.ts#L47](/src/UI/Popup/DataVisualisations.ts#L47)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L39](/src/UI/Popup/DataVisualisations.ts#L39)
#### Example usage of direction_absolute
@@ -254,7 +231,7 @@ Defined in [/src/UI/Popup/DataVisualisations.ts#L47](/src/UI/Popup/DataVisualisa
Gives a distance indicator and a compass pointing towards the location from your GPS-location. If clicked, centers the map on the object
-Defined in [/src/UI/Popup/DataVisualisations.ts#L34](/src/UI/Popup/DataVisualisations.ts#L34)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L26](/src/UI/Popup/DataVisualisations.ts#L26)
#### Example usage of direction_indicator
@@ -270,7 +247,7 @@ A small element, showing if the POI is currently open and when the next change i
| prefix | _empty string_ | Remove this string from the start of the value before parsing. __Note: use `&LPARENs` to indicate `(` if needed__ |
| postfix | _empty string_ | Remove this string from the end of the value before parsing. __Note: use `&RPARENs` to indicate `)` if needed__ |
-Defined in [/src/UI/Popup/DataVisualisations.ts#L126](/src/UI/Popup/DataVisualisations.ts#L126)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L118](/src/UI/Popup/DataVisualisations.ts#L118)
#### Example usage of opening_hours_state
@@ -286,7 +263,7 @@ Creates an opening-hours table. Usage: {opening_hours_table(opening_hours)} to c
| prefix | _empty string_ | Remove this string from the start of the value before parsing. __Note: use `&LPARENs` to indicate `(` if needed__ |
| postfix | _empty string_ | Remove this string from the end of the value before parsing. __Note: use `&RPARENs` to indicate `)` if needed__ |
-Defined in [/src/UI/Popup/DataVisualisations.ts#L87](/src/UI/Popup/DataVisualisations.ts#L87)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L81](/src/UI/Popup/DataVisualisations.ts#L81)
#### Example usage of opening_hours_table
@@ -300,7 +277,7 @@ Creates a visualisation for 'points in time', e.g. collection times of a postbox
-----|-----|----- |
| key | _undefined_ | The key out of which the points_in_time will be parsed |
-Defined in [/src/UI/Popup/DataVisualisations.ts#L281](/src/UI/Popup/DataVisualisations.ts#L281)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L274](/src/UI/Popup/DataVisualisations.ts#L274)
#### Example usage of points_in_time
@@ -310,7 +287,7 @@ Defined in [/src/UI/Popup/DataVisualisations.ts#L281](/src/UI/Popup/DataVisualis
Show general statistics about all the elements currently in view. Intended to use on the `current_view`-layer. They will be split per layer
-Defined in [/src/UI/Popup/DataVisualisations.ts#L203](/src/UI/Popup/DataVisualisations.ts#L203)
+Defined in [/src/UI/Popup/DataVisualisations.ts#L195](/src/UI/Popup/DataVisualisations.ts#L195)
#### Example usage of statistics
@@ -354,7 +331,8 @@ Gives an interactive element which shows a tag comparison between the OSM-object
| host | _undefined_ | The domain name(s) where data might be fetched from - this is needed to set the CSP. A domain must include 'https', e.g. 'https://example.com'. For multiple domains, separate them with ';'. If you don't know the possible domains, use '*'. |
| readonly | _undefined_ | If 'yes', will not show 'apply'-buttons |
-Defined in [/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L243](/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L243)
+Defined
+in [/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L243](/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L243)
#### Example usage of compare_data
@@ -414,7 +392,8 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
| icon | ./assets/svg/addSmall.svg | A nice icon to show in the button |
| way_to_conflate | _undefined_ | The key, of which the corresponding value is the id of the OSM-way that must be conflated; typically a calculatedTag |
-Defined in [/src/UI/Popup/ImportButtons/ConflateImportButtonViz.ts#L30](/src/UI/Popup/ImportButtons/ConflateImportButtonViz.ts#L30)
+Defined
+in [/src/UI/Popup/ImportButtons/ConflateImportButtonViz.ts#L30](/src/UI/Popup/ImportButtons/ConflateImportButtonViz.ts#L30)
#### Example usage of conflate_button
@@ -543,7 +522,8 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
| snap_onto_layers | _undefined_ | If no existing nearby point exists, but a line of a specified layer is closeby, snap to this layer instead |
| snap_to_layer_max_distance | 0.1 | Distance to distort the geometry to snap to this layer |
-Defined in [/src/UI/Popup/ImportButtons/WayImportButtonViz.ts#L22](/src/UI/Popup/ImportButtons/WayImportButtonViz.ts#L22)
+Defined
+in [/src/UI/Popup/ImportButtons/WayImportButtonViz.ts#L22](/src/UI/Popup/ImportButtons/WayImportButtonViz.ts#L22)
#### Example usage of import_way_button
@@ -561,7 +541,8 @@ Attempts to load (via a proxy) the specified website and parsed ld+json from the
| mode | _undefined_ | If `display`, only show the data in tabular and readonly form, ignoring already existing tags. This is used to explicitly show all the tags. If unset or anything else, allow to apply/import on OSM |
| collapsed | yes | If the containing accordion should be closed |
-Defined in [/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L105](/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L105)
+Defined
+in [/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L105](/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L105)
#### Example usage of linked_data_from_website
@@ -580,7 +561,8 @@ Change the status of the given MapRoulette task
| maproulette_id | mr_taskId | The property name containing the maproulette id |
| ask_feedback | _empty string_ | If not an empty string, this will be used as question to ask some additional feedback. A text field will be added |
-Defined in [/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L25](/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L25)
+Defined
+in [/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L25](/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts#L25)
#### Example usage of maproulette_set_status
@@ -641,7 +623,7 @@ Note that these values can be prepare with javascript in the theme by using a [c
| id_of_object_to_apply_this_one | _undefined_ | If specified, applies the the tags onto _another_ object. The id will be read from properties[id_of_object_to_apply_this_one] of the selected object. The tags are still calculated based on the tags of the _selected_ element |
| maproulette_id | _undefined_ | If specified, this maproulette-challenge will be closed when the tags are applied. This should be the `id` of the individual task, _not_ the task_id (which corresponds with the challenge). |
-Defined in [/src/UI/SpecialVisualisations/TagApplyViz.ts#L17](/src/UI/SpecialVisualisations/TagApplyViz.ts#L17)
+Defined in [/src/UI/SpecialVisualisations/TagApplyViz.ts#L13](/src/UI/SpecialVisualisations/TagApplyViz.ts#L13)
#### Example usage of tag_apply
@@ -655,7 +637,8 @@ These special visualisations are (mostly) interactive components that most eleme
An element which allows to add a new point on the 'last_click'-location. Only makes sense in the layer `last_click`
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L235](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L235)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L234](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L234)
#### Example usage of add_new_point
@@ -665,7 +648,8 @@ Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L235](/src/
Adds a button which allows to delete the object at this location. The config will be read from the layer config
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L157](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L157)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L157](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L157)
#### Example usage of delete_button
@@ -680,7 +664,8 @@ Shows a 'nothing is currently known-message if there is at least one unanswered
| text | _undefined_ | Text to show |
| cssClasses | _undefined_ | Classes to apply onto the text |
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L207](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L207)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L206](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L206)
#### Example usage of if_nothing_known
@@ -696,7 +681,8 @@ A small map showing the selected feature.
| idKey | id | The key of one or more properties of the feature, semi-colon separated. The corresponding value is interpreted as either the id or the a list of ID's. The features with these ID's will be shown on this minimap. |
| class | h-40 rounded | CSS-classes (space-separated) that should be applied onto the container |
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L81](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L81)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L81](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L81)
#### Example usage of minimap
@@ -706,7 +692,8 @@ Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L81](/src/U
Adds a button which allows to move the object to another location. The config will be read from the layer config
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L137](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L137)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L137](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L137)
#### Example usage of move_button
@@ -721,7 +708,8 @@ Generates a QR-code to share the selected object
| text | _undefined_ | Extra text on the side of the QR-code |
| textClass | _undefined_ | CSS class of the the side text |
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L178](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L178)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L178](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L178)
#### Example usage of qr_code
@@ -737,7 +725,8 @@ The special element which shows the questions which are unknown. Added by defaul
| blacklisted-labels | _undefined_ | One or more ';'-separated labels of questions which should _not_ be included. Note that the questionbox which is added by default will blacklist 'hidden'. If both a whitelist and a blacklist are given, will show questions having at least one label from the whitelist but none of the blacklist. |
| show_all | _undefined_ | Either `no`, `yes` or `user-preference`. Indicates if all questions should be shown at once |
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L31](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L31)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L31](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L31)
#### Example usage of questions
@@ -762,7 +751,8 @@ Defined in [/src/UI/Popup/ShareLinkViz.ts#L6](/src/UI/Popup/ShareLinkViz.ts#L6)
Adds a button which allows to split a way
-Defined in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L123](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L123)
+Defined
+in [/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L123](/src/UI/SpecialVisualisations/UISpecialVisualisations.ts#L123)
#### Example usage of split_button
@@ -776,7 +766,8 @@ Elements relating to marking an object as favourite (giving it a heart). Default
A small button that allows a (logged in) contributor to mark a location as a favourite location, sized to fit a title-icon
-Defined in [/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L19](/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L19)
+Defined
+in [/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L19](/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L19)
#### Example usage of favourite_icon
@@ -786,7 +777,8 @@ Defined in [/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L19](/src/U
A button that allows a (logged in) contributor to mark a location as a favourite location
-Defined in [/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L6](/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L6)
+Defined
+in [/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L6](/src/UI/SpecialVisualisations/FavouriteVisualisations.ts#L6)
#### Example usage of favourite_status
@@ -804,7 +796,8 @@ Creates an image carousel for the given sources. An attempt will be made to gues
-----|-----|----- |
| image_key | image;mapillary;image;wikidata;wikimedia_commons;image;panoramax;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 |
-Defined in [/src/UI/SpecialVisualisations/ImageVisualisations.ts#L48](/src/UI/SpecialVisualisations/ImageVisualisations.ts#L48)
+Defined
+in [/src/UI/SpecialVisualisations/ImageVisualisations.ts#L48](/src/UI/SpecialVisualisations/ImageVisualisations.ts#L48)
#### Example usage of image_carousel
@@ -820,7 +813,8 @@ Creates a button where a user can upload an image to panoramax
| label | _undefined_ | The text to show on the button |
| disable_blur | _undefined_ | If set to 'true' or 'yes', then face blurring will be disabled. To be used sparingly |
-Defined in [/src/UI/SpecialVisualisations/ImageVisualisations.ts#L82](/src/UI/SpecialVisualisations/ImageVisualisations.ts#L82)
+Defined
+in [/src/UI/SpecialVisualisations/ImageVisualisations.ts#L82](/src/UI/SpecialVisualisations/ImageVisualisations.ts#L82)
#### Example usage of image_upload
@@ -835,7 +829,8 @@ A component showing nearby images loaded from various online services such as Ma
| mode | closed | Either `open` or `closed`. If `open`, then the image carousel will always be shown |
| readonly | _undefined_ | If 'readonly' or 'yes', will not show the 'link'-button |
-Defined in [/src/UI/SpecialVisualisations/ImageVisualisations.ts#L12](/src/UI/SpecialVisualisations/ImageVisualisations.ts#L12)
+Defined
+in [/src/UI/SpecialVisualisations/ImageVisualisations.ts#L12](/src/UI/SpecialVisualisations/ImageVisualisations.ts#L12)
#### Example usage of nearby_images
@@ -853,7 +848,8 @@ Adds an image to a node
-----|-----|----- |
| Id-key | id | The property name where the ID of the note to close can be found |
-Defined in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L115](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L115)
+Defined
+in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L111](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L111)
#### Example usage of add_image_to_note
@@ -867,7 +863,8 @@ A textfield to add a comment to a node (with the option to close the note).
-----|-----|----- |
| Id-key | id | The property name where the ID of the note to close can be found |
-Defined in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L79](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L79)
+Defined
+in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L75](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L75)
#### Example usage of add_note_comment
@@ -886,7 +883,8 @@ Button to close a note. A predefined text can be defined to close the note with.
| minZoom | _undefined_ | If set, only show the closenote button if zoomed in enough |
| zoomButton | _undefined_ | Text to show if not zoomed in enough |
-Defined in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L22](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L22)
+Defined
+in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L18](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L18)
#### Example usage of close_note
@@ -896,7 +894,8 @@ Defined in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L22](/src/UI/Spe
Creates a new map note on the given location. This options is placed in the 'last_click'-popup automatically if the 'notes'-layer is enabled
-Defined in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L98](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L98)
+Defined
+in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L94](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L94)
#### Example usage of open_note
@@ -911,7 +910,8 @@ Visualises the comments for notes
| commentsKey | comments | The property name of the comments, which should be stringified json |
| start | 0 | Drop the first 'start' comments |
-Defined in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L136](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L136)
+Defined
+in [/src/UI/SpecialVisualisations/NoteVisualisations.ts#L132](/src/UI/SpecialVisualisations/NoteVisualisations.ts#L132)
#### Example usage of visualize_note_comments
@@ -931,7 +931,8 @@ Invites the contributor to leave a review. Somewhat small UI-element until inter
| fallback | _undefined_ | The identifier to use, if tags[subjectKey] as specified above is not available. This is effectively a fallback value |
| question | _undefined_ | The question to ask during the review |
-Defined in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L22](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L22)
+Defined
+in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L22](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L22)
#### Example usage of create_review
@@ -946,7 +947,8 @@ Adds an overview of the mangrove-reviews of this object. Mangrove.Reviews needs
| subjectKey | name | The key to use to determine the subject. If specified, the subject will be tags[subjectKey] |
| fallback | _undefined_ | The identifier to use, if tags[subjectKey] as specified above is not available. This is effectively a fallback value |
-Defined in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L88](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L88)
+Defined
+in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L88](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L88)
#### Example usage of list_reviews
@@ -961,7 +963,8 @@ Shows stars which represent the average rating on mangrove.
| subjectKey | name | The key to use to determine the subject. If the value is specified, the subject will be tags[subjectKey] and will use this to filter the reviews. |
| fallback | _undefined_ | The identifier to use, if tags[subjectKey] as specified above is not available. This is effectively a fallback value |
-Defined in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L125](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L125)
+Defined
+in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L125](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L125)
#### Example usage of rating
@@ -977,7 +980,8 @@ A pragmatic combination of `create_review` and `list_reviews`
| fallback | _undefined_ | The identifier to use, if tags[subjectKey] as specified above is not available. This is effectively a fallback value |
| question | _undefined_ | The question to ask in the review form. Optional |
-Defined in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L182](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L182)
+Defined
+in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L182](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L182)
#### Example usage of reviews
@@ -995,7 +999,8 @@ A button which clears the locally downloaded data and the service worker. Login
-----|-----|----- |
| text | _undefined_ | The text to show on the button |
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L110](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L110)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L110](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L110)
#### Example usage of clear_caches
@@ -1005,7 +1010,8 @@ Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L110](/src/U
A button to remove the travelled track information from the device
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L215](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L215)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L215](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L215)
#### Example usage of clear_location_history
@@ -1015,7 +1021,8 @@ Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L215](/src/U
Shows which questions are disabled for every layer. Used in 'settings'
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L46](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L46)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L46](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L46)
#### Example usage of disabled_questions
@@ -1025,7 +1032,8 @@ Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L46](/src/UI
Shows the current tags of the GPS-representing object, used for debugging
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L69](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L69)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L69](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L69)
#### Example usage of gps_all_tags
@@ -1035,7 +1043,8 @@ Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L69](/src/UI
Shows the current tags of the GPS-representing object, used for debugging
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L58](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L58)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L58](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L58)
#### Example usage of gyroscope_all_tags
@@ -1049,7 +1058,8 @@ Only makes sense in the usersettings. Allows to import a mangrove public key and
-----|-----|----- |
| text | _undefined_ | The text that is shown on the button |
-Defined in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L162](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L162)
+Defined
+in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L162](/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L162)
#### Example usage of import_mangrove_key
@@ -1059,7 +1069,8 @@ Defined in [/src/UI/SpecialVisualisations/ReviewSpecialVisualisations.ts#L162](/
A component to set the language of the user interface
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L26](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L26)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L26](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L26)
#### Example usage of language_picker
@@ -1074,7 +1085,8 @@ Show a login button
| force | _undefined_ | Always show this button, even if logged in |
| message | _undefined_ | Message to display on the button |
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L131](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L131)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L131](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L131)
#### Example usage of login_button
@@ -1084,7 +1096,8 @@ Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L131](/src/U
Shows a button where the user can log out
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L192](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L192)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L192](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L192)
#### Example usage of logout
@@ -1094,7 +1107,8 @@ Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L192](/src/U
A module showing the pending changes, with the option to clear the pending changes
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L204](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L204)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L204](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L204)
#### Example usage of pending_changes
@@ -1109,7 +1123,8 @@ A QR-code which shares the current URL and adds the login token. Anyone with thi
| text | _undefined_ | Extra text on the side of the QR-code |
| textClass | _undefined_ | CSS class of the the side text |
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L161](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L161)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L161](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L161)
#### Example usage of qr_login
@@ -1119,7 +1134,8 @@ Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L161](/src/U
Shows the current state of storage
-Defined in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L86](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L86)
+Defined
+in [/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L86](/src/UI/SpecialVisualisations/SettingsVisualisations.ts#L86)
#### Example usage of storage_all_tags
@@ -1139,7 +1155,8 @@ A collapsable group (accordion)
| labels | _undefined_ | A `;`-separated list of either identifiers or label names. All tagRenderings matching this value will be shown in the accordion |
| blacklist | _undefined_ | A `;`-separated list of either identifiers or label names. Matching tagrenderings will _not_ be included, even if they are in `labels` |
-Defined in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L176](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L176)
+Defined
+in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L176](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L176)
#### Example usage of group
@@ -1155,7 +1172,8 @@ Given an embedded tagRendering (read only) and a key, will read the keyname as a
| tagrendering | _undefined_ | An entire tagRenderingConfig |
| classes | _undefined_ | CSS-classes to apply on every individual item. Seperated by `space` |
-Defined in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L96](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L96)
+Defined
+in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L96](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L96)
#### Example usage of multi
@@ -1173,6 +1191,28 @@ Defined in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisuali
}
```
+### open_in_iD
+
+Opens the current view in the iD-editor
+
+Defined
+in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L212](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L212)
+
+#### Example usage of open_in_iD
+
+`{open_in_iD()}`
+
+### open_in_josm
+
+Opens the current view in the JOSM-editor
+
+Defined
+in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L226](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L226)
+
+#### Example usage of open_in_josm
+
+`{open_in_josm()}`
+
### steal
Shows a tagRendering from a different object as if this was the object itself
@@ -1182,26 +1222,13 @@ Shows a tagRendering from a different object as if this was the object itself
| featureId | _undefined_ | The key of the attribute which contains the id of the feature from which to use the tags |
| tagRenderingId | _undefined_ | The layer-id and tagRenderingId to render. Can be multiple value if ';'-separated (in which case every value must also contain the layerId, e.g. `layerId.tagRendering0; layerId.tagRendering1`). Note: this can cause layer injection |
-Defined in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L23](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L23)
+Defined
+in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L23](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L23)
#### Example usage of steal
`{steal(,)}`
-## ui
-
-Elements to support the user interface, e.g. 'title', 'translated'
-
-### preset_type_select
-
-An editable tag rendering which allows to change the type
-
-Defined in [/src/UI/Popup/DataVisualisations.ts#L231](/src/UI/Popup/DataVisualisations.ts#L231)
-
-#### Example usage of preset_type_select
-
-`{preset_type_select()}`
-
## web_and_communication
Tools to show data from external websites, which link to external websites or which link to external profiles
@@ -1214,7 +1241,8 @@ Converts a fediverse username or link into a clickable link
-----|-----|----- |
| key | _undefined_ | The attribute-name containing the link |
-Defined in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L20](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L20)
+Defined
+in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L16](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L16)
#### Example usage of fediverse_link
@@ -1224,16 +1252,17 @@ Defined in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisatio
Construct a link. By using the 'special' visualisation notation, translations should be easier
-| name | default | description |
------|-----|----- |
-| text | _undefined_ | Text to be shown |
-| href | _undefined_ | The URL to link to. Note that this will be URI-encoded before and (as everything) supports substitutions of attributes |
-| class | _undefined_ | CSS-classes to add to the element |
-| download | _undefined_ | Expects a string which denotes the filename to download the contents of `href` into. If set, this link will act as a download-button. |
-| arialabel | _undefined_ | If set, this text will be used as aria-label |
-| icon | _undefined_ | If set, show this icon next to the link. You might want to combine this with `class: button` |
+| name | default | description |
+-----------|-------------|---------------------------------------------------------------------------------------------------------------------------------------|
+| text | _undefined_ | Text to be shown |
+| href | _undefined_ | The URL to link to. Note that this will be URI-encoded before and (as everything) supports substitutions of attributes |
+| class | _undefined_ | CSS-classes to add to the element |
+| download | _undefined_ | Expects a string which denotes the filename to download the contents of `href` into. If set, this link will act as a download-button. |
+| arialabel | _undefined_ | If set, this text will be used as aria-label |
+| icon | _undefined_ | If set, show this icon next to the link. You might want to combine this with `class: button` |
-Defined in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L147](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L147)
+Defined
+in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L143](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L143)
#### Example usage of link
@@ -1253,26 +1282,6 @@ Defined in [/src/UI/Popup/MapillaryLinkVis.ts#L7](/src/UI/Popup/MapillaryLinkVis
`{mapillary_link(18)}`
-### open_in_iD
-
-Opens the current view in the iD-editor
-
-Defined in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L212](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L212)
-
-#### Example usage of open_in_iD
-
-`{open_in_iD()}`
-
-### open_in_josm
-
-Opens the current view in the JOSM-editor
-
-Defined in [/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L226](/src/UI/SpecialVisualisations/TagrenderingManipulationSpecialVisualisations.ts#L226)
-
-#### Example usage of open_in_josm
-
-`{open_in_josm()}`
-
### send_email
Creates a `mailto`-link where some fields are already set and correctly escaped. The user will be promted to send the email
@@ -1284,7 +1293,7 @@ Creates a `mailto`-link where some fields are already set and correctly escaped.
| body | _undefined_ | The text in the email |
| button_text | _undefined_ | The text shown on the button in the UI |
-Defined in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L109](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L109)
+Defined in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L105](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L105)
#### Example usage of send_email
@@ -1298,7 +1307,8 @@ Shows the label of the corresponding wikidata-item
-----|-----|----- |
| keyToShowWikidataFor | wikidata | Use the wikidata entry from this key to show the label |
-Defined in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L68](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L68)
+Defined
+in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L64](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L64)
#### Example usage of wikidata_label
@@ -1312,7 +1322,8 @@ A box showing the corresponding wikipedia article(s) - based on the **wikidata**
-----|-----|----- |
| keyToShowWikipediaFor | wikidata;wikipedia | Use the wikidata entry from this key to show the wikipedia article for. Multiple keys can be given (separated by ';'), in which case the first matching value is used |
-Defined in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L39](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L39)
+Defined
+in [/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L35](/src/UI/SpecialVisualisations/WebAndCommunicationSpecialVisualisations.ts#L35)
#### Example usage of wikipedia
@@ -1326,7 +1337,7 @@ Various elements
Exports the selected feature as GeoJson-file
-Defined in [/src/UI/Popup/DataExportVisualisations.ts#L38](/src/UI/Popup/DataExportVisualisations.ts#L38)
+Defined in [/src/UI/Popup/DataExportVisualisations.ts#L34](/src/UI/Popup/DataExportVisualisations.ts#L34)
#### Example usage of export_as_geojson
@@ -1336,7 +1347,7 @@ Defined in [/src/UI/Popup/DataExportVisualisations.ts#L38](/src/UI/Popup/DataExp
Exports the selected feature as GPX-file
-Defined in [/src/UI/Popup/DataExportVisualisations.ts#L12](/src/UI/Popup/DataExportVisualisations.ts#L12)
+Defined in [/src/UI/Popup/DataExportVisualisations.ts#L8](/src/UI/Popup/DataExportVisualisations.ts#L8)
#### Example usage of export_as_gpx
@@ -1350,7 +1361,7 @@ Create a histogram for a list of given values, read from the properties.
-----|-----|----- |
| key | _undefined_ | The key to be read and to generate a histogram from |
-Defined in [/src/UI/Popup/HistogramViz.ts#L11](/src/UI/Popup/HistogramViz.ts#L11)
+Defined in [/src/UI/Popup/HistogramViz.ts#L7](/src/UI/Popup/HistogramViz.ts#L7)
#### Example usage of histogram
@@ -1360,14 +1371,14 @@ Defined in [/src/UI/Popup/HistogramViz.ts#L11](/src/UI/Popup/HistogramViz.ts#L11
The language element allows to show and pick all known (modern) languages. The key can be set
-| name | default | description |
------|-----|----- |
-| key | _undefined_ | What key to use, e.g. `language`, `tactile_writing:braille:language`, ... If a language is supported, the language code will be appended to this key, resulting in `:nl=yes` if _nl_ is picked |
-| question | _undefined_ | What to ask if no questions are known |
-| render_list_item | {language()} | How a single language will be shown in the list of languages. Use `{language}` to indicate the language (which it must contain). |
-| render_single_language | _undefined_ | What will be shown if the feature only supports a single language |
-| render_all | {list()} | The full rendering. U0se `{list}` to show where the list of languages must come. Optional if mode=single |
-| no_known_languages | _undefined_ | The text that is shown if no languages are known for this key. If this text is omitted, the languages will be prompted instead |
+| name | default | description |
+------------------------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| key | _undefined_ | What key to use, e.g. `language`, `tactile_writing:braille:language`, ... If a language is supported, the language code will be appended to this key, resulting in `:nl=yes` if _nl_ is picked |
+| question | _undefined_ | What to ask if no questions are known |
+| render_list_item | {language()} | How a single language will be shown in the list of languages. Use `{language}` to indicate the language (which it must contain). |
+| render_single_language | _undefined_ | What will be shown if the feature only supports a single language |
+| render_all | {list()} | The full rendering. U0se `{list}` to show where the list of languages must come. Optional if mode=single |
+| no_known_languages | _undefined_ | The text that is shown if no languages are known for this key. If this text is omitted, the languages will be prompted instead |
Defined in [/src/UI/Popup/LanguageElement/LanguageElement.ts#L5](/src/UI/Popup/LanguageElement/LanguageElement.ts#L5)
@@ -1403,6 +1414,31 @@ Defined in [/src/UI/Popup/MultiApplyViz.ts#L7](/src/UI/Popup/MultiApplyViz.ts#L7
{multi_apply(_features_with_the_same_name_within_100m, name:etymology:wikidata;name:etymology, Apply etymology information on all nearby objects with the same name)}
+### preset_description
+
+Shows the extra description from the presets of the layer, if one matches. It will pick the most specific one (e.g. if preset `A` implies `B`, but `B` does not imply `A`, it'll pick B) or the first one if no ordering can be made. Might be empty
+
+Defined in [/src/UI/Popup/DataVisualisations.ts#L207](/src/UI/Popup/DataVisualisations.ts#L207)
+
+#### Example usage of preset_description
+
+`{preset_description()}`
+
+### preset_type_select
+
+An editable tag rendering which allows to change the type. The options are the presets of the layer, effectively
+allowing to change act as if the object was made with a different preset. For example
+
+How this element looks like (in question mode) for [
+`tourism_accomodation`](./Layers/tourism_accomodation.md): The
+presets 
+
+Defined in [/src/UI/Popup/DataVisualisations.ts#L222](/src/UI/Popup/DataVisualisations.ts#L222)
+
+#### Example usage of preset_type_select
+
+`{preset_type_select()}`
+
### upload_to_osm
Uploads the GPS-history as GPX to OpenStreetMap.org; clears the history afterwards. The actual feature is ignored.
diff --git a/Docs/img/Special_preset_type_select_matching_presets.png b/Docs/img/Special_preset_type_select_matching_presets.png
new file mode 100644
index 000000000..731e4bfbf
Binary files /dev/null and b/Docs/img/Special_preset_type_select_matching_presets.png differ
diff --git a/Docs/img/Special_preset_type_select_preview.png b/Docs/img/Special_preset_type_select_preview.png
new file mode 100644
index 000000000..f752f46d4
Binary files /dev/null and b/Docs/img/Special_preset_type_select_preview.png differ
diff --git a/android b/android
index 817e8198b..dc3f3f5ac 160000
--- a/android
+++ b/android
@@ -1 +1 @@
-Subproject commit 817e8198b5e4c30572d7d3f082d60fc10a7be21e
+Subproject commit dc3f3f5ac3d4d42bed7aeb58ff5386a063dbac06
diff --git a/assets/layers/arcade/arcade.json b/assets/layers/arcade/arcade.json
new file mode 100644
index 000000000..2ab70ba65
--- /dev/null
+++ b/assets/layers/arcade/arcade.json
@@ -0,0 +1,115 @@
+{
+ "id": "arcade",
+ "name": {
+ "en": "Arcades"
+ },
+ "description": {
+ "en": "Layer showing arcades"
+ },
+ "source": {
+ "osmTags": "leisure=amusement_arcade"
+ },
+ "minzoom": 10,
+ "title": {
+ "render": {
+ "en": "Arcade"
+ },
+ "mappings": [
+ {
+ "if": "name~*",
+ "then": {
+ "*": "{name}"
+ }
+ }
+ ]
+ },
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "marker": [
+ {
+ "icon": "square",
+ "color": "white"
+ },
+ {
+ "icon": "./assets/layers/arcade/arcade.svg"
+ }
+ ]
+ }
+ ],
+ "lineRendering": [
+ {
+ "width": 3,
+ "color": "#0e8517"
+ }
+ ],
+ "presets": [
+ {
+ "title": {
+ "en": "an arcade"
+ },
+ "tags": [
+ "leisure=amusement_arcade"
+ ]
+ }
+ ],
+ "tagRenderings": [
+ "images",
+ "reviews",
+ {
+ "builtin": "name",
+ "override": {
+ "question": {
+ "en": "What is the name of this arcade?"
+ },
+ "render": {
+ "en": "This arcade is called {name}"
+ }
+ }
+ },
+ {
+ "id": "virtual_reality",
+ "question": {
+ "en": "Does this arcade offer virtual-reality gaming?"
+ },
+ "mappings": [
+ {
+ "if": "virtual_reality=yes",
+ "then": {
+ "en": "This arcade offers virtual-reality gaming."
+ }
+ },
+ {
+ "if": "virtual_reality=only",
+ "then": {
+ "en": "This arcade only offers virtual-reality gaming."
+ }
+ },
+ {
+ "if": "virtual_reality=",
+ "then": {
+ "en": "This arcade doesn't offer virtual-reality gaming"
+ }
+ }
+ ]
+ },
+ "brand",
+ "opening_hours",
+ "website",
+ "email",
+ "phone",
+ "payment-options",
+ "level",
+ "description",
+ "toilet_at_amenity_lib.all"
+ ],
+ "allowMove": {
+ "enableImproveAccuracy": true,
+ "enableRelocation": true
+ },
+ "credits": "Robin van der Linde",
+ "credits:uid": 5093765
+}
\ No newline at end of file
diff --git a/assets/layers/arcade/arcade.svg b/assets/layers/arcade/arcade.svg
new file mode 100644
index 000000000..5f4031683
--- /dev/null
+++ b/assets/layers/arcade/arcade.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/assets/layers/arcade/arcade.svg.license b/assets/layers/arcade/arcade.svg.license
new file mode 100644
index 000000000..ff6ee9492
--- /dev/null
+++ b/assets/layers/arcade/arcade.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: meased
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/layers/arcade/license_info.json b/assets/layers/arcade/license_info.json
new file mode 100644
index 000000000..f82b95ae4
--- /dev/null
+++ b/assets/layers/arcade/license_info.json
@@ -0,0 +1,12 @@
+[
+ {
+ "path": "arcade.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "meased"
+ ],
+ "sources": [
+ "https://github.com/gravitystorm/openstreetmap-carto/blob/master/symbols/leisure/amusement_arcade.svg"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/campsite/campsite.json b/assets/layers/campsite/campsite.json
index bced66605..d29e848c4 100644
--- a/assets/layers/campsite/campsite.json
+++ b/assets/layers/campsite/campsite.json
@@ -280,41 +280,12 @@
]
}
},
- "caravansites.caravansites-toilets",
"toilet_at_amenity_lib.all",
"questions",
"mastodon"
],
"filter": [
- {
- "id": "fee_filter",
- "options": [
- {
- "question": {
- "en": "Fee",
- "ca": "Taxa",
- "cs": "Poplatek",
- "cy": "Ffi",
- "de": "Gebühr",
- "it": "A pagamento"
- }
- },
- {
- "question": {
- "en": "free of charge",
- "ca": "Gratuït",
- "cs": "zdarma",
- "de": "kostenlos",
- "it": "gratuito"
- },
- "osmTags": {
- "and": [
- "fee=no"
- ]
- }
- }
- ]
- },
+ "free",
{
"id": "capacity_persons_filter",
"options": [
diff --git a/assets/layers/caravansites/caravansites.json b/assets/layers/caravansites/caravansites.json
index 1be94c4e2..4240ceb99 100644
--- a/assets/layers/caravansites/caravansites.json
+++ b/assets/layers/caravansites/caravansites.json
@@ -666,85 +666,7 @@
]
}
},
- {
- "id": "caravansites-toilets",
- "question": {
- "en": "Does this place have toilets?",
- "ca": "Aquest lloc té lavabos?",
- "cs": "Má toto místo toalety?",
- "da": "Har dette sted toiletter?",
- "de": "Verfügt dieser Ort über Toiletten?",
- "es": "¿Este lugar tiene baños?",
- "fr": "Y-a-t’il des toilettes sur le site ?",
- "hu": "Van-e itt WC?",
- "it": "Questo posto ha servizi igienici?",
- "ja": "ここにトイレはありますか?",
- "nb_NO": "Har dette stedet toaletter?",
- "nl": "Heeft deze plaats toiletten?",
- "pl": "Czy to miejsce ma toalety?",
- "pt": "Este lugar tem casas de banho?",
- "pt_BR": "Este lugar tem banheiros?",
- "ru": "Здесь есть туалеты?",
- "zh_Hant": "這個地方有廁所嗎?"
- },
- "mappings": [
- {
- "if": {
- "and": [
- "toilets=yes"
- ]
- },
- "then": {
- "en": "This place has toilets",
- "ca": "Aquest lloc té lavabos",
- "cs": "Toto místo má toalety",
- "da": "Dette sted har toiletter",
- "de": "Dieser Ort verfügt über Toiletten",
- "es": "Este lugar tiene baños",
- "fr": "Ce site a des toilettes",
- "hu": "Itt van WC",
- "id": "Tempat sini ada tandas",
- "it": "Questo posto ha servizi igienici",
- "ja": "ここにはトイレがある",
- "nb_NO": "Dette stedet har toalettfasiliteter",
- "nl": "Deze plaats heeft toiletten",
- "pl": "To miejsce ma toalety",
- "pt": "Este lugar tem casa de banho",
- "pt_BR": "Este lugar tem banheiros",
- "ru": "В этом месте есть туалеты",
- "zh_Hant": "這個地方有廁所"
- }
- },
- {
- "if": {
- "and": [
- "toilets=no"
- ]
- },
- "then": {
- "en": "This place does not have toilets",
- "ca": "Aquest lloc no té lavabos",
- "cs": "Toto místo nemá toalety",
- "da": "Dette sted har ikke toiletter",
- "de": "Dieser Ort verfügt nicht über Toiletten",
- "es": "Este lugar no tiene baños",
- "eu": "Toki honek ez dauka komunik",
- "fr": "Ce site n’a pas de toilettes",
- "hu": "Itt nincs WC",
- "id": "Tempat sini tiada tandas",
- "it": "Questo posto non ha servizi igienici",
- "ja": "ここにはトイレがない",
- "nb_NO": "Dette stedet har ikke toalettfasiliteter",
- "nl": "Deze plaats heeft geen toiletten",
- "pl": "To miejsce nie ma toalet",
- "pt": "Este lugar não tem casas de banho",
- "pt_BR": "Este lugar não tem banheiros",
- "ru": "В этом месте нет туалетов",
- "zh_Hant": "這個地方並沒有廁所"
- }
- }
- ]
- },
+ "has_toilets",
{
"id": "caravansites-website",
"question": {
@@ -935,5 +857,8 @@
"questions",
"reviews"
],
+ "filter": [
+ "free"
+ ],
"allowMove": true
}
diff --git a/assets/layers/current_view/current_view.json b/assets/layers/current_view/current_view.json
index 0d57a35f1..877d0daad 100644
--- a/assets/layers/current_view/current_view.json
+++ b/assets/layers/current_view/current_view.json
@@ -5,6 +5,7 @@
"shownByDefault": false,
"title": "Current View",
"popupInFloatover": true,
+ "titleIcons": [],
"pointRendering": [],
"lineRendering": [
{
diff --git a/assets/layers/diets/diets.json b/assets/layers/diets/diets.json
index 7b82778bf..e5acaef47 100644
--- a/assets/layers/diets/diets.json
+++ b/assets/layers/diets/diets.json
@@ -692,4 +692,4 @@
}
}
]
-}
+}
\ No newline at end of file
diff --git a/assets/layers/filters/filters.json b/assets/layers/filters/filters.json
index 591e40305..f58d3333b 100644
--- a/assets/layers/filters/filters.json
+++ b/assets/layers/filters/filters.json
@@ -554,7 +554,46 @@
"osmTags": "kids_area!=no"
}
]
+ },
+ {
+ "id": "self_checkout",
+ "options": [
+ {
+ "question": {
+ "en": "Has self-checkout",
+ "nl": "Heeft zelfscan"
+ },
+ "osmTags": {
+ "or": [
+ "self_checkout=yes",
+ "self_checkout=only"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "id": "shelter",
+ "options": [
+ {
+ "osmTags": {
+ "or": [
+ "shelter=yes",
+ "shelter=separate"
+ ]
+ },
+ "question": {
+ "en": "With a shelter",
+ "ca": "Amb refugi",
+ "cs": "S přístřeškem",
+ "de": "Mit Unterstand",
+ "es": "Con refugio",
+ "fr": "Avec un abri",
+ "it": "Con una pensilina"
+ }
+ }
+ ]
}
],
"allowMove": false
-}
+}
\ No newline at end of file
diff --git a/assets/layers/grab_rail/grab_rail.json b/assets/layers/grab_rail/grab_rail.json
index 5c7d212ed..da6181c8f 100644
--- a/assets/layers/grab_rail/grab_rail.json
+++ b/assets/layers/grab_rail/grab_rail.json
@@ -19,6 +19,9 @@
"it": "C'è un maniglione?",
"nl": "Is er een handgreep of grijpbeugel?"
},
+ "questionHint": {
+ "en": "Left and right are interpreted as when sitting on the toilet"
+ },
"mappings": [
{
"if": {
@@ -164,6 +167,10 @@
"it": "Il maniglione {{TRANSL}} è pieghevole?",
"nl": "Is de grijpbeugel aan de {{TRANSL}}kant opklapbaar?"
},
+ "questionHint": {
+ "en": "Left and right are as seen when sitting on the toilet",
+ "nl": "Links en rechts is wanneer men op de toilet zit"
+ },
"mappings": [
{
"if": "grab_rail:foldable:LOCATION=yes",
diff --git a/assets/layers/hut/alpine_hut.svg b/assets/layers/hut/alpine_hut.svg
new file mode 100644
index 000000000..e790edd62
--- /dev/null
+++ b/assets/layers/hut/alpine_hut.svg
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/assets/layers/hut/alpine_hut.svg.license b/assets/layers/hut/alpine_hut.svg.license
new file mode 100644
index 000000000..5e3616ed7
--- /dev/null
+++ b/assets/layers/hut/alpine_hut.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Geozeisig
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/layers/hut/hut.json b/assets/layers/hut/hut.json
new file mode 100644
index 000000000..3d126ea6f
--- /dev/null
+++ b/assets/layers/hut/hut.json
@@ -0,0 +1,179 @@
+{
+ "id": "hut",
+ "name": {
+ "en": "Huts"
+ },
+ "description": {
+ "en": "Layer showing basic huts, wilderness huts and alpine huts"
+ },
+ "source": {
+ "osmTags": {
+ "or": [
+ "tourism=wilderness_hut",
+ "tourism=alpine_hut",
+ {
+ "and": [
+ "amenity=shelter",
+ "shelter_type=basic_hut"
+ ]
+ }
+ ]
+ }
+ },
+ "minzoom": 10,
+ "title": {
+ "render": "Hut",
+ "mappings": [
+ {
+ "if": "name~*",
+ "then": "{name}"
+ },
+ {
+ "if": "tourism=wilderness_hut",
+ "then": "wilderness hut"
+ },
+ {
+ "if": "tourism=alpine_hut",
+ "then": "alpine hut"
+ },
+ {
+ "if": {
+ "and": [
+ "amenity=shelter",
+ "shelter_type=basic_hut"
+ ]
+ },
+ "then": "basic hut"
+ }
+ ]
+ },
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "marker": [
+ {
+ "icon": {
+ "render": "./assets/layers/shelter/shelter.svg",
+ "mappings": [
+ {
+ "if": "tourism=wilderness_hut",
+ "then": "./assets/layers/hut/wilderness_hut.svg"
+ },
+ {
+ "if": "tourism=alpine_hut",
+ "then": "./assets/layers/hut/alpine_hut.svg"
+ },
+ {
+ "if": {
+ "and": [
+ "amenity=shelter",
+ "shelter_type=basic_hut"
+ ]
+ },
+ "then": "./assets/layers/shelter/shelter.svg"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "lineRendering": [],
+ "presets": [
+ {
+ "tags": [
+ "tourism=wilderness_hut"
+ ],
+ "title": {
+ "en": "wilderness hut"
+ },
+ "description": {
+ "en": "An unserviced fully enclosed hut (with roof and walls) with beds or suitable sleeping areas and a fireplace or stove for heating and cooking."
+ }
+ },
+ {
+ "tags": [
+ "tourism=alpine_hut"
+ ],
+ "title": {
+ "en": "alpine hut"
+ },
+ "description": {
+ "en": "A serviced remote building located in the mountains intended to provide board and lodging."
+ }
+ },
+ {
+ "tags": [
+ "amenity=shelter",
+ "shelter_type=basic_hut"
+ ],
+ "title": {
+ "en": "basic hut"
+ },
+ "description": {
+ "en": "An unserviced fully enclosed hut (with roof and walls) with beds or suitable sleeping areas without a fireplace or stove."
+ }
+ }
+ ],
+ "tagRenderings": [
+ "images",
+ "name",
+ {
+ "builtin": "website",
+ "override": {
+ "condition": "tourism=wilderness_hut",
+ "id": "website-single"
+ }
+ },
+ {
+ "builtin": "contact",
+ "override": {
+ "condition": "tourism=alpine_hut"
+ }
+ },
+ "reservation",
+ "caravansites.caravansites-fee",
+ {
+ "id": "drinking_water",
+ "question": {
+ "en": "Is drinking water available here?"
+ },
+ "mappings": [
+ {
+ "if": "drinking_water=yes",
+ "then": {
+ "en": "Here is drinking water available."
+ }
+ },
+ {
+ "if": "drinking_water=no",
+ "then": {
+ "en": "Here is no drinking water available."
+ }
+ }
+ ]
+ },
+ "has_toilets",
+ "description",
+ {
+ "id": "preset_type",
+ "render": "{preset_type_select()}"
+ },
+ {
+ "builtin": "shelter.shelter-type",
+ "override": {
+ "condition": "amenity=shelter"
+ }
+ }
+ ],
+ "filter":[
+ "free"
+ ],
+ "allowMove": {
+ "enableRelocation": false,
+ "enableImproveAccuracy": true
+ }
+}
diff --git a/assets/layers/hut/license_info.json b/assets/layers/hut/license_info.json
new file mode 100644
index 000000000..f8341f4f8
--- /dev/null
+++ b/assets/layers/hut/license_info.json
@@ -0,0 +1,22 @@
+[
+ {
+ "path": "alpine_hut.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "Geozeisig"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Alpinehut.svg"
+ ]
+ },
+ {
+ "path": "wilderness_hut.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "Geozeisig"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Wilderness_hut.svg"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/hut/wilderness_hut.svg b/assets/layers/hut/wilderness_hut.svg
new file mode 100644
index 000000000..cbf146077
--- /dev/null
+++ b/assets/layers/hut/wilderness_hut.svg
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/assets/layers/hut/wilderness_hut.svg.license b/assets/layers/hut/wilderness_hut.svg.license
new file mode 100644
index 000000000..5e3616ed7
--- /dev/null
+++ b/assets/layers/hut/wilderness_hut.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Geozeisig
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/layers/parking_spaces/parking_spaces.json b/assets/layers/parking_spaces/parking_spaces.json
index 64e5f907e..0c36e859b 100644
--- a/assets/layers/parking_spaces/parking_spaces.json
+++ b/assets/layers/parking_spaces/parking_spaces.json
@@ -69,6 +69,15 @@
"icon": {
"render": "./assets/layers/parking_spaces/parking_space.svg",
"mappings": [
+ {
+ "if": {
+ "or": [
+ "access=private",
+ "access=no"
+ ]
+ },
+ "then": "./assets/layers/parking_spaces/parking_space_private.svg"
+ },
{
"if": "parking_space=disabled",
"then": "./assets/layers/toilet/wheelchair.svg"
@@ -99,7 +108,7 @@
],
"lineRendering": [
{
- "color": "#696969",
+ "color": "dimgray",
"width": "1"
}
],
@@ -295,6 +304,69 @@
"it": "Questo è un posto auto riservato al car sharing.",
"nl": "Deze parkeerplek is gereserveerd voor autodelen."
}
+ },
+ {
+ "if": "parking_space=women",
+ "then": {
+ "en": "This is a parking space reserved for women.",
+ "nl": "Deze parkeerplek is gereserveerd voor vrouwen."
+ }
+ }
+ ]
+ },
+ {
+ "id": "access",
+ "question": {
+ "en": "Who can use this parking space?",
+ "nl": "Wie mag deze parkeerplek gebruiken?"
+ },
+ "render": {
+ "en": "Access of parking space: {access}",
+ "nl": "Toegang tot parkeerplek: {access}"
+ },
+ "freeform": {
+ "key": "access",
+ "type": "string",
+ "addExtraTags": [
+ "fixme=Freeform used on 'access'-tag: possibly a wrong value"
+ ]
+ },
+ "mappings": [
+ {
+ "if": "access=",
+ "then": {
+ "en": "Anyone can use this parking space.",
+ "nl": "Iedereen kan deze parkeerplek gebruiken."
+ },
+ "hideInAnswer": true
+ },
+ {
+ "if": "access=yes",
+ "then": {
+ "en": "Anyone can use this parking space.",
+ "nl": "Iedereen kan deze parkeerplek gebruiken."
+ }
+ },
+ {
+ "if": "access=customers",
+ "then": {
+ "en": "This parking space is reserved for customers.",
+ "nl": "Deze parkeerplek is gereserveerd voor klanten."
+ }
+ },
+ {
+ "if": "access=private",
+ "then": {
+ "en": "This parking space is private and cannot be used by the general public.",
+ "nl": "Deze parkeerplek is privé en mag niet door het grote publiek worden gebruikt."
+ }
+ },
+ {
+ "if": "access=permit",
+ "then": {
+ "en": "This parking space is reserved for permit holders.",
+ "nl": "Deze parkeerplek is gereserveerd voor vergunninghouders."
+ }
}
]
},
@@ -310,6 +382,19 @@
"nl": "Deze parkeerplek heeft {capacity} plaatsen."
},
"mappings": [
+ {
+ "if": "capacity=",
+ "then": {
+ "en": "This parking space has 1 space.",
+ "ca": "Aquest espai d'aparcament té 1 plaça.",
+ "cs": "Toto parkoviště má 1 místo.",
+ "de": "Dieser Parkplatz hat 1 Stellplatz.",
+ "es": "Esta plaza de aparcamiento tiene 1 plaza.",
+ "it": "Questo posto auto ha 1 spazio.",
+ "nl": "Deze parkeerplek heeft 1 plaats."
+ },
+ "hideInAnswer": true
+ },
{
"if": "capacity=1",
"then": {
@@ -329,4 +414,4 @@
"enableImproveAccuracy": true,
"enableRelocation": false
}
-}
+}
\ No newline at end of file
diff --git a/assets/layers/picnic_site/picnic_site.json b/assets/layers/picnic_site/picnic_site.json
new file mode 100644
index 000000000..ef02be70b
--- /dev/null
+++ b/assets/layers/picnic_site/picnic_site.json
@@ -0,0 +1,304 @@
+{
+ "id": "picnic_site",
+ "name": {
+ "en": "Picnic sites",
+ "nl": "Picknickplaatsen"
+ },
+ "description": {
+ "en": "Picnic sites for eating outdoors, featuring amenities like toilets, water taps, BBQ, benches and shelters",
+ "nl": "Picknickplaatsen voor het eten in de buitenlucht, met voorzieningen zoals toiletten, waterkranen, BBQ, banken en schuilplaatsen"
+ },
+ "source": {
+ "osmTags": "tourism=picnic_site"
+ },
+ "minzoom": 10,
+ "title": {
+ "render": {
+ "en": "Picnic site",
+ "nl": "Picknickplaats"
+ }
+ },
+ "pointRendering": [
+ {
+ "iconSize": "35,35",
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "anchor": "center",
+ "marker": [
+ {
+ "color": "#3984e6",
+ "icon": "circle"
+ },
+ {
+ "icon": "./assets/layers/picnic_table/picnic_table.svg"
+ }
+ ]
+ }
+ ],
+ "lineRendering": [
+ {
+ "color": "#3984e6",
+ "fillColor": "#3984e6bd",
+ "width": 5
+ }
+ ],
+ "presets": [
+ {
+ "tags": [
+ "tourism=picnic_site"
+ ],
+ "title": {
+ "en": "a picnic site",
+ "nl": "een picknickplaats"
+ },
+ "description": {
+ "en": "A picnic site for eating outdoors, featuring amenities like toilets, water taps, BBQ, benches and shelters",
+ "nl": "Een picknickplaats voor het eten in de buitenlucht, met voorzieningen zoals toiletten, waterkranen, BBQ, banken en schuilplaatsen"
+ }
+ }
+ ],
+ "tagRenderings": [
+ "images",
+ {
+ "builtin": "name",
+ "override": {
+ "render": {
+ "en": "This picnic site is called {name}",
+ "nl": "Deze picknickplaats heet {name}"
+ }
+ }
+ },
+ {
+ "id": "shelter",
+ "question": {
+ "en": "Does this picnic site have a shelter?",
+ "nl": "Heeft deze picknickplaats een schuilplaats?"
+ },
+ "mappings": [
+ {
+ "if": "shelter=yes",
+ "then": {
+ "en": "This picnic site has a shelter.",
+ "nl": "Deze picknickplaats heeft een schuilplaats."
+ }
+ },
+ {
+ "if": "shelter=no",
+ "then": {
+ "en": "This picnic site does not have a shelter.",
+ "nl": "Deze picknickplaats heeft geen schuilplaats."
+ }
+ },
+ {
+ "if": "shelter=separate",
+ "then": {
+ "en": "This picnic site has a shelter, but is is mapped as a different icon.",
+ "nl": "Deze picknickplaats heeft een schuilplaats, maar deze staat los op de kaart."
+ }
+ }
+ ]
+ },
+ {
+ "id": "fireplace",
+ "question": {
+ "en": "Does this picnic site have a firepit?",
+ "nl": "Heeft deze picknickplaats een vuurplaats?"
+ },
+ "mappings": [
+ {
+ "if": "fireplace=yes",
+ "then": {
+ "en": "This picnic site has a firepit.",
+ "nl": "Deze picknickplaats heeft een vuurplaats."
+ }
+ },
+ {
+ "if": "fireplace=no",
+ "then": {
+ "en": "This picnic site does not have a firepit.",
+ "nl": "Deze picknickplaats heeft geen vuurplaats."
+ }
+ },
+ {
+ "if": "fireplace=separate",
+ "then": {
+ "en": "This picnic site has a firepit, but it is mapped as a different icon.",
+ "nl": "Deze picknickplaats heeft een vuurplaats, maar deze staat los op de kaart."
+ }
+ }
+ ]
+ },
+ {
+ "id": "bbq",
+ "question": {
+ "en": "Does this picnic site have a BBQ?",
+ "nl": "Heeft deze picknickplaats een BBQ?"
+ },
+ "mappings": [
+ {
+ "if": "bbq=yes",
+ "then": {
+ "en": "This picnic site has a BBQ.",
+ "nl": "Deze picknickplaats heeft een BBQ."
+ }
+ },
+ {
+ "if": "bbq=no",
+ "then": {
+ "en": "This picnic site does not have a BBQ.",
+ "nl": "Deze picknickplaats heeft geen BBQ."
+ }
+ },
+ {
+ "if": "bbq=separate",
+ "then": {
+ "en": "This picnic site has a BBQ, but it is mapped as a different icon.",
+ "nl": "Deze picknickplaats heeft een BBQ, maar deze staat los op de kaart."
+ }
+ }
+ ]
+ },
+ {
+ "id": "covered",
+ "question": {
+ "en": "Is this picnic site covered?",
+ "nl": "Is deze picknickplaats overdekt?"
+ },
+ "mappings": [
+ {
+ "if": "covered=yes",
+ "then": {
+ "en": "This picnic site is covered.",
+ "nl": "Deze picknickplaats is overdekt."
+ }
+ },
+ {
+ "if": "covered=no",
+ "then": {
+ "en": "This picnic site is not covered.",
+ "nl": "Deze picknickplaats is niet overdekt."
+ }
+ }
+ ]
+ },
+ {
+ "id": "drinking_water",
+ "question": {
+ "en": "Does this picnic site have drinking water?",
+ "nl": "Heeft deze picknickplaats drinkwater?"
+ },
+ "mappings": [
+ {
+ "if": "drinking_water=yes",
+ "then": {
+ "en": "This picnic site has drinking water.",
+ "nl": "Deze picknickplaats heeft drinkwater."
+ }
+ },
+ {
+ "if": "drinking_water=no",
+ "then": {
+ "en": "This picnic site does not have drinking water.",
+ "nl": "Deze picknickplaats heeft geen drinkwater."
+ }
+ },
+ {
+ "if": "drinking_water=separate",
+ "then": {
+ "en": "This picnic site has drinking water, but it is mapped as a different icon.",
+ "nl": "Deze picknickplaats heeft drinkwater, maar deze staat los op de kaart."
+ }
+ }
+ ]
+ },
+ {
+ "id": "openfire",
+ "question": {
+ "en": "Is open fire allowed at this picnic site?",
+ "nl": "Is open vuur toegestaan op deze picknickplaats?"
+ },
+ "mappings": [
+ {
+ "if": "openfire=yes",
+ "then": {
+ "en": "Open fire is allowed at this picnic site.",
+ "nl": "Open vuur is toegestaan op deze picknickplaats."
+ }
+ },
+ {
+ "if": "openfire=no",
+ "then": {
+ "en": "Open fire is not allowed at this picnic site.",
+ "nl": "Open vuur is niet toegestaan op deze picknickplaats."
+ }
+ },
+ {
+ "if": "openfire=permit",
+ "then": {
+ "en": "Open fire is allowed at this picnic site with a permit.",
+ "nl": "Open vuur is toegestaan op deze picknickplaats met een vergunning."
+ }
+ }
+ ]
+ }
+ ],
+ "filter": [
+ "shelter",
+ {
+ "id": "fireplace",
+ "options": [
+ {
+ "question": {
+ "en": "With a firepit",
+ "nl": "Met een vuurplaats"
+ },
+ "osmTags": {
+ "or": [
+ "fireplace=yes",
+ "fireplace=separate"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "id": "bbq",
+ "options": [
+ {
+ "question": {
+ "en": "With a BBQ",
+ "nl": "Met een BBQ"
+ },
+ "osmTags": {
+ "or": [
+ "bbq=yes",
+ "bbq=separate"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "id": "drinking_water",
+ "options": [
+ {
+ "question": {
+ "en": "With drinking water",
+ "nl": "Met drinkwater"
+ },
+ "osmTags": {
+ "or": [
+ "drinking_water=yes",
+ "drinking_water=separate"
+ ]
+ }
+ }
+ ]
+ }
+ ],
+ "allowMove": {
+ "enableImproveAccuracy": true
+ }
+}
\ No newline at end of file
diff --git a/assets/layers/questions/questions.json b/assets/layers/questions/questions.json
index 69bd3b831..d33a86485 100644
--- a/assets/layers/questions/questions.json
+++ b/assets/layers/questions/questions.json
@@ -3118,7 +3118,8 @@
"if": "nobrand=yes",
"addExtraTags": [
"brand=",
- "brand:wikidata="
+ "brand:wikidata=",
+ "brand:wikipedia="
],
"then": {
"en": "Not part of a bigger brand",
@@ -3567,6 +3568,81 @@
"filter": [
"filters.kids_area"
]
+ },
+ {
+ "id": "self_checkout",
+ "labels": [
+ "self_checkout_questions"
+ ],
+ "question": {
+ "en": "Does this place offer self-checkout?",
+ "nl": "Biedt deze plaats zelfscannen aan?"
+ },
+ "questionHint": {
+ "en": "e.g. handheld scanners or a self-checkout kiosk",
+ "nl": "bijv. handscanners of een zelfscankassa"
+ },
+ "mappings": [
+ {
+ "if": "self_checkout=yes",
+ "then": {
+ "en": "This place offers self-checkout",
+ "nl": "Deze plaats biedt zelfscannen aan"
+ }
+ },
+ {
+ "if": "self_checkout=no",
+ "then": {
+ "en": "This place does not offer self-checkout",
+ "nl": "Deze plaats biedt geen zelfscannen aan"
+ }
+ },
+ {
+ "if": "self_checkout=only",
+ "then": {
+ "en": "This place only offers self-checkout",
+ "nl": "Deze plaats biedt enkel zelfscannen aan"
+ }
+ }
+ ],
+ "filter": [
+ "filters.self_checkout"
+ ]
+ },
+ {
+ "id": "self_checkout_type",
+ "labels": [
+ "self_checkout_questions"
+ ],
+ "question": {
+ "en": "What kind of self-checkout does this place offer?",
+ "nl": "Wat voor soort zelfscannen biedt deze plaats aan?"
+ },
+ "mappings": [
+ {
+ "if": "self_checkout:handheld=yes",
+ "ifnot": "self_checkout:handheld=no",
+ "then": {
+ "en": "This place offers self-checkout using a handheld scanner",
+ "nl": "Deze plaats biedt zelfscannen met een handscanner aan"
+ }
+ },
+ {
+ "if": "self_checkout:self_scan=yes",
+ "ifnot": "self_checkout:self_scan=no",
+ "then": {
+ "en": "This place offers self-checkout using a self-checkout kiosk",
+ "nl": "Deze plaats biedt zelfscannen met een zelfscankassa aan"
+ }
+ }
+ ],
+ "condition": {
+ "or": [
+ "self_checkout=yes",
+ "self_checkout=only"
+ ]
+ },
+ "multiAnswer": true
}
],
"allowMove": false,
@@ -3582,4 +3658,4 @@
}
}
]
-}
+}
\ No newline at end of file
diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json
index 332a9532a..a8c63e6ef 100644
--- a/assets/layers/shops/shops.json
+++ b/assets/layers/shops/shops.json
@@ -43,7 +43,8 @@
"craft=key_cutter"
]
},
- "shop!=mall"
+ "shop!=mall",
+ "shop!=no"
]
}
},
@@ -486,7 +487,12 @@
"es": "Esta tienda no tiene una marca específica, no forma parte de una cadena más grande",
"it": "Questo negozio non ha un marchio specifico, non fa parte di una catena più grande",
"uk": "Цей магазин не має певного бренду, він не є частиною великої мережі"
- }
+ },
+ "addExtraTags": [
+ "brand=",
+ "brand:wikidata=",
+ "brand:wikipedia="
+ ]
}
]
},
@@ -1666,6 +1672,28 @@
}
}
},
+ {
+ "builtin": "self_checkout",
+ "override": {
+ "+mappings": [
+ {
+ "if": {
+ "and": [
+ "self_checkout=",
+ "shop!=supermarket",
+ "shop!=convenience",
+ "shop!=chemist"
+ ]
+ },
+ "then": {
+ "en": "This shop (probably) does not offer self-checkout"
+ },
+ "hideInAnswer": true
+ }
+ ]
+ }
+ },
+ "self_checkout_type",
"description",
"toilet_at_amenity_lib.all"
],
@@ -1739,4 +1767,4 @@
]
},
"allowMove": true
-}
+}
\ No newline at end of file
diff --git a/assets/layers/summary/summary.json b/assets/layers/summary/summary.json
index def0bd887..60dcf945c 100644
--- a/assets/layers/summary/summary.json
+++ b/assets/layers/summary/summary.json
@@ -29,8 +29,8 @@
}
]
},
- "labelCss": "background: #ffffffbb",
- "labelCssClasses": "w-12 text-lg rounded-xl p-1 px-2"
+ "labelCss": "background: #ffffffcc; min-width: 2rem",
+ "labelCssClasses": "text-lg rounded p-1 px-2 border-2 border-gray font-bold"
}
],
"tagRenderings": [
diff --git a/assets/layers/surveillance_camera/surveillance_camera.json b/assets/layers/surveillance_camera/surveillance_camera.json
index 2ecaf1df5..e19ab6d52 100644
--- a/assets/layers/surveillance_camera/surveillance_camera.json
+++ b/assets/layers/surveillance_camera/surveillance_camera.json
@@ -87,6 +87,10 @@
"if": "camera:type=doorbell",
"then": "./assets/layers/surveillance_camera/doorbell.svg"
},
+ {
+ "if": "camera:type=panorama",
+ "then": "./assets/themes/surveillance/panorama.svg"
+ },
{
"if": "_direction:leftright=right",
"then": "./assets/themes/surveillance/cam_right.svg"
@@ -110,6 +114,10 @@
]
},
"then": "50,35,center"
+ },
+ {
+ "if": "camera:type=panorama",
+ "then": "55,55,center"
}
],
"render": "35,35,center"
@@ -407,6 +415,16 @@
"ru": "Панорамная камера"
}
},
+ {
+ "if": "camera:type=panorama",
+ "icon": "./assets/themes/surveillance/panorama.svg",
+ "then": {
+ "en": "A 360° camera",
+ "de": "Eine 360°-Kamera",
+ "es": "Una cámara de 360°",
+ "fr": "Une caméra 360°"
+ }
+ },
{
"if": "camera:type=doorbell",
"icon": {
@@ -530,7 +548,7 @@
"da": "Hvilken form for overvågning er dette kamera?",
"de": "Was überwacht diese Kamera?",
"es": "¿Qué tipo de vigilancia es esta cámara?",
- "fr": "De quel genre de surveillance cette caméra est-elle ?",
+ "fr": "De quel genre de surveillance cette caméra est-elle ?",
"it": "Che tipo di sorveglianza è questa telecamera?",
"nl": "Wat soort bewaking wordt hier uitgevoerd?",
"sl": "Kaj nadzoruje ta kamera?"
diff --git a/assets/layers/transit_stops/transit_stops.json b/assets/layers/transit_stops/transit_stops.json
index d9d045554..9874e52a7 100644
--- a/assets/layers/transit_stops/transit_stops.json
+++ b/assets/layers/transit_stops/transit_stops.json
@@ -548,28 +548,7 @@
}
],
"filter": [
- {
- "id": "shelter",
- "options": [
- {
- "osmTags": {
- "or": [
- "shelter=yes",
- "shelter=separate"
- ]
- },
- "question": {
- "en": "With a shelter",
- "ca": "Amb refugi",
- "cs": "S přístřeškem",
- "de": "Mit Unterstand",
- "es": "Con refugio",
- "fr": "Avec un abri",
- "it": "Con una pensilina"
- }
- }
- ]
- },
+ "shelter",
{
"id": "bench",
"options": [
@@ -617,4 +596,4 @@
"tactile_paving"
],
"allowMove": false
-}
+}
\ No newline at end of file
diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json
index a02fcba97..2a812bb1a 100644
--- a/assets/layers/usersettings/usersettings.json
+++ b/assets/layers/usersettings/usersettings.json
@@ -1906,6 +1906,46 @@
"render": {
"*": "{storage_all_tags()}"
}
+ },
+ {
+ "id": "debug_serviceworker_accordeon",
+ "render": {
+ "special": {
+ "header": "debug_serviceworker_accordeon_title",
+ "labels": "debug_serviceworker",
+ "type": "group"
+ }
+ },
+ "condition": "mapcomplete-show_debug=yes"
+ },
+ {
+ "id": "debug_serviceworker_accordeon_title",
+ "labels": [
+ "hidden"
+ ],
+ "render": {
+ "en": "Debug information about the service worker"
+ }
+ },
+ {
+ "id": "expl",
+ "labels": [
+ "debug_serviceworker",
+ "hidden"
+ ],
+ "render": {
+ "en": "To clear the service worker data, use the 'clear caches' button"
+ }
+ },
+ {
+ "id": "service_worker_tags",
+ "labels": [
+ "debug_serviceworker",
+ "hidden"
+ ],
+ "render": {
+ "*": "{serviceworker_all_tags()}"
+ }
}
],
"allowMove": false
diff --git a/assets/themes/arcade/arcade.json b/assets/themes/arcade/arcade.json
new file mode 100644
index 000000000..137cdf86a
--- /dev/null
+++ b/assets/themes/arcade/arcade.json
@@ -0,0 +1,13 @@
+{
+ "id": "arcade",
+ "title": {
+ "en": "Arcades"
+ },
+ "description": {
+ "en": "A map of arcades"
+ },
+ "icon": "./assets/layers/arcade/arcade.svg",
+ "layers": [
+ "arcade"
+ ]
+}
\ No newline at end of file
diff --git a/assets/themes/grb/grb.json b/assets/themes/grb/grb.json
index 78405b1b6..e4f2698c3 100644
--- a/assets/themes/grb/grb.json
+++ b/assets/themes/grb/grb.json
@@ -701,6 +701,7 @@
{
"builtin": "current_view",
"override": {
+ "popupInFloatover": "title",
"calculatedTags+": [
"_overlapping=Number(feat.properties.zoom) >= 14 ? overlapWith(feat)('grb').map(ff => ff.feat.properties) : undefined",
"_applicable_conflate=get(feat)('_overlapping')?.filter(p => p._imported !== 'yes' && (!p['_imported_osm_still_fresh'] || !p['_imported_osm_object_found']) && p['_overlap_absolute'] > 10 && p['_overlap_percentage'] > 80 && p['_reverse_overlap_percentage'] > 80)?.map(p => p.id)",
diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
index 5b19fa6de..80382fd51 100644
--- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json
+++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
@@ -38,6 +38,9 @@
"zh_Hant": "顯示由MapComplete進行的變動"
},
"icon": "./assets/svg/logo.svg",
+ "startZoom": 1,
+ "startLat": 0,
+ "startLon": 0,
"hideFromOverview": true,
"layers": [
{
diff --git a/assets/themes/nature/nature.json b/assets/themes/nature/nature.json
index 7158a1d5e..a91c126a1 100644
--- a/assets/themes/nature/nature.json
+++ b/assets/themes/nature/nature.json
@@ -60,12 +60,14 @@
"nature_reserve",
{
"builtin": [
+ "hut",
"shelter"
],
"override": {
"minzoom": 11
}
},
+ "picnic_site",
{
"builtin": [
"map",
diff --git a/assets/themes/onwheels/onwheels.json b/assets/themes/onwheels/onwheels.json
index 3c2318ab1..3801f0549 100644
--- a/assets/themes/onwheels/onwheels.json
+++ b/assets/themes/onwheels/onwheels.json
@@ -598,6 +598,7 @@
{
"builtin": "current_view",
"override": {
+ "popupInFloatover": "title",
"+pointRendering": [
{
"location": [
diff --git a/assets/themes/parkings/parkings.json b/assets/themes/parkings/parkings.json
index 0e3480033..bb1ec8692 100644
--- a/assets/themes/parkings/parkings.json
+++ b/assets/themes/parkings/parkings.json
@@ -65,7 +65,10 @@
"parking_spaces",
"parking_ticket_machine",
{
- "builtin": "charging_station",
+ "builtin": [
+ "charging_station",
+ "charge_point"
+ ],
"override": {
"minzoom": 18
}
diff --git a/assets/themes/surveillance/license_info.json b/assets/themes/surveillance/license_info.json
index 53a9f3c25..4b40d545c 100644
--- a/assets/themes/surveillance/license_info.json
+++ b/assets/themes/surveillance/license_info.json
@@ -30,5 +30,13 @@
"Pieter Vander Vennet"
],
"sources": []
+ },
+ {
+ "path": "panorama.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "Martin Bodin"
+ ],
+ "sources": []
}
]
\ No newline at end of file
diff --git a/assets/themes/surveillance/panorama.svg b/assets/themes/surveillance/panorama.svg
new file mode 100644
index 000000000..6e135df24
--- /dev/null
+++ b/assets/themes/surveillance/panorama.svg
@@ -0,0 +1,109 @@
+
+
diff --git a/assets/themes/surveillance/panorama.svg.license b/assets/themes/surveillance/panorama.svg.license
new file mode 100644
index 000000000..27a495574
--- /dev/null
+++ b/assets/themes/surveillance/panorama.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Martin Bodin
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/themes/zhv/zhv.json b/assets/themes/zhv/zhv.json
index 2138c01f7..f5d67e07c 100644
--- a/assets/themes/zhv/zhv.json
+++ b/assets/themes/zhv/zhv.json
@@ -56,7 +56,7 @@
"render": {
"special": {
"type": "import_button",
- "targetLayer": "transit_stops",
+ "targetLayer": "all_transit_stops",
"tags": "_tags",
"text": {
"en": "Add this stop",
diff --git a/index.html b/index.html
index 04cf21dcf..796ba73ec 100644
--- a/index.html
+++ b/index.html
@@ -43,8 +43,6 @@
-
-