Merge branch develop

This commit is contained in:
Quincy Morgan
2020-12-16 11:43:36 -05:00
2283 changed files with 13979 additions and 76629 deletions
+44 -6
View File
@@ -15,19 +15,39 @@
"sourceType": "module"
},
"rules": {
"accessor-pairs": "error",
"array-callback-return": "warn",
"arrow-spacing": "warn",
"block-scoped-var": "error",
"block-spacing": ["warn", "always"],
"brace-style": ["warn", "1tbs", { "allowSingleLine": true }],
"class-methods-use-this": "error",
"complexity": ["warn", 50],
"curly": ["warn", "multi-line"],
"default-case-last": "error",
"default-param-last": "error",
"dot-notation": "error",
"eqeqeq": ["error", "smart"],
"func-call-spacing": ["warn", "never"],
"grouped-accessor-pairs": "error",
"indent": ["off", 4],
"keyword-spacing": "error",
"linebreak-style": ["error", "unix"],
"no-await-in-loop": "error",
"no-caller": "error",
"no-catch-shadow": "error",
"no-console": "warn",
"no-constructor-return": "error",
"no-div-regex": "error",
"no-duplicate-imports": "warn",
"no-eq-null": "error",
"no-eval": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-extra-label": "error",
"no-floating-decimal": "error",
"no-global-assign": "error",
"no-implicit-coercion": ["warn", { "boolean": false, "number": false }],
"no-implied-eval": "error",
"no-invalid-this": "off",
"no-iterator": "error",
@@ -35,6 +55,7 @@
"no-label-var": "error",
"no-lone-blocks": "error",
"no-loop-func": "error",
"no-loss-of-precision": "error",
"no-multi-str": "error",
"no-new": "error",
"no-new-func": "error",
@@ -42,31 +63,48 @@
"no-octal": "error",
"no-octal-escape": "error",
"no-process-env": "error",
"no-promise-executor-return": "error",
"no-proto": "error",
"no-prototype-builtins": "off",
"no-restricted-properties": "error",
"no-return-assign": "off",
"no-return-await": "error",
"no-script-url": "error",
"no-self-compare": "error",
"no-sequences": "error",
"no-shadow": "off",
"no-shadow-restricted-names": "error",
"no-template-curly-in-string": "warn",
"no-throw-literal": "error",
"no-trailing-spaces": "warn",
"no-undef": "error",
"no-unneeded-ternary": "error",
"no-unused-expressions": "error",
"no-undef-init": "warn",
"no-unexpected-multiline": "error",
"no-unused-vars": "warn",
"no-unneeded-ternary": "error",
"no-unmodified-loop-condition": "error",
"no-unreachable": "warn",
"no-unreachable-loop": "warn",
"no-unused-expressions": "error",
"no-unused-vars": "warn",
"no-use-before-define": ["off", "nofunc"],
"no-useless-backreference": "warn",
"no-useless-call": "warn",
"no-useless-computed-key": "warn",
"no-useless-concat": "warn",
"no-useless-constructor": "warn",
"no-useless-escape": "off",
"no-useless-rename": "warn",
"no-void": "error",
"no-warning-comments": "warn",
"no-whitespace-before-property": "warn",
"no-with": "error",
"no-use-before-define": ["off", "nofunc"],
"quotes": ["error", "single"],
"radix": ["error", "always"],
"require-atomic-updates": "error",
"require-await": "error",
"semi": ["error", "always"],
"semi-spacing": "error",
"space-unary-ops": "error",
"wrap-regex": "off",
"quotes": ["error", "single"]
"wrap-regex": "off"
}
}
+2 -2
View File
@@ -12,6 +12,6 @@ jobs:
- uses: codespell-project/actions-codespell@master
with:
check_filenames: true
skip: ./.git,./data/territory_languages.json,./data/imagery.json,./data/languages.json,./data/locales.json,./data/address_formats.json,./dist/locales,./docs/img,./dist/img,./data/presets/categories.json,./data/presets/fields.json,./data/presets/presets.json,./data/presets.yaml,./data/taginfo.json,./data/deprecated.json
ignore_words_list: "auxilary,casette,cemetary,chancel,childs,extentions,files',froms,generat,guerilla,kindergarden,nd,specialties,vias,visibles,tos"
skip: ./.git,./data/territory_languages.json,./data/imagery.json,./data/languages.json,./data/address_formats.json,./dist/locales,./docs/img,./dist/img
ignore_words_list: "auxilary,casette,cemetary,chancel,childs,extentions,files',froms,generat,guerilla,kindergarden,nd,specialties,vias,visibles,tos,sculpter"
only_warn: 1
-1
View File
@@ -15,7 +15,6 @@ type = YAML
[id-editor.presets]
file_filter = .tx/tmp/presets/<lang>.yaml
source_file = data/presets.yaml
source_lang = en
type = YAML
+3 -7
View File
@@ -110,8 +110,8 @@ such as opening the edit menu via long-pressing instead of right-clicking.
| | Icon | Input Setup | Notes | Issues |
|---|---|---|---|---|
| ✅ | 🖱⌨️ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table |
| 🟠 | ⌨️ | Keyboard only | iD hasn't been optimized for keyboard-only navigation, but some is possible. Geometry editing isn't possible | [#8004](https://github.com/openstreetmap/iD/issues/8004) |
| 🟠 | 🖱 | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible |
| 🟠 | ⌨️ | Keyboard only | A keyboard can be used to access all of iD's screens and controls, but not for interacting with data in the map | [#8004](https://github.com/openstreetmap/iD/issues/8004) |
| 🟠 | 🖱 | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible. Text input requires something like a [virtual keyboard](https://en.wikipedia.org/wiki/Virtual_keyboard) |
| 🟠 | 🖐 | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | [#7599](https://github.com/openstreetmap/iD/issues/7599) |
| 🟠 | ✍️ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Moving and rotating selections isn't possible, nor is selecting multiple features |
| 🤷 | ✍️🔲 | Stylus on a [graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | |
@@ -215,7 +215,7 @@ are kept close to 100% coverage, while most languages have less than 50% coverag
| ✅ | Browser zoom keyboard shortcuts | The <kbd>Cmd</kbd><kbd>+</kbd> and <kbd>Cmd</kbd><kbd></kbd> shortcuts used by major browsers are supported | [#7976](https://github.com/openstreetmap/iD/issues/7976) |
| 🟠 | [Don't rely on color alone](https://www.wuhcag.com/use-of-colour/) | Some classes of map data are indistinguishable except for their colors | |
| 🤷 | [High-contrast text colors](https://www.wuhcag.com/contrast-enhanced/) | | |
| ❌ | [Dark mode](https://en.wikipedia.org/wiki/Light-on-dark_color_scheme) | Many people find light-on-dark UIs easier to read under certain conditions | |
| ❌ | [Dark mode](https://en.wikipedia.org/wiki/Light-on-dark_color_scheme) | Many people find light-on-dark UIs easier to read under certain conditions | [#8214](https://github.com/openstreetmap/iD/issues/8214) |
| ❌ | Audio feedback | This would need to be easy to disable or even disabled by default | [#5821](https://github.com/openstreetmap/iD/issues/5821) |
<br/>
@@ -225,7 +225,3 @@ are kept close to 100% coverage, while most languages have less than 50% coverag
iD itself currently has no audio, so hearing difficulties alone are not expected to impact usability.
<br/>
---
_Further sections coming soon…_
+59
View File
@@ -319,3 +319,62 @@ var id = iD.coreContext()
```
This should be set with caution for performance reasons. The OpenStreetMap API has a limitation of 50000 nodes per request.
### Custom Presets
iD supports deployments which use a custom set of presets. You can supply presets via
the `presets` accessor:
```js
var id = iD.coreContext().presets({
presets: { ... },
fields: { ... },
defaults: { ... },
categories: { ... }
});
```
All four parts (presets, fields, defaults, and categories) must be supplied. In addition,
several base presets and fields must be included.
Basic geometric presets must be included so that every feature matches at least one preset.
For example:
```js
"area": {
"name": "Area",
"tags": {},
"geometry": ["area"],
"matchScore": 0.1
},
"line": {
"name": "Line",
"tags": {},
"geometry": ["line"],
"matchScore": 0.1
},
"point": {
"name": "Point",
"tags": {},
"geometry": ["point", "vertex"],
"matchScore": 0.1
},
"relation": {
"name": "Relation",
"tags": {},
"geometry": ["relation"],
"matchScore": 0.1
}
```
A "name" field must be included:
```js
"name": {
"key": "name",
"type": "localized",
"label": "Name",
"placeholder": "Common name (if any)"
}
```
+10 -1
View File
@@ -457,8 +457,17 @@ An issue with the active [MapRules](https://github.com/radiant-maxar/maprules) v
A feature's tags indicate it should have a different geometry than it currently does.
* `area_as_line`: an unclosed way has tags implying it should be a closed area (e.g. `area=yes` or `building=yes`)
* `vertex_as_point`: a detached node has tags implying it should be part of a way (e.g. `highway=stop`)
* `area_as_point`
* `area_as_vertex`
* `line_as_area`
* `line_as_point`
* `line_as_vertex`: a detached node has tags implying it should be a line (e.g. `highway=motorway`)
* `point_as_area`
* `point_as_line`
* `point_as_vertex`: a vertex node has tags implying it should be detached from ways (e.g. `amenity=cafe`)
* `vertex_as_area`
* `vertex_as_line`
* `vertex_as_point`: a detached node has tags implying it should be part of a way (e.g. `highway=stop`)
* `unclosed_multipolygon_part`: a relation is tagged as a multipolygon but not all of its member ways form closed rings
##### `missing_role`
+141 -25
View File
@@ -36,8 +36,118 @@ _Breaking developer changes, which may affect downstream projects or sites that
[@xxxx]: https://github.com/xxxx
-->
# 2.19.5
##### 2020-Nov-9
#### :sparkles: Usability & Accessibility
* Enable loading iD with a feature selected even when zoomed out ([#8122])
[#8122]: https://github.com/openstreetmap/iD/issues/8122
#### :bug: Bugfixes
* Fix an issue where some fields that allow multiple values would not show existing tags ([#8155])
* Fix a bug where points could move back unexpectedly when changing their tags after dragging them ([#7606])
* Fix rare instances where iD could add an invalid localized name tag ([#8165])
[#8155]: https://github.com/openstreetmap/iD/issues/8155
[#7606]: https://github.com/openstreetmap/iD/issues/7606
[#8165]: https://github.com/openstreetmap/iD/issues/8165
#### :earth_asia: Localization
* Support dozens of additional languages in the Multilingual Name field ([#8165])
[#8165]: https://github.com/openstreetmap/iD/issues/8165
#### :rocket: Presets
* Indicate the units for the Capacity field on storage tank presets ([#8078], [#8112], thanks [@karmanya007])
[#8078]: https://github.com/openstreetmap/iD/issues/8078
[#8112]: https://github.com/openstreetmap/iD/issues/8112
[@karmanya007]: https://github.com/karmanya007
# 2.19.4
##### 2020-Nov-2
#### :bug: Bugfixes
* Fix an issue with missing data in the Keyboard Shortcuts screen ([#8137])
* Fix a bug where deselecting items in the selected features list would instead select them in some browsers ([#8151])
* Properly open the Custom Background screen when a custom layer is requested but not set ([#8141], thanks [@willemarcel])
[#8137]: https://github.com/openstreetmap/iD/issues/8137
[#8151]: https://github.com/openstreetmap/iD/issues/8151
[#8141]: https://github.com/openstreetmap/iD/issues/8141
[@willemarcel]: https://github.com/willemarcel
#### :rocket: Presets
* Add Telephone field to Warehouse preset ([#8150])
[#8150]: https://github.com/openstreetmap/iD/issues/8150
# 2.19.3
##### 2020-Oct-29
#### :sparkles: Usability & Accessibility
* Make the Warnings and Errors lists in the Issues pane navigable with a keyboard
* Add hover and focus styling to the Change Direction button in the One Way field
* Disable keyboard-navigation in the sidebar when it's collapsed and hidden
* Use a more logical keyboard focus order for the "Zoom in to edit" button and the map attribution links
* Improve the alignment of the new version badge during text-only zoom and keep its tooltip from going offscreen
#### :scissors: Operations
* Don't remove `source:date` or other `source:` tags when downgrading features to basic buildings or addresses ([#8097])
[#8097]: https://github.com/openstreetmap/iD/issues/8097
#### :camera: Street-Level
* Apply the date and username filters to the Map Features and Traffic Signs layers as well as photo layers ([#8133])
[#8133]: https://github.com/openstreetmap/iD/issues/8133
#### :bug: Bugfixes
* Fix an issue where setting the Wikidata field value wouldn't update the `wikidata` tag ([#8132])
* Fix the functionality where hovering over items in the Relations dropdown highlights those features in the map ([#8134])
* Fix a problem where attempting to toggle between metric and imperial units in the Measurement panel wouldn't do anything
* Fix cases where the Centroid value in the Measurement panel could be incorrect
* Fix a bug where a point extracted from an area could be placed very far from away from the expected location
* Avoid a potential error due to resizing the sidebar when iD is embedded in Tasking Manager
[#8132]: https://github.com/openstreetmap/iD/issues/8132
[#8134]: https://github.com/openstreetmap/iD/issues/8134
# 2.19.2
##### 2020-Oct-28
#### :bug: Bugfixes
* Fix an issue where the Lines chapter of the walkthrough could not be completed ([#8128], thanks [@ricloy])
[#8128]: https://github.com/openstreetmap/iD/issues/8128
[@ricloy]: https://github.com/ricloy
# 2.19.1
##### 2020-Oct-27
#### :bug: Bugfixes
* Fix a critical bug where changing Allowed Access or Bike Lanes fields could add invalid tags ([#8126])
* Fix an issue with automatically opening the sidebar after drawing a new feature
* Correct the alignment of the new update badge icon
[#8126]: https://github.com/openstreetmap/iD/issues/8126
# 2.19.0
##### Planned: 2020-Oct
##### 2020-Oct-27
#### :mega: Release Highlights
* :car: **Street-level photo filtering** now lets you limit photos to a given timeframe or user. Shoutout to [@nickplesha] for this!<br/>
_To reveal filters, enable one or more Photo Overlays in the Map Data pane (shortcut <kbd>F</kbd>)._
* :signal_strength: **Scaling features** is now possible via keyboard shortcuts.<br/>
_Press <kbd>Shift</kbd><kbd>+</kbd> or <kbd>Shift</kbd><kbd></kbd> to make the selected features bigger or smaller._
* :keyboard: **Keyboard navigation** has been expanded significantly.<br/>
_Use <kbd>Tab</kbd> and <kbd>Shift</kbd><kbd>Tab</kbd> to zip around iD without a mouse._
* :capital_abcd: **Text-only zoom** is now fully supported.<br/>
_Most browsers let you increase the text size of pages without making everything else bigger._
* :book: If you speak **multiple non-English languages**, iD will now prefer any of them before defaulting to English.<br/>
_For best results, make sure that every language you understand is listed in your [browser settings](https://www.computerhope.com/issues/ch001904.htm)._
#### :boom: Breaking Changes
* The modifier key to zoom and move the map or selection by a lot has changed from <kbd>Cmd</kbd> / <kbd>Ctrl</kbd> to <kbd>Opt</kbd> / <kbd>Alt</kbd> ([#7976])
@@ -45,14 +155,15 @@ _Breaking developer changes, which may affect downstream projects or sites that
[#7976]: https://github.com/openstreetmap/iD/issues/7976
#### :sparkles: Usability & Accessibility
* Make the interface navigable using only a keyboard ([#7770], [#8004])
* Make the interface (except map elements) navigable using only a keyboard ([#7770], [#8004])
* Enable the Relations section of the sidebar when multiple features are selected ([#7753])
* Support text-only page zoom, a vision accessibility feature in most web browsers ([#7965], [#7979])
* Support common browser shortcuts for zooming the page size: <kbd>Cmd</kbd><kbd>+</kbd> / <kbd>Ctrl</kbd><kbd>+</kbd> and <kbd>Cmd</kbd><kbd></kbd> / <kbd>Ctrl</kbd><kbd></kbd> ([#7976])
* Show the distance between any two selected points in the Measurement panel ([#7952])
* Style driveways, parking aisles, and emergency access roads uniquely in the map ([#7961])
* Make the custom data labels white instead of pink, for better readability ([#8055])
* Reduce times when the Keyboard Shortcuts list becomes one big column ([#8021])
* Reduce situations where the Keyboard Shortcuts list becomes one big column ([#8021])
* Increase the possible range of background imagery Brightness, Contrast, Saturation, and Sharpness from 25-200% to 0-300%
[#7770]: https://github.com/openstreetmap/iD/issues/7770
[#8004]: https://github.com/openstreetmap/iD/issues/8004
@@ -99,9 +210,12 @@ _Breaking developer changes, which may affect downstream projects or sites that
* Fix selection and highlighting issues with Mapillary detections ([#7048], [#7177], [#7885], thanks [@nickplesha])
* Load auxiliary photo overlay resources only when needed, not upon startup ([#7982], [#8061])
* Fix issue where some photo viewer controls could not be clicked ([#7974])
* Fix issue where some button icons wouldn't appear in the Mapillary viewer ([#7920], [#8063])
[@nickplesha]: https://github.com/nickplesha
[#8063]: https://github.com/openstreetmap/iD/issues/8063
[#7920]: https://github.com/openstreetmap/iD/issues/7920
[#4518]: https://github.com/openstreetmap/iD/issues/4518
[#7342]: https://github.com/openstreetmap/iD/issues/7342
[#5307]: https://github.com/openstreetmap/iD/issues/5307
@@ -140,7 +254,7 @@ _Breaking developer changes, which may affect downstream projects or sites that
[#8044]: https://github.com/openstreetmap/iD/issues/8044
#### :bug: Bugfixes
* Don't return entity IDs when searching by geographic coordinates ([#7995], thanks [@SilentSpike])
* Don't return entity IDs when searching by geographic coordinates ([#7995], thanks [@kymckay])
* Fix issue where iD could discard the pending line or area when navigating the map while drawing ([#7999])
* Properly update validation issues when editing relations in the sidebar ([#7962])
* Fix issue where the preset search field might not autofocus after adding a new feature in Safari 14 ([#8003])
@@ -149,7 +263,7 @@ _Breaking developer changes, which may affect downstream projects or sites that
* Fix regression where the imagery layer IDs were used instead of the layer names in the `imagery_used` changeset tag ([#7842])
* Fix issue where double-clicking a midpoint might not add a new node ([#7972])
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
[#7995]: https://github.com/openstreetmap/iD/issues/7995
[#7999]: https://github.com/openstreetmap/iD/issues/7999
@@ -490,10 +604,10 @@ _Breaking developer changes, which may affect downstream projects or sites that
_Long-press on features to open the edit menu. Review the Help pane to see what else you can do._
* :card_index_dividers: **Multiselection editing** has been supercharged, so you can update many features together instead of one at a time.<br/>
_<kbd>⇧ Shift</kbd> + click to select multiple features. On touchscreens, tap-and-hold one feature, then tap others to select them too._
* :ballot_box_with_check: **[Osmose](http://osmose.openstreetmap.fr)** data quality issues can now be browsed and resolved within iD. Thanks, [@SilentSpike], for this integration!<br/>
* :ballot_box_with_check: **[Osmose](http://osmose.openstreetmap.fr)** data quality issues can now be browsed and resolved within iD. Thanks, [@kymckay], for this integration!<br/>
_Press <kbd>F</kbd> to open the Map Data pane and toggle on Osmose Issues under Data Layers._
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
#### :tada: New Features
You can now:
@@ -510,10 +624,10 @@ You can now:
* Copy and paste features via the edit menu, including on touchscreens ([#2508])
* Edit the fields and tags of multiple selected features all at once ([#1761], [#7262], [#7306])
* View the issues shared by multiple selected features ([#7324])
* Browse and resolve Osmose quality assurance issues ([#5682], [#7095], thanks [@SilentSpike])
* Browse and resolve Osmose quality assurance issues ([#5682], [#7095], thanks [@kymckay])
* Add basic WMS endpoints as custom background layers ([#4977], [#7510], thanks [@1ec5])
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
[@1ec5]: https://github.com/1ec5
[#7577]: https://github.com/openstreetmap/iD/issues/7577
@@ -658,7 +772,7 @@ You can now:
[#6801]: https://github.com/openstreetmap/iD/issues/6801
#### :white_check_mark: Validation
* Improve connection of "Almost Junctions" when the lines are nearly co-linear ([#7201], [#7309], thanks [@SilentSpike])
* Improve connection of "Almost Junctions" when the lines are nearly co-linear ([#7201], [#7309], thanks [@kymckay])
* Deprecate various `type` tag values related to utilities ([#7514], thanks [@guylamar2006])
* Deprecate `building=pavillion` misspelling ([#7749], thanks [@peternewman])
* Disable copy and paste of features that aren't mostly visible ([#7603])
@@ -672,7 +786,7 @@ You can now:
* Deprecate various `parking` tag values ([#7578])
* Deprecate various `tower:type` values for newly-approved `line_management` tag ([#7726])
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
[@guylamar2006]: https://github.com/guylamar2006
[@peternewman]: https://github.com/peternewman
@@ -1603,6 +1717,8 @@ _Press <kbd>G</kbd> to toggle change highlighting._
* Rename Construction to Construction Area and render it with a yellow icon
* Improve searchability of cycle presets in English ([#6825])
[#6866]: https://github.com/openstreetmap/iD/issues/6866
[#6955]: https://github.com/openstreetmap/iD/issues/6955
[#6949]: https://github.com/openstreetmap/iD/issues/6949
[#6863]: https://github.com/openstreetmap/iD/issues/6863
[#6849]: https://github.com/openstreetmap/iD/issues/6849
@@ -1655,7 +1771,7 @@ _Press <kbd>G</kbd> to toggle change highlighting._
[@Abbe98]: https://github.com/Abbe98
#### :white_check_mark: Validation
* Don't flag known brands for having generic names ([#6761], [#6754], thanks [@SilentSpike])
* Don't flag known brands for having generic names ([#6761], [#6754], thanks [@kymckay])
* Clarify that connecting a waterway crossing a highway will add a ford ([#6734])
* Lock the Name field of features with a `name:etymology:wikidata` tag ([#6683])
* Don't offer to add `highway=service` to demolished roads with `service` tags ([#6775])
@@ -1678,7 +1794,7 @@ _Press <kbd>G</kbd> to toggle change highlighting._
[#6762]: https://github.com/openstreetmap/iD/issues/6762
[#6775]: https://github.com/openstreetmap/iD/issues/6775
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
#### :bug: Bugfixes
* Boost preset matching score if match occurs in addTags ([#6802])
@@ -1836,7 +1952,7 @@ _Press <kbd>G</kbd> to toggle change highlighting._
#### :rocket: Presets
* Update camera icon on surveillance presets
* Add preset for `shop=hobby`
* Add Cairn preset ([#6587], thanks [@SilentSpike])
* Add Cairn preset ([#6587], thanks [@kymckay])
* Add field for `operator:type` to various presets ([#6566])
* Render `waterway=dam` as lines as grey ([#6555])
* Add Karaoke Box preset ([#6538])
@@ -1852,7 +1968,7 @@ _Press <kbd>G</kbd> to toggle change highlighting._
[#6542]: https://github.com/openstreetmap/iD/issues/6542
[#6538]: https://github.com/openstreetmap/iD/issues/6538
[#6537]: https://github.com/openstreetmap/iD/issues/6537
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
# 2.15.2
@@ -1871,7 +1987,7 @@ _Press <kbd>G</kbd> to toggle change highlighting._
* Avoid stale "connect endpoints" fix for "tags imply area" that could cause invalid areas ([#6525])
* Remove `barrier=entrance` deprecation ([#6506])
* Improve warning message when updating brand tags ([#6443])
* Improve checks for valid email and website values ([#6494], thanks [@SilentSpike])
* Improve checks for valid email and website values ([#6494], thanks [@kymckay])
* Fix issue where crossings with kerb tags were treated primarily as kerbs ([#6440])
* Fix issue where upgrading `office=administrative` could also remove `building=yes` ([#6466])
* Fix issue where cuisine -> diet upgrades could overwrite existing values ([#6462])
@@ -1888,7 +2004,7 @@ _Press <kbd>G</kbd> to toggle change highlighting._
[#6332]: https://github.com/openstreetmap/iD/issues/6332
[#6229]: https://github.com/openstreetmap/iD/issues/6229
[#6042]: https://github.com/openstreetmap/iD/issues/6042
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
#### :bug: Bugfixes
@@ -2523,7 +2639,7 @@ _Map all the branded businesses in your town!_
#### :mega: Release Highlights
* :exclamation: iD now validates features while you edit! Select a feature to see its issues and access quick fixes.<br/>
_Open the new Issues pane (shortcut <kbd>I</kbd>) to browse all errors and warnings._
* :detective: You can now browse missing road data detected by [ImproveOSM](https://improveosm.org) from Telenav. Shoutout to [@SilentSpike] for working on this!<br/>
* :detective: You can now browse missing road data detected by [ImproveOSM](https://improveosm.org) from Telenav. Shoutout to [@kymckay] for working on this!<br/>
_Open the Map Data pane (shortcut <kbd>F</kbd>) and select "ImproveOSM Issues" to view detected data._
#### :tada: New Features
@@ -2533,7 +2649,7 @@ _Open the Map Data pane (shortcut <kbd>F</kbd>) and select "ImproveOSM Issues" t
* List issues in the feature sidebar
* Recommend fixes
* View more details below in the new :white_check_mark: **Validation** section of this changelog
* Integrate ImproveOSM data detection tools ([#5683], [#5739], thanks [@SilentSpike])
* Integrate ImproveOSM data detection tools ([#5683], [#5739], thanks [@kymckay])
[#5830]: https://github.com/openstreetmap/iD/issues/5830
[#5683]: https://github.com/openstreetmap/iD/issues/5683
@@ -2547,7 +2663,7 @@ _Open the Map Data pane (shortcut <kbd>F</kbd>) and select "ImproveOSM Issues" t
[@abalosc1]: https://github.com/abalosc1
[@maxgrossman]: https://github.com/maxgrossman
[@brianhatchl]: https://github.com/brianhatchl
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
#### :sparkles: Usability
* Don't close the open photo when toggling the photo overlay ([#5829], [#5836], thanks [@maxgrossman])
@@ -2618,8 +2734,8 @@ _Open the Map Data pane (shortcut <kbd>F</kbd>) and select "ImproveOSM Issues" t
[@gaoxm]: https://github.com/gaoxm
#### :bug: Bugfixes
* Fix reversal of turn lanes when reversing a way ([#5674], [#5826], thanks [@SilentSpike])
* Fix photo overlay selection styling behavior ([#5494], [#5816], thanks [@SilentSpike])
* Fix reversal of turn lanes when reversing a way ([#5674], [#5826], thanks [@kymckay])
* Fix photo overlay selection styling behavior ([#5494], [#5816], thanks [@kymckay])
* Add Junction field to highway presets ([#1264])
* Fix transit platforms drawn as areas turning into lines upon completion ([#5837])
* Don't replace spaces with underscores in Destinations and Destination Road Numbers fields ([#5842])
@@ -2640,7 +2756,7 @@ _Open the Map Data pane (shortcut <kbd>F</kbd>) and select "ImproveOSM Issues" t
[#5601]: https://github.com/openstreetmap/iD/issues/5601
[#5830]: https://github.com/openstreetmap/iD/issues/5830
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
#### :earth_asia: Localization
* Update the Museum and Planetarium preset icons to not include the letter "M" ([#5751])
@@ -3222,7 +3338,7 @@ _Check out the "All Relations" and "All Members" sections of the sidebar to try
* Fields: Category, Colour, Shape, and System, also universal Seamark field
* Add preset for `leisure=bandstand` ([#5259], [#5262], thanks [@AndreasHae])
* Add preset for `amenity=language_school` ([#5245], [#5261], thanks [@AndreasHae])
* Add preset for `shop=sewing` ([#5244], [#5267], thanks [@SilentSpike])
* Add preset for `shop=sewing` ([#5244], [#5267], thanks [@kymckay])
* Add presets for `highway=milestone` and `waterway=milestone` ([#5284])
* Add the Lit field to the Swimming Pool preset ([#5287], [#5288], thanks [@quincylvania])
* Add Advertising Column preset ([#5270], thanks [@tordans])
@@ -3331,7 +3447,7 @@ _Check out the "All Relations" and "All Members" sections of the sidebar to try
[@Raubraupe]: https://github.com/Raubraupe
[@RudyTheDev]: https://github.com/RudyTheDev
[@s-Hale]: https://github.com/s-Hale
[@SilentSpike]: https://github.com/SilentSpike
[@kymckay]: https://github.com/kymckay
[@simonbilskyrollins]: https://github.com/simonbilskyrollins
[@Stormheg]: https://github.com/Stormheg
[@thefifthisa]: https://github.com/thefifthisa
+3 -4
View File
@@ -308,11 +308,10 @@ same format as the rest, include your new corresponding `docKey` in
[/modules/ui/help.js](/modules/ui/help.js) and call `npm run build`.
## Adding or Refining Presets
## Editing Presets or Tagging
Presets save time for iD users by automatically showing them the tags they are
likely to add for a given feature. They are stored in `data/presets/presets`. If
you're going to update the presets, [review the Presets README](/data/presets/README.md).
iD's knowledge of OpenStreetMap tags is mostly handled by the [iD Tagging Schema](https://github.com/openstreetmap/id-tagging-schema)
project, which has its own opportunities to contribute.
## Contributing Code
+3 -1
View File
@@ -26,6 +26,8 @@ Details on that are [here](https://github.com/openstreetmap/iD/blob/release/modu
If you use background or streetside imagery to aid your edits, your browser must fetch information and images from a third-party imagery host. That use is governed by the respective privacy policies of each imagery host. The [Editor Layer Index](https://github.com/osmlab/editor-layer-index) and [iD Editor GitHub code](https://github.com/openstreetmap/iD/blob/release/modules/ui/map_data.js) provides detailed information as to imagery layer available in iD. In addition, you may use third party services to assist your editing or check for errors. See [here](https://github.com/openstreetmap/iD/tree/release/modules/services) for details. If you do not wish to interact with these third parties, do not use these features.
iD requires that your browser fetch some resources from the [JSDelivr](https://www.jsdelivr.com/) content delivery network (CDN). This usage is governed by the cdn.jsdelivr.net privacy policy located at [https://www.jsdelivr.com/terms/privacy-policy-jsdelivr-net](https://www.jsdelivr.com/terms/privacy-policy-jsdelivr-net).
### Name Suggestion Index
The Name Suggestion Index is a feature in iD to aid users in consistently and accurately identifying the brand names of companies on the map. The NSI optionally fetches information and brand logos hosted on third party websites, including WikiData, Wikimedia Commons, and the brands respective Facebook and Twitter accounts. That use is governed by their respective privacy policies, including [https://foundation.wikimedia.org/wiki/Privacy_policy](https://foundation.wikimedia.org/wiki/Privacy_policy); [https://twitter.com/en/privacy](https://twitter.com/en/privacy); [https://www.facebook.com/about/privacy](https://www.facebook.com/about/privacy). Specific information about the information and images fetched for each brand may be found at [https://nsi.guide/](https://nsi.guide/). If you do not wish to interact with these third parties, you can deselect this feature in the User Preferences -> Privacy section.
@@ -34,8 +36,8 @@ The Name Suggestion Index is a feature in iD to aid users in consistently and ac
If you believe that we hold information that would allow us to correct, amend, or delete inaccurate information about you or if you believe that information about you has been processed in violation of this privacy policy or applicable law, please email us at privacy@ideditor.org.
### Changelog
* _2020-Dec-02_ - Add information about the JSDelivr CDN integration.
* _2020-Apr-07_ - Update the iD GitHub repository file links to point to the `release` branch instead of the `master` branch.
* _2019-Dec-17_ - Initial version.
+2
View File
@@ -88,7 +88,9 @@ iD also bundles portions of the following open source software.
* [editor-layer-index (CC-BY-SA 3.0)](https://github.com/osmlab/editor-layer-index)
* [Font Awesome (CC-BY 4.0)](https://fontawesome.com/license)
* [Maki (CC0 1.0)](https://github.com/mapbox/maki)
* [Temaki (CC0 1.0)](https://github.com/ideditor/temaki)
* [Mapillary JS (MIT)](https://github.com/mapillary/mapillary-js)
* [iD Tagging Schema (ISC)](https://github.com/openstreetmap/id-tagging-schema)
* [name-suggestion-index (BSD-3-Clause)](https://github.com/osmlab/name-suggestion-index)
* [osm-community-index (ISC)](https://github.com/osmlab/osm-community-index)
+107 -45
View File
@@ -812,6 +812,9 @@ a.hide-toggle {
left: -6px;
}
.sidebar.collapsed > *:not(.sidebar-resizer) {
display: none;
}
.sidebar.collapsed .sidebar-resizer {
/* make target wider to avoid the user accidentally resizing window */
width: 10px;
@@ -1007,6 +1010,22 @@ a.hide-toggle {
.section-selected-features .feature-list-item:last-child {
border: none;
}
.ideditor[dir='ltr'] .section-selected-features .feature-list-item > button:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.ideditor[dir='rtl'] .section-selected-features .feature-list-item > button:not(:last-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.ideditor[dir='ltr'] .section-selected-features .feature-list-item > button:not(:last-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.ideditor[dir='rtl'] .section-selected-features .feature-list-item > button:not(:last-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/* Preset List and Icons
------------------------------------------------------- */
@@ -1075,6 +1094,14 @@ a.hide-toggle {
fill: transparent;
}
.preset-icon-category-border path {
stroke: #999;
stroke-width: 1px;
fill: transparent;
backface-visibility: hidden;
vector-effect: non-scaling-stroke;
}
.preset-icon-line {
margin: auto;
position: absolute;
@@ -1150,7 +1177,7 @@ a.hide-toggle {
.preset-icon.framed .icon {
transform: scale(0.4);
}
.preset-icon.framed.line-geom .icon,
.preset-icon.framed.line-geom:not(.category) .icon,
.preset-icon.framed.route-geom .icon {
top: 20%;
transform: translateY(-30%) scale(0.4);
@@ -1161,7 +1188,7 @@ a.hide-toggle {
.preset-icon-iD.framed .icon {
transform: scale(0.74);
}
.preset-icon-iD.framed.line-geom .icon,
.preset-icon-iD.framed.line-geom:not(.category) .icon,
.preset-icon-iD.framed.route-geom .icon {
transform: translateY(-30%) scale(0.74);
}
@@ -1574,6 +1601,13 @@ a.hide-toggle {
display: none;
}
.form-field-input-combo input.raw-value {
font-family: monospace;
}
.form-field-input-combo input.known-value {
color: #7092ff;
}
.form-field-input-multicombo ul.chiplist {
padding: 5px 8px 5px 8px;
background: #fff;
@@ -1601,6 +1635,7 @@ a.hide-toggle {
background-color: #eff2f7;
border: 1px solid #ccd5e3;
max-width: 100%;
color: #7092ff;
}
.ideditor[dir='ltr'] .form-field-input-multicombo li.chip {
padding: 2px 0px 2px 5px;
@@ -1616,6 +1651,10 @@ a.hide-toggle {
z-index: 3000;
cursor: grabbing;
}
.form-field-input-multicombo li.chip.raw-value {
font-family: monospace;
color: #333;
}
.form-field-input-multicombo li.mixed {
border-color: #eff2f7;
color: #888;
@@ -1752,6 +1791,15 @@ a.hide-toggle {
.ideditor[dir='rtl'] .form-field-input-check > .reverser {
padding-left: 2px;
}
.form-field-input-check > .reverser:active,
.form-field-input-check > .reverser:focus {
background: #e3e8ef;
}
@media (hover: hover) {
.form-field-input-check > .reverser:hover {
background: #e3e8ef;
}
}
.form-field-input-check > .reverser.hide {
display: none;
}
@@ -1834,26 +1882,26 @@ a.hide-toggle {
}
/* Field - Maxspeed
/* Field - roadspeed
------------------------------------------------------- */
.form-field-input-maxspeed input.maxspeed-number {
.form-field-input-roadspeed input.roadspeed-number {
flex-basis: 0;
}
.form-field-input-maxspeed input.maxspeed-unit {
.form-field-input-roadspeed input.roadspeed-unit {
flex: 0 1 auto;
width: 80px;
}
.ideditor[dir='ltr'] .form-field-input-maxspeed > input:first-of-type {
.ideditor[dir='ltr'] .form-field-input-roadspeed > input:first-of-type {
border-radius: 0 0 0 4px;
}
.ideditor[dir='rtl'] .form-field-input-maxspeed > input:first-of-type {
.ideditor[dir='rtl'] .form-field-input-roadspeed > input:first-of-type {
border-radius: 0 0 4px 0;
}
.ideditor[dir='ltr'] .form-field-input-maxspeed > input:last-of-type {
.ideditor[dir='ltr'] .form-field-input-roadspeed > input:last-of-type {
border-left: 0;
border-radius: 0 0 4px 0;
}
.ideditor[dir='rtl'] .form-field-input-maxspeed > input:last-of-type {
.ideditor[dir='rtl'] .form-field-input-roadspeed > input:last-of-type {
border-right: 0;
border-radius: 0 0 0 4px;
}
@@ -2190,6 +2238,11 @@ div.combobox {
border-right: 5px solid transparent;
}
.combobox .combobox-option.raw-option {
font-family: monospace;
color: #333;
}
/* Field Help
------------------------------------------------------- */
@@ -2875,6 +2928,13 @@ img.tag-reference-wiki-image {
}
.over-map > * {
pointer-events: auto;
z-index: 5;
}
/* offscreen this without hiding it */
.over-map .select-trap {
position: absolute;
right: -1000%;
opacity: 0;
}
/* Map Controls
@@ -3569,12 +3629,14 @@ li.issue-fix-item button:not(.actionable) .fix-icon {
.background-pane .nudge-container {
border: 1px solid #ccc;
border-radius: 4px;
padding: 10px 10px 40px 10px;
padding: 10px;
position: relative;
}
.nudge-container .nudge-instructions {
padding-bottom: 15px;
.nudge-container .nudge-controls-wrap {
position: relative;
width: 100%;
overflow: hidden;
}
.nudge-container .nudge-outer-rect {
@@ -3582,12 +3644,10 @@ li.issue-fix-item button:not(.actionable) .fix-icon {
border: 1px solid #ccc;
border-radius: 2px;
padding: 20px 0;
width: 70%;
display: flex;
justify-content: center;
align-items: center;
margin: 0 auto;
margin-top: 20px;
margin: 45px;
cursor: move;
/* prevent scrolling pane while dragging on touchscreen */
touch-action: none;
@@ -3627,42 +3687,42 @@ li.issue-fix-item button:not(.actionable) .fix-icon {
background: #ffb;
}
.nudge-container input:focus {
background-color: transparent;
}
.nudge-container button {
position: absolute;
background-color: transparent;
height: 40px;
width: 40px;
}
.nudge-container button.right,
.nudge-container button.left {
width: 40px;
height: 40%;
top: 30%;
top: 0;
bottom: 0;
margin-top: auto;
margin-bottom: auto;
vertical-align: middle;
}
.nudge-container button.right {
left: 100%;
right: 0;
}
.nudge-container button.left {
right: 100%;
left: 0;
}
.nudge-container button.top,
.nudge-container button.bottom {
width: 20%;
height: 40px;
left: 40%;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
}
.nudge-container button.top {
bottom: 100%;
top: 0;
}
.nudge-container button.bottom {
top: 100%;
bottom: 0;
}
.nudge-container button.nudge-reset {
right: 15px;
bottom: 15px;
right: 0;
bottom: 0;
}
.nudge-surface {
@@ -4064,6 +4124,7 @@ img.tile-debug {
background: #000;
user-select: none;
touch-action: none;
-webkit-touch-callout: none;
}
.main-map * {
touch-action: none;
@@ -4090,7 +4151,7 @@ img.tile-debug {
top: 10px;
width: 200px;
height: 150px;
z-index: 5;
z-index: 2;
background: #000;
border: #aaa 1px solid;
box-shadow: 0 0 2em black;
@@ -4345,9 +4406,13 @@ img.tile-debug {
display: flex;
justify-content: space-between;
align-items: flex-end;
z-index: 0;
pointer-events: none;
}
.attribution-wrap * { pointer-events: all; }
.attribution-wrap > * {
pointer-events: auto;
}
.attribution-wrap .base-layer-attribution,
.attribution-wrap .overlay-layer-attribution {
@@ -4569,29 +4634,26 @@ img.tile-debug {
------------------------------------------------------- */
/* For an icon (e.g. new version) */
.badge {
display: inline-block;
display: inline-flex;
background: #d32232;
width: 21px;
height: 20px;
border-radius: 11px;
height: 21px;
border-radius: 50%;
align-items: center;
justify-content: center;
}
.ideditor[dir='ltr'] .badge {
margin-left: 6px;
}
.ideditor[dir='rtl'] .badge {
margin-left: 0;
margin-right: 6px;
}
.badge a {
margin-right: 5px;
}
.ideditor[dir='rtl'] .badge a {
margin-right: 0;
margin-left: 5px;
}
.badge .icon {
vertical-align: baseline;
width: 11px;
height: 11px;
color: #fff;
flex: 0 0 auto;
}
/* For text (e.g. upcoming events) */
+15
View File
@@ -580,6 +580,7 @@ en:
upload_explanation: "The changes you upload will be visible on all maps that use OpenStreetMap data."
upload_explanation_with_user: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data."
request_review: "I would like someone to review my edits."
request_review_info: "Unsure about something? Invite an experienced mapper to check your work once it's live."
save: Upload
cancel: Cancel
changes: Changes
@@ -1649,6 +1650,8 @@ en:
message: "{feature} ends very close to itself but does not reconnect"
highway-highway:
reference: Intersecting highways should share a junction vertex.
area_as_point:
message: '{feature} should be an area, not a point'
close_nodes:
title: "Very Close Points"
tip: "Find redundant and crowded points"
@@ -1728,9 +1731,14 @@ en:
message: '{feature} has an invalid email address'
message_multi: '{feature} has multiple invalid email addresses'
reference: 'Email addresses must look like "user@example.com".'
line_as_area:
message: '{feature} should be a line, not an area'
line_as_point:
message: '{feature} should be a line, not a point'
mismatched_geometry:
title: Mismatched Geometry
tip: "Find features with conflicting tags and geometry"
reference: Most features are limited to certain geometry types.
missing_role:
title: Missing Roles
message: "{member} has no role within {relation}"
@@ -1762,6 +1770,10 @@ en:
message: "{feature} looks like a brand with nonstandard tags"
message_incomplete: "{feature} looks like a brand with incomplete tags"
reference: "All features of the same brand should be tagged the same way."
point_as_area:
message: '{feature} should be a point, not an area'
point_as_line:
message: '{feature} should be a point, not a line'
point_as_vertex:
message: '{feature} should be a standalone point based on its tags'
reference: "Some features shouldn't be part of lines or areas."
@@ -1835,6 +1847,9 @@ en:
title: Continue drawing from start
continue_from_end:
title: Continue drawing from end
convert_to_line:
title: Convert this to a line
annotation: Converted an area to a line.
delete_feature:
title: Delete this feature
extract_point:
-1641
View File
File diff suppressed because it is too large Load Diff
-56
View File
@@ -1,56 +0,0 @@
{
"created_by": true,
"odbl": true,
"odbl:note": true,
"tiger:upload_uuid": true,
"tiger:tlid": true,
"tiger:source": true,
"tiger:separated": true,
"geobase:datasetName": true,
"geobase:uuid": true,
"osmarender:nameDirection": true,
"osmarender:renderName": true,
"osmarender:renderRef": true,
"osmarender:rendernames": true,
"sub_sea:type": true,
"KSJ2:ADS": true,
"KSJ2:ARE": true,
"KSJ2:AdminArea": true,
"KSJ2:COP_label": true,
"KSJ2:DFD": true,
"KSJ2:INT": true,
"KSJ2:INT_label": true,
"KSJ2:LOC": true,
"KSJ2:LPN": true,
"KSJ2:OPC": true,
"KSJ2:PubFacAdmin": true,
"KSJ2:RAC": true,
"KSJ2:RAC_label": true,
"KSJ2:RIC": true,
"KSJ2:RIN": true,
"KSJ2:WSC": true,
"KSJ2:coordinate": true,
"KSJ2:curve_id": true,
"KSJ2:curve_type": true,
"KSJ2:filename": true,
"KSJ2:lake_id": true,
"KSJ2:lat": true,
"KSJ2:long": true,
"KSJ2:river_id": true,
"SK53_bulk:load": true,
"yh:LINE_NAME": true,
"yh:LINE_NUM": true,
"yh:STRUCTURE": true,
"yh:TOTYUMONO": true,
"yh:TYPE": true,
"yh:WIDTH": true,
"yh:WIDTH_RANK": true
}
+11547 -2946
View File
File diff suppressed because it is too large Load Diff
+386 -1
View File
@@ -1,210 +1,569 @@
{
"aa": {},
"ab": {},
"ace": {},
"ach": {},
"ada": {},
"ady": {},
"ae": {},
"aeb": {},
"af": {"nativeName": "Afrikaans"},
"afh": {},
"agq": {"nativeName": "Aghem"},
"ain": {},
"ak": {"nativeName": "Akan"},
"akk": {},
"akz": {},
"ale": {},
"aln": {},
"alt": {},
"am": {"nativeName": "አማርኛ"},
"an": {},
"ang": {},
"anp": {},
"ar": {"nativeName": "العربية"},
"arc": {},
"arn": {},
"aro": {},
"arp": {},
"arq": {},
"ars": {},
"arw": {},
"ary": {},
"arz": {},
"as": {"nativeName": "অসমীয়া"},
"asa": {"nativeName": "Kipare"},
"ast": {"nativeName": "asturianu"},
"av": {},
"avk": {},
"awa": {},
"ay": {},
"az": {"nativeName": "azərbaycan"},
"az-Cyrl": {"base": "az", "script": "Cyrl"},
"az-Latn": {"base": "az", "script": "Latn"},
"ba": {},
"bal": {},
"ban": {},
"bar": {},
"bas": {"nativeName": "Ɓàsàa"},
"bax": {},
"bbc": {},
"bbj": {},
"be": {"nativeName": "беларуская"},
"bej": {},
"bem": {"nativeName": "Ichibemba"},
"bew": {},
"bez": {"nativeName": "Hibena"},
"bfd": {},
"bfq": {},
"bg": {"nativeName": "български"},
"bgn": {},
"bho": {},
"bi": {},
"bik": {},
"bin": {},
"bjn": {},
"bkm": {},
"bla": {},
"bm": {"nativeName": "bamanakan"},
"bn": {"nativeName": "বাংলা"},
"bo": {"nativeName": "བོད་སྐད་"},
"bpy": {},
"bqi": {},
"br": {"nativeName": "brezhoneg"},
"bra": {},
"brh": {},
"brx": {"nativeName": "बड़ो"},
"bs": {"nativeName": "bosanski"},
"bs-Cyrl": {"base": "bs", "script": "Cyrl"},
"bs-Latn": {"base": "bs", "script": "Latn"},
"bss": {},
"bua": {},
"bug": {},
"bum": {},
"byn": {},
"byv": {},
"ca": {"nativeName": "català"},
"cad": {},
"car": {},
"cay": {},
"cch": {},
"ccp": {"nativeName": "𑄌𑄋𑄴𑄟𑄳𑄦"},
"ce": {"nativeName": "нохчийн"},
"ceb": {"nativeName": "Binisaya"},
"cgg": {"nativeName": "Rukiga"},
"ch": {},
"chb": {},
"chg": {},
"chk": {},
"chm": {},
"chn": {},
"cho": {},
"chp": {},
"chr": {"nativeName": "ᏣᎳᎩ"},
"chy": {},
"cic": {},
"ckb": {"nativeName": "کوردیی ناوەندی"},
"co": {},
"cop": {},
"cps": {},
"cr": {},
"crh": {},
"crs": {},
"cs": {"nativeName": "čeština"},
"csb": {},
"cu": {"nativeName": "cu"},
"cv": {},
"cy": {"nativeName": "Cymraeg"},
"da": {"nativeName": "dansk"},
"dak": {},
"dar": {},
"dav": {"nativeName": "Kitaita"},
"de": {"nativeName": "Deutsch"},
"del": {},
"den": {},
"dgr": {},
"din": {},
"dje": {"nativeName": "Zarmaciine"},
"doi": {},
"dsb": {"nativeName": "dolnoserbšćina"},
"dtp": {},
"dua": {"nativeName": "duálá"},
"dum": {},
"dv": {},
"dyo": {"nativeName": "joola"},
"dyu": {},
"dz": {"nativeName": "རྫོང་ཁ"},
"dzg": {},
"ebu": {"nativeName": "Kĩembu"},
"ee": {"nativeName": "Eʋegbe"},
"efi": {},
"egl": {},
"egy": {},
"eka": {},
"el": {"nativeName": "Ελληνικά"},
"elx": {},
"en": {"nativeName": "English"},
"enm": {},
"eo": {"nativeName": "esperanto"},
"es": {"nativeName": "español"},
"esu": {},
"et": {"nativeName": "eesti"},
"eu": {"nativeName": "euskara"},
"ewo": {"nativeName": "ewondo"},
"ext": {},
"fa": {"nativeName": "فارسی"},
"fan": {},
"fat": {},
"ff": {"nativeName": "Pulaar"},
"ff-Latn": {"base": "ff", "script": "Latn"},
"fi": {"nativeName": "suomi"},
"fil": {"nativeName": "Filipino"},
"fit": {},
"fj": {},
"fo": {"nativeName": "føroyskt"},
"fon": {},
"fr": {"nativeName": "français"},
"frc": {},
"frm": {},
"fro": {},
"frp": {},
"frr": {},
"frs": {},
"fur": {"nativeName": "furlan"},
"fy": {"nativeName": "Frysk"},
"ga": {"nativeName": "Gaeilge"},
"gaa": {},
"gag": {},
"gan": {},
"gay": {},
"gba": {},
"gbz": {},
"gd": {"nativeName": "Gàidhlig"},
"gez": {},
"gil": {},
"gl": {"nativeName": "galego"},
"glk": {},
"gmh": {},
"gn": {},
"goh": {},
"gom": {},
"gon": {},
"gor": {},
"got": {},
"grb": {},
"grc": {},
"gsw": {"nativeName": "Schwiizertüütsch"},
"gu": {"nativeName": "ગુજરાતી"},
"guc": {},
"gur": {},
"guz": {"nativeName": "Ekegusii"},
"gv": {"nativeName": "Gaelg"},
"gwi": {},
"ha": {"nativeName": "Hausa"},
"hai": {},
"hak": {},
"haw": {"nativeName": "ʻŌlelo Hawaiʻi"},
"he": {"nativeName": "עברית"},
"hi": {"nativeName": "हिन्दी"},
"hif": {},
"hil": {},
"hit": {},
"hmn": {},
"ho": {},
"hr": {"nativeName": "hrvatski"},
"hsb": {"nativeName": "hornjoserbšćina"},
"hsn": {},
"ht": {},
"hu": {"nativeName": "magyar"},
"hup": {},
"hy": {"nativeName": "հայերեն"},
"hz": {},
"ia": {"nativeName": "interlingua"},
"iba": {},
"ibb": {},
"id": {"nativeName": "Indonesia"},
"ie": {},
"ig": {"nativeName": "Asụsụ Igbo"},
"ii": {"nativeName": "ꆈꌠꉙ"},
"ik": {},
"ilo": {},
"inh": {},
"io": {},
"is": {"nativeName": "íslenska"},
"it": {"nativeName": "italiano"},
"iu": {},
"izh": {},
"ja": {"nativeName": "日本語"},
"ja-Hira": {"base": "ja", "script": "Hira"},
"ja-Latn": {"base": "ja", "script": "Latn"},
"jam": {},
"jbo": {},
"jgo": {"nativeName": "Ndaa"},
"jmc": {"nativeName": "Kimachame"},
"jpr": {},
"jrb": {},
"jut": {},
"jv": {"nativeName": "Jawa"},
"ka": {"nativeName": "ქართული"},
"kaa": {},
"kab": {"nativeName": "Taqbaylit"},
"kac": {},
"kaj": {},
"kam": {"nativeName": "Kikamba"},
"kaw": {},
"kbd": {},
"kbl": {},
"kcg": {},
"kde": {"nativeName": "Chimakonde"},
"kea": {"nativeName": "kabuverdianu"},
"ken": {},
"kfo": {},
"kg": {},
"kgp": {},
"kha": {},
"kho": {},
"khq": {"nativeName": "Koyra ciini"},
"khw": {},
"ki": {"nativeName": "Gikuyu"},
"kiu": {},
"kj": {},
"kk": {"nativeName": "қазақ тілі"},
"kkj": {"nativeName": "kakɔ"},
"kl": {"nativeName": "kalaallisut"},
"kln": {"nativeName": "Kalenjin"},
"km": {"nativeName": "ខ្មែរ"},
"kmb": {},
"kn": {"nativeName": "ಕನ್ನಡ"},
"ko": {"nativeName": "한국어"},
"ko-Latn": {"base": "ko", "script": "Latn"},
"koi": {},
"kok": {"nativeName": "कोंकणी"},
"kos": {},
"kpe": {},
"kr": {},
"krc": {},
"kri": {},
"krj": {},
"krl": {},
"kru": {},
"ks": {"nativeName": "کٲشُر"},
"ksb": {"nativeName": "Kishambaa"},
"ksf": {"nativeName": "rikpa"},
"ksh": {"nativeName": "Kölsch"},
"ku": {"nativeName": "kurdî"},
"kum": {},
"kut": {},
"kv": {},
"kw": {"nativeName": "kernewek"},
"ky": {"nativeName": "кыргызча"},
"la": {},
"lad": {},
"lag": {"nativeName": "Kɨlaangi"},
"lah": {},
"lam": {},
"lb": {"nativeName": "Lëtzebuergesch"},
"lez": {},
"lfn": {},
"lg": {"nativeName": "Luganda"},
"li": {},
"lij": {},
"liv": {},
"lkt": {"nativeName": "Lakȟólʼiyapi"},
"lmo": {},
"ln": {"nativeName": "lingála"},
"lo": {"nativeName": "ລາວ"},
"lol": {},
"lou": {},
"loz": {},
"lrc": {"nativeName": "لۊری شومالی"},
"lt": {"nativeName": "lietuvių"},
"ltg": {},
"lu": {"nativeName": "Tshiluba"},
"lua": {},
"lui": {},
"lun": {},
"luo": {"nativeName": "Dholuo"},
"lus": {},
"luy": {"nativeName": "Luluhia"},
"lv": {"nativeName": "latviešu"},
"lzh": {},
"lzz": {},
"mad": {},
"maf": {},
"mag": {},
"mai": {},
"mak": {},
"man": {},
"mas": {"nativeName": "Maa"},
"mde": {},
"mdf": {},
"mdr": {},
"men": {},
"mer": {"nativeName": "Kĩmĩrũ"},
"mfe": {"nativeName": "kreol morisien"},
"mg": {"nativeName": "Malagasy"},
"mga": {},
"mgh": {"nativeName": "Makua"},
"mgo": {"nativeName": "metaʼ"},
"mh": {},
"mi": {"nativeName": "Māori"},
"mic": {},
"min": {},
"mk": {"nativeName": "македонски"},
"ml": {"nativeName": "മലയാളം"},
"mn": {"nativeName": "монгол"},
"mnc": {},
"mni": {},
"moh": {},
"mos": {},
"mr": {"nativeName": "मराठी"},
"mrj": {},
"ms": {"nativeName": "Melayu"},
"mt": {"nativeName": "Malti"},
"mua": {"nativeName": "MUNDAŊ"},
"mus": {},
"mwl": {},
"mwr": {},
"mwv": {},
"my": {"nativeName": "မြန်မာ"},
"mye": {},
"myv": {},
"mzn": {"nativeName": "مازرونی"},
"na": {},
"nan": {},
"nap": {},
"naq": {"nativeName": "Khoekhoegowab"},
"nb": {"nativeName": "norsk bokmål"},
"nd": {"nativeName": "isiNdebele"},
"nds": {"nativeName": "nds"},
"ne": {"nativeName": "नेपाली"},
"new": {},
"ng": {},
"nia": {},
"niu": {},
"njo": {},
"nl": {"nativeName": "Nederlands"},
"nmg": {"nativeName": "nmg"},
"nn": {"nativeName": "nynorsk"},
"nnh": {"nativeName": "Shwóŋò ngiembɔɔn"},
"no": {},
"nog": {},
"non": {},
"nov": {},
"nqo": {},
"nr": {},
"nso": {},
"nus": {"nativeName": "Thok Nath"},
"nv": {},
"nwc": {},
"ny": {},
"nym": {},
"nyn": {"nativeName": "Runyankore"},
"nyo": {},
"nzi": {},
"oc": {"nativeName": "Occitan"},
"oj": {},
"om": {"nativeName": "Oromoo"},
"or": {"nativeName": "ଓଡ଼ିଆ"},
"os": {"nativeName": "ирон"},
"osa": {},
"ota": {},
"pa": {"nativeName": "ਪੰਜਾਬੀ"},
"pa-Arab": {"base": "pa", "script": "Arab"},
"pa-Guru": {"base": "pa", "script": "Guru"},
"pag": {},
"pal": {},
"pam": {},
"pap": {},
"pau": {},
"pcd": {},
"pcm": {},
"pdc": {},
"pdt": {},
"peo": {},
"pfl": {},
"phn": {},
"pi": {},
"pl": {"nativeName": "polski"},
"pms": {},
"pnt": {},
"pon": {},
"prg": {"nativeName": "prūsiskan"},
"pro": {},
"ps": {"nativeName": "پښتو"},
"pt": {"nativeName": "português"},
"qu": {"nativeName": "Runasimi"},
"quc": {},
"qug": {},
"raj": {},
"rap": {},
"rar": {},
"rgn": {},
"rif": {},
"rm": {"nativeName": "rumantsch"},
"rn": {"nativeName": "Ikirundi"},
"ro": {"nativeName": "română"},
"rof": {"nativeName": "Kihorombo"},
"rom": {},
"root": {"nativeName": "root"},
"rtm": {},
"ru": {"nativeName": "русский"},
"rue": {},
"rug": {},
"rup": {},
"rw": {"nativeName": "Kinyarwanda"},
"rwk": {"nativeName": "Kiruwa"},
"sa": {},
"sad": {},
"sah": {"nativeName": "саха тыла"},
"sam": {},
"saq": {"nativeName": "Kisampur"},
"sas": {},
"sat": {},
"saz": {},
"sba": {},
"sbp": {"nativeName": "Ishisangu"},
"sc": {},
"scn": {},
"sco": {},
"sd": {"nativeName": "سنڌي"},
"sdc": {},
"sdh": {},
"se": {"nativeName": "davvisámegiella"},
"see": {},
"seh": {"nativeName": "sena"},
"sei": {},
"sel": {},
"ses": {"nativeName": "Koyraboro senni"},
"sg": {"nativeName": "Sängö"},
"sga": {},
"sgs": {},
"sh": {},
"shi": {"nativeName": "ⵜⴰⵛⵍⵃⵉⵜ"},
"shi-Latn": {"base": "shi", "script": "Latn"},
"shi-Tfng": {"base": "shi", "script": "Tfng"},
"shn": {},
"shu": {},
"si": {"nativeName": "සිංහල"},
"sid": {},
"sk": {"nativeName": "slovenčina"},
"sl": {"nativeName": "slovenščina"},
"sli": {},
"sly": {},
"sm": {},
"sma": {},
"smj": {},
"smn": {"nativeName": "anarâškielâ"},
"sms": {},
"sn": {"nativeName": "chiShona"},
"snk": {},
"so": {"nativeName": "Soomaali"},
"sog": {},
"sq": {"nativeName": "shqip"},
"sr": {"nativeName": "српски"},
"sr-Cyrl": {"base": "sr", "script": "Cyrl"},
"sr-Latn": {"base": "sr", "script": "Latn"},
"srn": {},
"srr": {},
"ss": {},
"ssy": {},
"st": {},
"stq": {},
"su": {},
"suk": {},
"sus": {},
"sux": {},
"sv": {"nativeName": "svenska"},
"sw": {"nativeName": "Kiswahili"},
"swb": {},
"syc": {},
"syr": {},
"szl": {},
"ta": {"nativeName": "தமிழ்"},
"tcy": {},
"te": {"nativeName": "తెలుగు"},
"tem": {},
"teo": {"nativeName": "Kiteso"},
"ter": {},
"tet": {},
"tg": {"nativeName": "тоҷикӣ"},
"th": {"nativeName": "ไทย"},
"ti": {"nativeName": "ትግርኛ"},
"tig": {},
"tiv": {},
"tk": {"nativeName": "türkmen dili"},
"tkl": {},
"tkr": {},
"tl": {},
"tlh": {},
"tli": {},
"tly": {},
"tmh": {},
"tn": {},
"to": {"nativeName": "lea fakatonga"},
"tog": {},
"tpi": {},
"tr": {"nativeName": "Türkçe"},
"tru": {},
"trv": {},
"ts": {},
"tsd": {},
"tsi": {},
"tt": {"nativeName": "татар"},
"ttt": {},
"tum": {},
"tvl": {},
"tw": {},
"twq": {"nativeName": "Tasawaq senni"},
"ty": {},
"tyv": {},
"tzm": {"nativeName": "Tamaziɣt n laṭlaṣ"},
"udm": {},
"ug": {"nativeName": "ئۇيغۇرچە"},
"uga": {},
"uk": {"nativeName": "українська"},
"umb": {},
"ur": {"nativeName": "اردو"},
"uz": {"nativeName": "ozbek"},
"uz-Arab": {"base": "uz", "script": "Arab"},
@@ -213,23 +572,49 @@
"vai": {"nativeName": "ꕙꔤ"},
"vai-Latn": {"base": "vai", "script": "Latn"},
"vai-Vaii": {"base": "vai", "script": "Vaii"},
"ve": {},
"vec": {},
"vep": {},
"vi": {"nativeName": "Tiếng Việt"},
"vls": {},
"vmf": {},
"vo": {"nativeName": "vo"},
"vot": {},
"vro": {},
"vun": {"nativeName": "Kyivunjo"},
"wa": {},
"wae": {"nativeName": "Walser"},
"wal": {},
"war": {},
"was": {},
"wbp": {},
"wo": {"nativeName": "Wolof"},
"wuu": {},
"xal": {},
"xh": {"nativeName": "isiXhosa"},
"xmf": {},
"xog": {"nativeName": "Olusoga"},
"yao": {},
"yap": {},
"yav": {"nativeName": "nuasue"},
"ybb": {},
"yi": {"nativeName": "ייִדיש"},
"yo": {"nativeName": "Èdè Yorùbá"},
"yrl": {},
"yue": {"nativeName": "粵語"},
"yue-Hans": {"base": "yue", "script": "Hans"},
"yue-Hant": {"base": "yue", "script": "Hant"},
"za": {},
"zap": {},
"zbl": {},
"zea": {},
"zen": {},
"zgh": {"nativeName": "ⵜⴰⵎⴰⵣⵉⵖⵜ"},
"zh": {"nativeName": "中文"},
"zh-Hans": {"base": "zh", "script": "Hans", "nativeName": "简体中文"},
"zh-Hant": {"base": "zh", "script": "Hant", "nativeName": "繁體中文"},
"zh_pinyin": {"base": "zh", "script": "Latn"},
"zu": {"nativeName": "isiZulu"}
"zu": {"nativeName": "isiZulu"},
"zun": {},
"zza": {}
}
-1
View File
@@ -1 +0,0 @@
{"af": {"rtl": false, "pct": 0.03}, "ar": {"rtl": true, "pct": 0.41}, "ar-AA": {"rtl": true, "pct": 0}, "as": {"rtl": false, "pct": 0}, "ast": {"rtl": false, "pct": 0.3}, "az": {"rtl": false, "pct": 0}, "be": {"rtl": false, "pct": 0.23}, "bg": {"rtl": false, "pct": 0.19}, "bn": {"rtl": false, "pct": 0.07}, "bs": {"rtl": false, "pct": 0.06}, "ca": {"rtl": false, "pct": 0.39}, "ckb": {"rtl": true, "pct": 0.05}, "cs": {"rtl": false, "pct": 0.74}, "cy": {"rtl": false, "pct": 0.04}, "da": {"rtl": false, "pct": 0.67}, "de": {"rtl": false, "pct": 1}, "dv": {"rtl": true, "pct": 0.01}, "el": {"rtl": false, "pct": 0.37}, "en": {"rtl": false, "pct": 1}, "en-AU": {"rtl": false, "pct": 0}, "en-GB": {"rtl": false, "pct": 0.31}, "en-NZ": {"rtl": false, "pct": 0}, "en-US": {"rtl": false, "pct": 1}, "eo": {"rtl": false, "pct": 0.8}, "es": {"rtl": false, "pct": 0.99}, "et": {"rtl": false, "pct": 0.17}, "eu": {"rtl": false, "pct": 0.1}, "fa": {"rtl": true, "pct": 0.56}, "fi": {"rtl": false, "pct": 0.52}, "fil": {"rtl": false, "pct": 0}, "fr": {"rtl": false, "pct": 0.93}, "gan": {"rtl": false, "pct": 0}, "gl": {"rtl": false, "pct": 0.7}, "gu": {"rtl": false, "pct": 0.01}, "ha": {"rtl": false, "pct": 0}, "he": {"rtl": true, "pct": 0.93}, "hi": {"rtl": false, "pct": 0.01}, "hr": {"rtl": false, "pct": 0.27}, "hu": {"rtl": false, "pct": 0.68}, "hy": {"rtl": false, "pct": 0.03}, "ia": {"rtl": false, "pct": 0}, "id": {"rtl": false, "pct": 0.11}, "is": {"rtl": false, "pct": 0.51}, "it": {"rtl": false, "pct": 0.81}, "ja": {"rtl": false, "pct": 0.99}, "jv": {"rtl": false, "pct": 0}, "kk": {"rtl": false, "pct": 0}, "km": {"rtl": false, "pct": 0}, "kn": {"rtl": false, "pct": 0.07}, "ko": {"rtl": false, "pct": 0.51}, "ku": {"rtl": false, "pct": 0.01}, "ky": {"rtl": false, "pct": 0}, "lij": {"rtl": false, "pct": 0}, "lt": {"rtl": false, "pct": 0.24}, "lv": {"rtl": false, "pct": 0.42}, "mg": {"rtl": false, "pct": 0.05}, "mi": {"rtl": false, "pct": 0}, "mk": {"rtl": false, "pct": 0.72}, "ml": {"rtl": false, "pct": 0.01}, "mn": {"rtl": false, "pct": 0}, "mr": {"rtl": false, "pct": 0}, "ms": {"rtl": false, "pct": 0.19}, "my": {"rtl": false, "pct": 0}, "ne": {"rtl": false, "pct": 0.01}, "nl": {"rtl": false, "pct": 0.67}, "nn": {"rtl": false, "pct": 0.04}, "no": {"rtl": false, "pct": 0.76}, "nv": {"rtl": false, "pct": 0}, "oc": {"rtl": false, "pct": 0}, "pa": {"rtl": false, "pct": 0}, "pap": {"rtl": false, "pct": 0}, "pl": {"rtl": false, "pct": 0.97}, "pt": {"rtl": false, "pct": 0.86}, "pt-BR": {"rtl": false, "pct": 0.81}, "rm": {"rtl": false, "pct": 0}, "ro": {"rtl": false, "pct": 0.22}, "ru": {"rtl": false, "pct": 0.66}, "sat": {"rtl": false, "pct": 0}, "sc": {"rtl": false, "pct": 0}, "si": {"rtl": false, "pct": 0.02}, "sk": {"rtl": false, "pct": 0.4}, "sl": {"rtl": false, "pct": 0.28}, "so": {"rtl": false, "pct": 0.02}, "sq": {"rtl": false, "pct": 0.08}, "sr": {"rtl": false, "pct": 0.25}, "sv": {"rtl": false, "pct": 0.92}, "sw": {"rtl": false, "pct": 0}, "ta": {"rtl": false, "pct": 0.17}, "te": {"rtl": false, "pct": 0.03}, "th": {"rtl": false, "pct": 0.01}, "tl": {"rtl": false, "pct": 0.04}, "tr": {"rtl": false, "pct": 0.38}, "uk": {"rtl": false, "pct": 0.83}, "ur": {"rtl": true, "pct": 0}, "vi": {"rtl": false, "pct": 0.91}, "yue": {"rtl": false, "pct": 0.13}, "zh": {"rtl": false, "pct": 0.04}, "zh-CN": {"rtl": false, "pct": 0.79}, "zh-HK": {"rtl": false, "pct": 0.37}, "zh-TW": {"rtl": false, "pct": 0.91}}
-9188
View File
File diff suppressed because it is too large Load Diff
-521
View File
@@ -1,521 +0,0 @@
## Presets
iD editor preset and field types are defined in [JSON](http://en.wikipedia.org/wiki/JSON)
files located under the `data/presets` folder of the iD repository.
#### Preset Files
Presets are defined in JSON files located under `data/presets/presets`. They're organized in a
directory hierarchy based on OSM key/value pairs. For example, the preset that matches
the tag `leisure=park` is in the file `data/presets/presets/leisure/park.json`.
#### Preset Schema
A basic preset is of the form:
```javascript
{
// The icon in iD which represents this feature.
"icon": "maki-park",
// The names of fields that will appear by default in the editor sidebar.
// See the fields documentation for details of what's valid here.
"fields": [
"address"
],
// The names of fields that the user can add manually. These will also
// appear if the corresponding tags are present.
"moreFields": [
"phone",
"website"
],
// The geometry types for which this preset is valid.
// options are point, area, line, and vertex.
// vertices are points that are parts of lines, like the nodes in a road
// lines are unclosed ways, and areas are closed ways
"geometry": [
"point", "area"
],
// Terms are synonyms for the preset - these are added to fuel
// the search functionality. searching for 'woodland' will bring
// up this 'park' preset
"terms": [
"esplanade",
"village green",
"woodland"
],
// Tags that are added to the feature when selecting the preset,
// and also used to match the preset against existing features.
// You can use the value "*" to match any value.
"tags": {
"leisure": "park"
},
// English language display name for this map feature.
"name": "Park"
}
```
The complete JSON schema for presets can be found in [`data/presets/schema/preset.json`](schema/preset.json)
#### Preset Properties
##### `name`
The primary name of the feature type in American English.
Upon merging with `develop`, this is sent to Transifex for translating to other localizations. Changing the name of an existing preset will require it to be re-translated to all localizations.
This property is required. There is no default.
##### `geometry`
An array of possible geometry types that a feature must have in order to match this preset.
* `point`: an OSM node that is not a member of any way
* `vertex`: an OSM node that is a member of one or more ways
* `line`: an OSM way that is not an area
* `area`: an OSM way that is closed/circular (the first and last nodes are the same) or a `type=multipolygon` relation
* `relation`: an OSM relation
Closed ways can be treated as both `line` or `area` geometry. If a preset allows both, iD will add an additional `area=yes` tag when choosing the preset for an area feature.
The geometry types should be listed in order of preference. For example, the preset for `leisure=swimming_pool` lists `area` before `point`.
This property is required. There is no default.
##### `tags`
An object with the `"key": "value"` tags a feature must have to match this preset. A `"*"` wildcard value can be set to have this preset match any value for that key.
A features can only match one preset even if its tags and geometry could technically match more than one. iD will pick the best match based on `matchScore`, the number of tags, and the use of wildcard values.
This property is required. There is no default.
##### `addTags`
The tags that are added to the feature when selecting this preset. Defaults to `tags`. If needed, this property will typically be a superset of `tags`.
iD's validator will recommend that users add missing tags from `addTags` to matching features. For example, the Bridge preset has these properties:
```
"tags": {
"man_made": "bridge"
},
"addTags": {
"man_made": "bridge",
"layer": "1"
},
```
When adding a feature with this preset, it will be given the tags `man_made=bridge` and `layer=1`. The user could then change `layer` to `3`, for instance, and the feature would still match the preset because it still has `man_made=bridge`. If the user removes the `layer` tag altogether, iD will recommend adding it back with a value of `1`.
##### `removeTags`
The tags that are removed from the feature when deselecting this preset. Defaults to `addTags` or if this is also not defined, to `tags`.
##### `fields`/`moreFields`
Both these properties are arrays of field paths (e.g. `description` or `generator/type`).
`fields` are shown by default and `moreFields` are shown if manually added by the
user or if a matching tag is present. Note that some fields have a `prerequisiteTag`
property that limits when they will be shown.
A preset can reference the fields of another by using that preset's name contained in
brackets, like `{preset}`. For example, `shop/books` references and extends the fields
of `shop`:
```javascript
"fields": [
"{shop}",
"internet_access"
],
"moreFields": [
"{shop}",
"internet_access/fee",
"internet_access/ssid"
],
"tags": {
"shop": "books"
}
```
If `fields` or `moreFields` are not defined, the values of the preset's "parent"
preset are used. For example, `shop/convenience` automatically uses the same
fields as `shop`.
In both explicit and implicit inheritance, fields for keys that define the
preset are generally not inherited. E.g. the `shop` field is not inherited by `shop/…` presets.
##### `icon`
The name of a local SVG icon file. You can use icons from any of the following icon sets. When specifying an icon, use the prefixed version of the name, for example `"icon": "maki-park"`.
* [iD's spritesheet](https://github.com/openstreetmap/iD/tree/develop/svg/iD-sprite/presets) (`iD-`)
* [Maki](https://labs.mapbox.com/maki-icons/) (`maki-`), map-specific icons from Mapbox
* [Temaki](https://ideditor.github.io/temaki/docs/) (`temaki-`), an expansion pack for Maki
* This is the best place to submit a PR if you want to create a preset icon!
* [Font Awesome](https://fontawesome.com/icons?d=gallery&m=free), thousands of general-purpose icons
* There is a free and pro tier. You can use any icon from the free tier in the following styles:
* [Solid](https://fontawesome.com/icons?d=gallery&s=solid&m=free) (`fas-`)
* [Regular](https://fontawesome.com/icons?d=gallery&s=regular&m=free) (`far-`)
* [Brands](https://fontawesome.com/icons?d=gallery&s=brands&m=free) (`fab-`)
##### `imageURL`
The URL of a remote image file. This does not fully replace `icon`—both may be shown in the UI.
For example, `imageURL` is used to specify the logos of brand presets from the [name-suggestion-index](https://github.com/osmlab/name-suggestion-index).
Bitmap images should be at least 100x100px to look good at 50x50pt on high-resolution screens.
##### `searchable`
Deprecated or generic presets can include the property `"searchable": false`.
This means that they will be recognized by iD when editing existing data,
but will not be available as an option when adding new features.
By convention, unsearchable presets have filenames that begin with an underscore
(e.g. `data/presets/presets/landuse/_farm.json`)
##### `matchScore`
A number that ranks this preset against others that match the feature.
For example, a feature with `amenity=cafe` and `building=commercial` will match the Cafe preset instead of the Commercial Building preset because Commercial Building has a lower `matchScore`.
The default is `1.0`.
##### `countryCodes`
An array of two-letter, lowercase [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes. The preset will only be searchable when the user is editing over the specified, whitelisted countries. The locale and language of iD are not factors, just the position of the map.
By default, presets are available everywhere.
##### `notCountryCodes`
An array of two-letter, lowercase [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes. Similar to `countryCodes` except a blocklist.
##### `replacement`
The ID of a preset that is preferable to this one. iD's validator will flag features matching this preset and recommend that the user upgrade the tags.
When possible, use `deprecated.json` instead to specify upgrade paths for old tags. This property is meant for special cases, such as upgrades with geometry requirements.
##### `reference`
A key and optionally a value to link to the wiki documentation for this preset. Only necessary if the preset consists of several tags.
For example,
```javascript
"reference": {
"key": "tower:type",
"value": "communication"
}
```
## Fields
Fields are reusable form elements that can be associated with presets.
#### Field Files
Fields are defined in JSON files located under `data/presets/fields`.
The field files are typically named according to their associated OSM key.
For example, the field for the tag `sport=*` is stored in the file
`data/presets/fields/sport.json`. When a field has multiple versions that
depend on which preset is active, we add a suffix to the filename:
(`sport.json`, `sport_ice.json`, `sport_racing_motor.json`).
Some keys in OSM are namespaced using colons (':'). Namespaced fields
are nested in folders according to their tag.
For example, the field for the tag `piste:difficulty=*` is stored in the file
`data/presets/fields/piste/difficulty.json`.
#### Field Schema
```js
{
"key": "cuisine",
"type": "combo",
"label": "Cuisine"
}
```
The complete JSON schema for fields can be found in [`data/presets/schema/field.json`](schema/field.json)
#### Field Properties
##### `type`
A string specifying the UI and behavior of the field. Must be one of the following values.
###### Text fields
* `text` - Basic single line text field
* `number` - Text field with up/down buttons for entering numbers (e.g. `width=*`)
* `localized` - Text field with localization abilities (e.g. `name=*`, `name:es=*`, etc.)
* `tel` - Text field for entering phone numbers (localized for editing location)
* `email` - Text field for entering email addresses
* `url` - Text field for entering URLs
* `identifier` - Text field for foreign IDs (e.g. `gnis:feature_id`)
* `textarea` - Multi-line text area (e.g. `description=*`)
###### Combo/Dropdown fields
* `combo` - Dropdown field for picking one option out of many (e.g. `surface=*`)
* `typeCombo` - Dropdown field picking a specific type from a generic category key<br/>
(e.g. `waterway=*`. If unset, tag will be `waterway=yes`, but dropdown contains options like `stream`, `ditch`, `river`)
* `multiCombo` - Dropdown field for adding `yes` values to multiple keys with the same prefix (a common multikey)<br/>
(e.g. `recycling:*` -> `recycling:glass=yes`, `recycling:paper=yes`, etc.)
* `manyCombo` - Dropdown field for adding `yes` values to many different keys<br/>
(e.g. `bus`, `tram`, `train` -> `bus=yes`, `tram=yes`, etc.)
* `networkCombo` - Dropdown field that helps users pick a route `network` tag (localized for editing location)
* `semiCombo` - Dropdown field for adding multiple values to a semicolon-delimited list<br/>
(e.g. `sport=*` -> `soccer;lacrosse;athletics;field_hockey`)
###### Checkboxes
* `check` - 3-state checkbox: `yes`, `no`, unknown (no tag)
* `defaultCheck` - 2-state checkbox where checked produces `yes` and unchecked produces no tag
* `onewayCheck` - 3-state checkbox for `oneway` fields, with extra button for direction switching
###### Radio Buttons
* `radio` - Multiple choice radio button field
* `structureRadio` - Multiple choice structure radio button field, with extra input for bridge/tunnel level
###### Special
* `access` - Block of dropdowns for defining the `access=*` tags on a highway
* `address` - Block of text and dropdown fields for entering address information (localized for editing location)
* `cycleway` - Block of dropdowns for adding `cycleway:left` and `cycleway:right` tags on a highway
* `maxspeed` - Numeric text field for speed and dropdown for "mph/kph"
* `restrictions` - Graphical field for editing turn restrictions
* `wikidata` - Search field for selecting a Wikidata entity
* `wikipedia` - Block of fields for selecting a wiki language and Wikipedia page
##### `usage`
A string specifying how iD uses the field. Must be one of the following values.
* `preset` - The field is listed in one or more preset files (default and most common value)
* `changeset` - The field is only used for changeset tags when uploading, e.g. `comment`
* `group` - The field is only used within another field such as `structure`, e.g. `cutting`
* `manual` - The field is only added by iD programmatically as needed, e.g. `restrictions`
##### `key`/`keys`
The `key` property names the OSM key that the field will edit.
Compound fields like `address` expect an array of keys in the `keys` property.
##### `universal`
If a field definition contains the property `"universal": true`, this field will
appear in the "Add Field" list for all presets
##### `geometry`
If specified, only show the field for this kind of geometry. Should contain
one of `point`, `vertex`, `line`, `area`.
##### `default`
The default value for the field. For example, the `building_area.json` field
will automatically add the tag `building=yes` to certain presets that are
associated with building features (but only if drawn as a closed area).
```js
{
"key": "building",
"type": "combo",
"default": "yes",
"geometry": "area",
"label": "Building"
}
```
##### `options`
Combo field types can provide dropdown values in an `options` array.
The user can pick from any of the options, or type their own value.
```js
{
"key": "diaper",
"type": "combo",
"label": "Diaper Changing Available",
"options": ["yes", "no", "room", "1", "2", "3", "4", "5"]
}
```
##### `strings`
Combo field types can accept name-value pairs in the `strings` property.
This is helpful when the field has a fixed number of options and you want to be
able to provide a translatable description of each option. When using `strings`,
the user can not type their own value, they must choose one of the given values.
```js
{
"key": "smoothness",
"type": "combo",
"label": "Smoothness",
"placeholder": "Thin Rollers, Wheels, Off-Road...",
"strings": {
"options": {
"excellent": "Thin Rollers: rollerblade, skateboard",
"good": "Thin Wheels: racing bike",
"intermediate": "Wheels: city bike, wheelchair, scooter",
"bad": "Robust Wheels: trekking bike, car, rickshaw",
"very_bad": "High Clearance: light duty off-road vehicle",
"horrible": "Off-Road: heavy duty off-road vehicle",
"very_horrible": "Specialized off-road: tractor, ATV",
"impassable": "Impassable / No wheeled vehicle"
}
}
}
```
If a combo field does not specify `options` or `strings`, the field will fetch
common tag values from the Taginfo service to use as dropdown values.
##### `snake_case`
For combo fields, spaces are replaced with underscores in the tag value if `snake_case` is `true`. The default is `true`.
##### `caseSensitive`
For combo fields, case-sensitive field values are allowed if `caseSensitive` is `true`. The default is `false`.
##### `minValue`
For number fields, the lowest valid value. There is no default.
##### `maxValue`
For number fields, the greatest valid value. There is no default.
##### `increment`
For number fields, the amount the stepper control increases or decreases the value. The default is `1`.
##### `prerequisiteTag`
An object defining the tags the feature needs before this field will be displayed. It may have this property:
- `key`: The key for the required tag.
And may optionally be combined with one of these properties:
- `value`: The value that the key must have.
- `valueNot`: The value that the key must not have.
Alternatively, the object may contain a single property:
- `keyNot`: The key that must not be present.
For example, this is how we show the Internet Access Fee field only if the feature has an `internet_access` tag not equal to `no`.
```js
"prerequisiteTag": {
"key": "internet_access",
"valueNot": "no"
}
```
If a feature has a value for this field's `key` or `keys`, it will display regardless of the `prerequisiteTag` property.
##### `countryCodes`
An array of two-letter, lowercase [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes. The field will only be available for features in the specified, whitelisted countries.
By default, fields are available everywhere.
##### `notCountryCodes`
An array of two-letter, lowercase [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes. Similar to `countryCodes` except a blocklist.
##### `urlFormat`
For `identifier` fields, the permalink URL of the external record. It must contain a `{value}` placeholder where the tag value will be inserted. For example:
```js
"urlFormat": "https://geonames.usgs.gov/apex/f?p=gnispq:3:::NO::P3_FID:{value}"
```
##### `pattern`
For `identifier` fields, the regular expression that valid values are expected to match to be linkable.
## Building
To build presets, all you need to do is run `npm run build`.
The following files are autogenerated and will be replaced when rebuilding:
* `data/presets/categories.json`
* `data/presets/fields.json`
* `data/presets/presets.json`
* `data/presets.yaml`
* `data/taginfo.json`
* `dist/locales/en.json`
## Custom Presets
iD supports deployments which use a custom set of presets. You can supply presets via
the `presets` accessor:
```js
var id = iD.coreContext().presets({
presets: { ... },
fields: { ... },
defaults: { ... },
categories: { ... }
});
```
All four parts (presets, fields, defaults, and categories) must be supplied. In addition,
several base presets and fields must be included.
Basic geometric presets must be included so that every feature matches at least one preset.
For example:
```js
"area": {
"name": "Area",
"tags": {},
"geometry": ["area"],
"matchScore": 0.1
},
"line": {
"name": "Line",
"tags": {},
"geometry": ["line"],
"matchScore": 0.1
},
"point": {
"name": "Point",
"tags": {},
"geometry": ["point", "vertex"],
"matchScore": 0.1
},
"relation": {
"name": "Relation",
"tags": {},
"geometry": ["relation"],
"matchScore": 0.1
}
```
A "name" field must be included:
```js
"name": {
"key": "name",
"type": "localized",
"label": "Name",
"placeholder": "Common name (if any)"
}
```
-1
View File
@@ -1 +0,0 @@
{"category-barrier": {"icon": "maki-roadblock", "name": "Barrier Features", "members": ["barrier/fence", "barrier/wall", "barrier/ditch", "barrier/gate", "barrier/hedge", "barrier/kerb", "barrier"]}, "category-building": {"icon": "maki-building", "name": "Building Features", "members": ["building", "building/house", "building/apartments", "building/garage", "building/retail", "building/commercial", "building/industrial", "building/residential"]}, "category-golf": {"icon": "maki-golf", "name": "Golf Features", "members": ["golf/fairway", "golf/green", "golf/lateral_water_hazard", "golf/rough", "golf/bunker", "golf/tee", "golf/water_hazard", "golf/driving_range", "golf/hole", "golf/cartpath", "golf/path"]}, "category-landuse": {"icon": "maki-landuse", "name": "Land Use Features", "members": ["landuse/residential", "landuse/industrial", "landuse/commercial", "landuse/retail", "landuse/farmland", "landuse/farmyard", "landuse/forest", "landuse/meadow", "landuse/aquaculture", "landuse/cemetery", "landuse/military", "landuse/religious"]}, "category-natural": {"icon": "maki-natural", "name": "Natural Features", "members": ["natural/water", "natural/wood", "natural/scrub", "natural/wetland", "natural/grassland", "natural/heath", "natural/bare_rock", "natural/beach", "natural/cave_entrance", "natural/glacier", "natural/coastline", "natural/tree_row", "natural/peak", "natural/cliff"]}, "category-path": {"icon": "temaki-pedestrian", "name": "Paths", "members": ["highway/path", "highway/footway", "highway/footway/marked", "highway/footway/sidewalk", "highway/steps", "highway/cycleway", "highway/bridleway", "highway/pedestrian_line"]}, "category-rail": {"icon": "temaki-railway_track", "name": "Rails", "members": ["railway/rail", "railway/disused", "railway/tram", "railway/subway", "railway/narrow_gauge", "railway/light_rail", "railway/monorail", "railway/funicular"]}, "category-restriction": {"icon": "iD-restriction", "name": "Restriction Features", "members": ["type/restriction/no_left_turn", "type/restriction/no_right_turn", "type/restriction/no_straight_on", "type/restriction/no_u_turn", "type/restriction/only_left_turn", "type/restriction/only_right_turn", "type/restriction/only_straight_on", "type/restriction/only_u_turn", "type/restriction"]}, "category-road_major": {"icon": "iD-highway-unclassified", "name": "Major Roads", "members": ["highway/motorway", "highway/trunk", "highway/primary", "highway/secondary", "highway/tertiary", "highway/motorway_link", "highway/trunk_link", "highway/primary_link", "highway/secondary_link", "highway/tertiary_link"]}, "category-road_minor": {"icon": "iD-highway-unclassified", "name": "Minor Roads", "members": ["highway/unclassified", "highway/residential", "highway/living_street", "highway/service", "highway/track"]}, "category-road_service": {"icon": "iD-highway-service", "name": "Service Roads", "members": ["highway/service", "highway/service/parking_aisle", "highway/service/driveway", "highway/service/alley", "highway/service/emergency_access", "highway/service/drive-through"]}, "category-route": {"icon": "iD-route", "name": "Route Features", "members": ["type/route/road", "type/route/bicycle", "type/route/foot", "type/route/hiking", "type/route/horse", "type/route/piste", "type/route/bus", "type/route/train", "type/route/light_rail", "type/route/tram", "type/route/subway", "type/route/ferry", "type/route/power", "type/route/pipeline", "type/route/detour", "type/route_master", "type/route"]}, "category-utility": {"icon": "iD-power-line", "name": "Utility Features", "members": ["power/line", "power/minor_line", "man_made/pipeline", "power/cable/underground"]}, "category-water": {"icon": "maki-water", "name": "Water Bodies", "members": ["natural/water", "natural/water/pond", "natural/water/basin", "natural/water/lake", "natural/water/reservoir"]}, "category-waterway": {"icon": "iD-waterway-stream", "name": "Waterways", "members": ["waterway/stream", "waterway/drain", "waterway/river", "waterway/canal", "waterway/ditch", "natural/water/stream", "natural/water/river", "natural/water/canal"]}}
-13
View File
@@ -1,13 +0,0 @@
{
"icon": "maki-roadblock",
"name": "Barrier Features",
"members": [
"barrier/fence",
"barrier/wall",
"barrier/ditch",
"barrier/gate",
"barrier/hedge",
"barrier/kerb",
"barrier"
]
}
-14
View File
@@ -1,14 +0,0 @@
{
"icon": "maki-building",
"name": "Building Features",
"members": [
"building",
"building/house",
"building/apartments",
"building/garage",
"building/retail",
"building/commercial",
"building/industrial",
"building/residential"
]
}
-17
View File
@@ -1,17 +0,0 @@
{
"icon": "maki-golf",
"name": "Golf Features",
"members": [
"golf/fairway",
"golf/green",
"golf/lateral_water_hazard",
"golf/rough",
"golf/bunker",
"golf/tee",
"golf/water_hazard",
"golf/driving_range",
"golf/hole",
"golf/cartpath",
"golf/path"
]
}
-18
View File
@@ -1,18 +0,0 @@
{
"icon": "maki-landuse",
"name": "Land Use Features",
"members": [
"landuse/residential",
"landuse/industrial",
"landuse/commercial",
"landuse/retail",
"landuse/farmland",
"landuse/farmyard",
"landuse/forest",
"landuse/meadow",
"landuse/aquaculture",
"landuse/cemetery",
"landuse/military",
"landuse/religious"
]
}
-20
View File
@@ -1,20 +0,0 @@
{
"icon": "maki-natural",
"name": "Natural Features",
"members": [
"natural/water",
"natural/wood",
"natural/scrub",
"natural/wetland",
"natural/grassland",
"natural/heath",
"natural/bare_rock",
"natural/beach",
"natural/cave_entrance",
"natural/glacier",
"natural/coastline",
"natural/tree_row",
"natural/peak",
"natural/cliff"
]
}
-14
View File
@@ -1,14 +0,0 @@
{
"icon": "temaki-pedestrian",
"name": "Paths",
"members": [
"highway/path",
"highway/footway",
"highway/footway/marked",
"highway/footway/sidewalk",
"highway/steps",
"highway/cycleway",
"highway/bridleway",
"highway/pedestrian_line"
]
}
-14
View File
@@ -1,14 +0,0 @@
{
"icon": "temaki-railway_track",
"name": "Rails",
"members": [
"railway/rail",
"railway/disused",
"railway/tram",
"railway/subway",
"railway/narrow_gauge",
"railway/light_rail",
"railway/monorail",
"railway/funicular"
]
}
-15
View File
@@ -1,15 +0,0 @@
{
"icon": "iD-restriction",
"name": "Restriction Features",
"members": [
"type/restriction/no_left_turn",
"type/restriction/no_right_turn",
"type/restriction/no_straight_on",
"type/restriction/no_u_turn",
"type/restriction/only_left_turn",
"type/restriction/only_right_turn",
"type/restriction/only_straight_on",
"type/restriction/only_u_turn",
"type/restriction"
]
}
-16
View File
@@ -1,16 +0,0 @@
{
"icon": "iD-highway-unclassified",
"name": "Major Roads",
"members": [
"highway/motorway",
"highway/trunk",
"highway/primary",
"highway/secondary",
"highway/tertiary",
"highway/motorway_link",
"highway/trunk_link",
"highway/primary_link",
"highway/secondary_link",
"highway/tertiary_link"
]
}
-11
View File
@@ -1,11 +0,0 @@
{
"icon": "iD-highway-unclassified",
"name": "Minor Roads",
"members": [
"highway/unclassified",
"highway/residential",
"highway/living_street",
"highway/service",
"highway/track"
]
}
-12
View File
@@ -1,12 +0,0 @@
{
"icon": "iD-highway-service",
"name": "Service Roads",
"members": [
"highway/service",
"highway/service/parking_aisle",
"highway/service/driveway",
"highway/service/alley",
"highway/service/emergency_access",
"highway/service/drive-through"
]
}
-23
View File
@@ -1,23 +0,0 @@
{
"icon": "iD-route",
"name": "Route Features",
"members": [
"type/route/road",
"type/route/bicycle",
"type/route/foot",
"type/route/hiking",
"type/route/horse",
"type/route/piste",
"type/route/bus",
"type/route/train",
"type/route/light_rail",
"type/route/tram",
"type/route/subway",
"type/route/ferry",
"type/route/power",
"type/route/pipeline",
"type/route/detour",
"type/route_master",
"type/route"
]
}
-10
View File
@@ -1,10 +0,0 @@
{
"icon": "iD-power-line",
"name": "Utility Features",
"members": [
"power/line",
"power/minor_line",
"man_made/pipeline",
"power/cable/underground"
]
}
-11
View File
@@ -1,11 +0,0 @@
{
"icon": "maki-water",
"name": "Water Bodies",
"members": [
"natural/water",
"natural/water/pond",
"natural/water/basin",
"natural/water/lake",
"natural/water/reservoir"
]
}
-14
View File
@@ -1,14 +0,0 @@
{
"icon": "iD-waterway-stream",
"name": "Waterways",
"members": [
"waterway/stream",
"waterway/drain",
"waterway/river",
"waterway/canal",
"waterway/ditch",
"natural/water/stream",
"natural/water/river",
"natural/water/canal"
]
}
-61
View File
@@ -1,61 +0,0 @@
{
"area": [
"category-landuse",
"category-building",
"category-water",
"category-natural",
"leisure/park",
"amenity/hospital",
"amenity/place_of_worship",
"amenity/cafe",
"amenity/restaurant",
"area"
],
"line": [
"category-road_major",
"category-road_minor",
"category-rail",
"category-path",
"category-waterway",
"category-barrier",
"category-natural",
"category-utility",
"line"
],
"point": [
"category-natural",
"leisure/park",
"amenity/hospital",
"amenity/place_of_worship",
"amenity/cafe",
"amenity/restaurant",
"amenity/fast_food",
"amenity/bar",
"amenity/bank",
"shop/supermarket",
"point"
],
"vertex": [
"highway/crossing/marked",
"highway/crossing/unmarked",
"railway/level_crossing",
"highway/traffic_signals",
"highway/turning_circle",
"highway/turning_loop",
"traffic_calming",
"highway/mini_roundabout",
"highway/motorway_junction",
"point"
],
"relation": [
"category-route",
"category-restriction",
"public_transport/stop_area",
"type/boundary",
"type/waterway",
"type/multipolygon",
"type/enforcement",
"type/site",
"relation"
]
}
-521
View File
@@ -1,521 +0,0 @@
{
"access_aisle": {"key": "access_aisle", "type": "combo", "label": "Type"},
"access_simple": {"key": "access", "type": "combo", "label": "Allowed Access", "options": ["yes", "permissive", "private", "customers", "permit", "no"], "terms": ["permitted", "private", "public"]},
"access": {"keys": ["access", "foot", "motor_vehicle", "bicycle", "horse"], "reference": {"key": "access"}, "type": "access", "label": "Allowed Access", "placeholder": "Not Specified", "strings": {"types": {"access": "All", "foot": "Foot", "motor_vehicle": "Motor Vehicles", "bicycle": "Bicycles", "horse": "Horses"}, "options": {"yes": {"title": "Allowed", "description": "Access allowed by law; a right of way"}, "no": {"title": "Prohibited", "description": "Access not allowed to the general public"}, "permissive": {"title": "Permissive", "description": "Access allowed until such time as the owner revokes the permission"}, "private": {"title": "Private", "description": "Access allowed only with permission of the owner on an individual basis"}, "designated": {"title": "Designated", "description": "Access allowed according to signs or specific local laws"}, "destination": {"title": "Destination", "description": "Access allowed only to reach a destination"}, "dismount": {"title": "Dismount", "description": "Access allowed but rider must dismount"}, "permit": {"title": "Permit", "description": "Access allowed only with a valid permit or license"}}}},
"addr/interpolation": {"key": "addr:interpolation", "type": "combo", "label": "Type", "strings": {"options": {"all": "All", "even": "Even", "odd": "Odd", "alphabetic": "Alphabetic"}}},
"address": {"type": "address", "key": "addr", "keys": ["addr:block_number", "addr:city", "addr:block_number", "addr:conscriptionnumber", "addr:county", "addr:country", "addr:county", "addr:district", "addr:floor", "addr:hamlet", "addr:housename", "addr:housenumber", "addr:neighbourhood", "addr:place", "addr:postcode", "addr:province", "addr:quarter", "addr:state", "addr:street", "addr:subdistrict", "addr:suburb", "addr:unit"], "icon": "address", "label": "Address", "strings": {"placeholders": {"block_number": "Block Number", "block_number!jp": "Block No.", "city": "City", "city!cn": "City/Prefecture/League", "city!jp": "City/Town/Village/Tokyo Special Ward", "city!vn": "City/Town", "conscriptionnumber": "123", "country": "Country", "county": "County", "county!jp": "District", "district": "District", "district!cn": "District/County/Banner", "district!vn": "Arrondissement/Town/District", "floor": "Floor", "hamlet": "Hamlet", "housename": "Housename", "housenumber": "123", "housenumber!jp": "Building No./Lot No.", "neighbourhood": "Neighbourhood", "neighbourhood!jp": "Chōme/Aza/Koaza", "place": "Place", "postcode": "Postcode", "province": "Province", "province!cn": "Province/Municipality/AR/SAR", "province!jp": "Prefecture", "quarter": "Quarter", "quarter!jp": "Ōaza/Machi", "state": "State", "street": "Street", "subdistrict": "Subdistrict", "subdistrict!vn": "Ward/Commune/Townlet", "suburb": "Suburb", "suburb!jp": "Ward", "unit": "Unit"}}, "terms": ["location"]},
"admin_level": {"key": "admin_level", "type": "number", "minValue": 1, "label": "Admin Level"},
"aerialway": {"key": "aerialway", "type": "typeCombo", "label": "Type"},
"aerialway/access": {"key": "aerialway:access", "type": "combo", "label": "Access", "strings": {"options": {"entry": "Entry", "exit": "Exit", "both": "Both"}}},
"aerialway/bubble": {"key": "aerialway:bubble", "type": "check", "label": "Bubble"},
"aerialway/capacity": {"key": "aerialway:capacity", "type": "number", "minValue": 0, "label": "Capacity (per hour)", "placeholder": "500, 2500, 5000..."},
"aerialway/duration": {"key": "aerialway:duration", "type": "number", "minValue": 0, "label": "Duration (minutes)", "placeholder": "1, 2, 3..."},
"aerialway/heating": {"key": "aerialway:heating", "type": "check", "label": "Heated"},
"aerialway/occupancy": {"key": "aerialway:occupancy", "type": "number", "minValue": 0, "label": "Occupancy", "placeholder": "2, 4, 8..."},
"aerialway/summer/access": {"key": "aerialway:summer:access", "type": "combo", "label": "Access (summer)", "strings": {"options": {"entry": "Entry", "exit": "Exit", "both": "Both"}}},
"aeroway": {"key": "aeroway", "type": "typeCombo", "label": "Type"},
"agrarian": {"key": "agrarian", "type": "semiCombo", "label": "Products"},
"air_conditioning": {"key": "air_conditioning", "type": "check", "label": "Air Conditioning", "terms": ["cooling system", "refrigeration"]},
"amenity": {"key": "amenity", "type": "typeCombo", "label": "Type"},
"animal_boarding": {"key": "animal_boarding", "type": "semiCombo", "label": "For Animals"},
"animal_breeding": {"key": "animal_breeding", "type": "semiCombo", "label": "For Animals"},
"animal_shelter": {"key": "animal_shelter", "type": "semiCombo", "label": "For Animals"},
"architect": {"key": "architect", "type": "text", "label": "Architect", "terms": ["building designer"]},
"area/highway": {"key": "area:highway", "type": "typeCombo", "label": "Type"},
"artist": {"key": "artist_name", "type": "text", "label": "Artist"},
"artwork_type": {"key": "artwork_type", "type": "combo", "label": "Type"},
"ascent": {"key": "ascent", "minValue": 0, "type": "number", "label": "Total Ascent", "terms": ["ascent", "climb", "cumulative elevation gain"]},
"atm": {"key": "atm", "type": "check", "label": "ATM"},
"attraction": {"key": "attraction", "type": "typeCombo", "label": "Type"},
"automated": {"key": "automated", "type": "check", "label": "Automated"},
"baby_feeding": {"key": "baby_feeding", "type": "combo", "label": "Baby Nursing Area", "strings": {"options": {"room": "Dedicated Room", "yes": "Marked Space", "no": "None"}}, "terms": ["baby feeding", "breastfeeding", "lactation", "mothers", "nursing"]},
"baby_seat": {"key": "baby", "type": "check", "label": "Baby Seat"},
"backcountry": {"key": "backcountry", "type": "check", "label": "Backcountry"},
"backrest": {"key": "backrest", "type": "check", "label": "Backrest"},
"bar": {"key": "bar", "type": "check", "label": "Bar"},
"barrier": {"key": "barrier", "type": "typeCombo", "label": "Type"},
"basin": {"key": "basin", "type": "combo", "label": "Type"},
"bath/open_air": {"key": "bath:open_air", "label": "Open Air", "type": "check"},
"bath/sand_bath": {"key": "bath:sand_bath", "label": "Sand Bath", "type": "check"},
"bath/type": {"key": "bath:type", "type": "combo", "label": "Specialty"},
"beauty": {"key": "beauty", "type": "semiCombo", "label": "Services"},
"bench": {"key": "bench", "type": "check", "label": "Bench", "terms": ["seating"]},
"bicycle_parking": {"key": "bicycle_parking", "type": "combo", "label": "Type"},
"bin": {"key": "bin", "type": "check", "label": "Waste Bin", "terms": ["garbage can", "trash can"]},
"blind": {"key": "blind", "type": "radio", "strings": {"options": {"yes": "Yes", "limited": "Limited", "no": "No"}}, "label": "Blind Person Access", "terms": ["sight impairment", "vision impairment"]},
"blood_components": {"key": "blood:", "type": "multiCombo", "label": "Blood Components", "strings": {"options": {"whole": "whole blood", "plasma": "plasma", "platelets": "platelets", "stemcells": "stem cell samples"}}},
"board_type": {"key": "board_type", "type": "combo", "label": "Type"},
"bollard": {"key": "bollard", "type": "combo", "label": "Type"},
"booth": {"key": "booth", "type": "combo", "label": "Booth", "caseSensitive": true},
"bottle": {"key": "bottle", "type": "check", "label": "Bottle Filling"},
"boules": {"key": "boules", "type": "typeCombo", "label": "Type"},
"boundary": {"key": "boundary", "type": "combo", "label": "Type"},
"brand": {"key": "brand", "type": "text", "label": "Brand"},
"brewery": {"key": "brewery", "type": "semiCombo", "label": "Draft Beers", "terms": ["on tap"]},
"bridge_combo": {"key": "bridge", "type": "combo", "label": "Type"},
"bridge": {"key": "bridge", "type": "typeCombo", "label": "Type", "usage": "group", "placeholder": "Default"},
"bridge/support": {"key": "bridge:support", "type": "typeCombo", "label": "Type"},
"building_area": {"key": "building", "type": "combo", "default": "yes", "geometry": ["area"], "label": "Building"},
"building": {"key": "building", "type": "combo", "label": "Building", "terms": ["structure"]},
"building/flats": {"key": "building:flats", "type": "number", "minValue": 0, "label": "Units", "placeholder": "2, 4, 6, 8..."},
"building/levels_building": {"key": "building:levels", "type": "number", "minValue": 0, "label": "Building Levels", "placeholder": "2, 4, 6...", "prerequisiteTag": {"key": "building", "valueNot": "no"}},
"building/levels": {"key": "building:levels", "type": "number", "minValue": 0, "label": "Levels", "placeholder": "2, 4, 6..."},
"building/levels/underground": {"key": "building:levels:underground", "type": "number", "minValue": 0, "label": "Underground Levels", "placeholder": "2, 4, 6...", "terms": ["basement levels"]},
"building/material": {"key": "building:material", "type": "combo", "label": "Material"},
"bunker_type": {"key": "bunker_type", "type": "combo", "label": "Type"},
"cables": {"key": "cables", "type": "number", "minValue": 1, "label": "Cables", "placeholder": "1, 2, 3..."},
"camera/direction": {"key": "camera:direction", "type": "number", "label": "Direction (Degrees Clockwise)", "placeholder": "45, 90, 180, 270"},
"camera/mount": {"key": "camera:mount", "type": "combo", "label": "Camera Mount"},
"camera/type": {"key": "camera:type", "type": "combo", "label": "Camera Type", "strings": {"options": {"fixed": "Fixed", "panning": "Panning", "dome": "Dome"}}},
"capacity_parking": {"key": "capacity", "type": "number", "minValue": 0, "label": "Total Spaces", "placeholder": "10, 20, 30..."},
"capacity": {"key": "capacity", "type": "number", "minValue": 0, "label": "Capacity", "placeholder": "50, 100, 200..."},
"capacity/disabled_parking": {"key": "capacity:disabled", "type": "number", "minValue": 0, "label": "Accessible Spaces", "placeholder": "1, 2, 3..."},
"cash_in": {"key": "cash_in", "type": "check", "label": "Cash In"},
"castle_type": {"key": "castle_type", "type": "combo", "label": "Type"},
"changing_table": {"key": "changing_table", "type": "check", "label": "Diaper Changing Table"},
"charge_fee": {"key": "charge", "type": "text", "label": "Fee Amount", "placeholder": "1 EUR, 5 USD, 10 JPY…", "prerequisiteTag": {"key": "fee", "valueNot": "no"}},
"charge_toll": {"key": "charge", "type": "text", "label": "Toll Amount", "placeholder": "1 EUR, 5 USD, 10 JPY…", "prerequisiteTag": {"key": "toll", "valueNot": "no"}},
"check_date": {"key": "check_date", "type": "text", "label": "Last Checked Date", "placeholder": "YYYY-MM-DD"},
"circumference": {"key": "circumference", "type": "combo", "label": "Circumference", "snake_case": false, "placeholder": "1 m, 20 cm, 30 in…"},
"clothes": {"key": "clothes", "type": "semiCombo", "label": "Clothes"},
"club": {"key": "club", "type": "typeCombo", "label": "Type"},
"collection_times": {"key": "collection_times", "type": "text", "label": "Collection Times"},
"collector": {"key": "collector", "type": "semiCombo", "label": "Items"},
"colour": {"key": "colour", "type": "text", "label": "Color"},
"comment": {"key": "comment", "type": "textarea", "label": "Changeset Comment", "usage": "changeset", "placeholder": "Brief description of your contributions (required)"},
"communication_multi": {"key": "communication:", "type": "multiCombo", "label": "Communication Types"},
"connectivity": {"key": "connectivity", "type": "text", "label": "Connectivity"},
"construction": {"key": "construction", "type": "combo", "label": "Type"},
"consulate": {"key": "consulate", "type": "combo", "label": "Type"},
"consulting": {"key": "consulting", "type": "semiCombo", "label": "Expertise"},
"contact/webcam": {"key": "contact:webcam", "type": "url", "icon": "website", "label": "Webcam URL", "placeholder": "http://example.com/"},
"content": {"key": "content", "type": "combo", "label": "Content", "options": ["silage", "water", "oil", "fuel", "slurry", "gas", "manure", "sewage"]},
"conveying_escalator": {"key": "conveying", "type": "check", "label": "Escalator"},
"conveying": {"key": "conveying", "type": "typeCombo", "label": "Movement Direction", "strings": {"options": {"forward": "Forward", "backward": "Backward", "reversible": "Reversible"}}},
"country_flag": {"key": "country", "type": "combo", "label": "Flag Country", "prerequisiteTag": {"key": "flag:type", "value": "national"}},
"country": {"key": "country", "type": "combo", "label": "Country"},
"couplings": {"key": "couplings", "type": "number", "minValue": 1, "label": "Couplings", "placeholder": "1, 2, 3..."},
"covered": {"key": "covered", "type": "check", "label": "Covered"},
"craft": {"key": "craft", "type": "typeCombo", "label": "Type"},
"crane/type": {"key": "crane:type", "type": "combo", "label": "Crane Type", "strings": {"options": {"portal_crane": "Portal Crane", "floor-mounted_crane": "Floor-mounted Crane", "travel_lift": "Travel Lift"}}},
"crop": {"key": "crop", "type": "semiCombo", "label": "Crops"},
"crossing": {"key": "crossing", "type": "combo", "label": "Type"},
"crossing/island": {"key": "crossing:island", "type": "check", "label": "Refuge Island"},
"cuisine": {"key": "cuisine", "type": "semiCombo", "label": "Cuisines", "terms": ["fare", "food types"]},
"currency_multi": {"key": "currency:", "type": "multiCombo", "label": "Currency Types", "terms": ["bills", "cash", "coins", "money"]},
"cutting": {"key": "cutting", "type": "typeCombo", "label": "Type", "usage": "group", "placeholder": "Default"},
"cycle_network": {"key": "cycle_network", "type": "networkCombo", "label": "Network"},
"cycleway": {"keys": ["cycleway", "cycleway:left", "cycleway:right"], "reference": {"key": "cycleway"}, "type": "cycleway", "label": "Bike Lanes", "placeholder": "none", "strings": {"types": {"cycleway:left": "Left side", "cycleway:right": "Right side"}, "options": {"none": {"title": "None", "description": "No bike lane"}, "lane": {"title": "Standard bike lane", "description": "A bike lane separated from auto traffic by a painted line"}, "shared_lane": {"title": "Shared bike lane", "description": "A bike lane with no separation from auto traffic"}, "track": {"title": "Bike track", "description": "A bike lane separated from traffic by a physical barrier"}, "share_busway": {"title": "Bike lane shared with bus", "description": "A bike lane shared with a bus lane"}, "opposite_lane": {"title": "Opposite bike lane", "description": "A bike lane that travels in the opposite direction of traffic"}, "opposite": {"title": "Contraflow bike lane", "description": "A bike lane that travels in both directions on a one-way street"}}}},
"dance/style": {"key": "dance:style", "type": "semiCombo", "label": "Dance Styles"},
"date": {"key": "date", "type": "check", "label": "Date"},
"defibrillator/location": {"key": "defibrillator:location", "type": "textarea", "label": "Location Description"},
"delivery": {"key": "delivery", "type": "check", "label": "Delivery"},
"denomination": {"key": "denomination", "type": "combo", "label": "Denomination", "prerequisiteTag": {"key": "religion", "valueNot": "none"}},
"denotation": {"key": "denotation", "type": "combo", "label": "Denotation"},
"departures_board": {"key": "departures_board", "type": "combo", "label": "Departures Board", "strings": {"options": {"yes": "Yes", "timetable": "Timetable", "realtime": "Realtime", "no": "None"}}},
"depth": {"key": "depth", "minValue": 0, "type": "number", "label": "Depth (Meters)"},
"descent": {"key": "descent", "minValue": 0, "type": "number", "label": "Total Descent", "terms": ["descent", "cumulative elevation"]},
"description": {"key": "description", "type": "textarea", "label": "Description", "universal": true, "terms": ["summary"]},
"design": {"key": "design", "type": "combo", "label": "Design"},
"destination_oneway": {"key": "destination", "type": "semiCombo", "label": "Destinations", "prerequisiteTag": {"key": "oneway", "value": "yes"}, "snake_case": false},
"destination_waterway": {"key": "destination", "type": "text", "label": "Destination"},
"destination": {"key": "destination", "type": "semiCombo", "label": "Destinations"},
"destination/ref_oneway": {"key": "destination:ref", "type": "semiCombo", "label": "Destination Road Numbers", "prerequisiteTag": {"key": "oneway", "value": "yes"}, "snake_case": false},
"destination/ref": {"key": "destination:ref", "type": "semiCombo", "label": "Destination Road Numbers", "snake_case": false},
"destination/symbol_oneway": {"key": "destination:symbol", "type": "semiCombo", "label": "Destination Symbols", "prerequisiteTag": {"key": "oneway", "value": "yes"}},
"destination/symbol": {"key": "destination:symbol", "type": "semiCombo", "label": "Destination Symbols"},
"devices": {"key": "devices", "type": "number", "minValue": 0, "label": "Devices", "placeholder": "1, 2, 3..."},
"diameter": {"key": "diameter", "type": "combo", "label": "Diameter", "snake_case": false, "placeholder": "5 mm, 10 cm, 15 in…"},
"diet_multi": {"key": "diet:", "type": "multiCombo", "label": "Diet Types", "terms": ["gluten free", "fruitarian", "halal", "kosher", "lactose free", "meat", "pescatarian", "raw", "vegan", "vegetarian"]},
"diplomatic": {"key": "diplomatic", "type": "combo", "label": "Type"},
"diplomatic/services": {"key": "diplomatic:services:", "type": "multiCombo", "label": "Services"},
"direction_clock": {"key": "direction", "type": "combo", "label": "Direction", "strings": {"options": {"clockwise": "Clockwise", "anticlockwise": "Counterclockwise"}}},
"direction_point": {"key": "direction", "type": "number", "label": "Direction (Degrees Clockwise)", "placeholder": "45, 90, 180, 270", "increment": 5, "geometry": ["point"]},
"direction_vertex_dual": {"key": "direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward"}}},
"direction_vertex": {"key": "direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}},
"direction": {"key": "direction", "type": "number", "label": "Direction (Degrees Clockwise)", "increment": 5, "placeholder": "45, 90, 180, 270"},
"dispensing": {"key": "dispensing", "type": "check", "label": "Dispenses Prescriptions", "default": "yes"},
"display": {"key": "display", "type": "combo", "label": "Display", "options": ["analog", "digital", "sundial", "unorthodox"]},
"distance": {"key": "distance", "type": "text", "label": "Distance", "terms": ["length", "mileage"]},
"disused/amenity": {"key": "disused:amenity", "type": "typeCombo", "label": "Type"},
"disused/railway": {"key": "disused:railway", "type": "typeCombo", "label": "Type"},
"disused/shop": {"key": "disused:shop", "type": "typeCombo", "label": "Type"},
"dock": {"key": "dock", "type": "combo", "label": "Type"},
"dog": {"key": "dog", "type": "combo", "label": "Dogs", "strings": {"options": {"yes": "Allowed", "leashed": "Leashed Only", "no": "Not Allowed"}}, "terms": ["animals", "pets"]},
"door_type": {"key": "door", "type": "typeCombo", "label": "Type"},
"door": {"key": "door", "type": "combo", "label": "Door"},
"drink_multi": {"key": "drink:", "type": "multiCombo", "label": "Drinks"},
"drinking_water": {"key": "drinking_water", "type": "check", "label": "Drinkable", "terms": ["drinkworthy", "potable"]},
"drive_through": {"key": "drive_through", "type": "check", "label": "Drive-Through"},
"duration": {"key": "duration", "type": "text", "label": "Duration", "placeholder": "00:00"},
"ele_node": {"key": "ele", "type": "number", "icon": "elevation", "label": "Elevation", "universal": true, "geometry": ["point", "vertex"], "terms": ["altitude", "height"]},
"ele": {"key": "ele", "type": "number", "icon": "elevation", "label": "Elevation", "geometry": ["line", "area", "relation"], "terms": ["altitude", "height"]},
"electrified": {"key": "electrified", "type": "combo", "label": "Electrification", "placeholder": "Contact Line, Electrified Rail...", "strings": {"options": {"contact_line": "Contact Line", "rail": "Electrified Rail", "yes": "Yes (unspecified)", "no": "No"}}, "terms": ["contact line", "powered", "third rail"]},
"email": {"key": "email", "type": "email", "placeholder": "example@example.com", "label": "Email"},
"embankment": {"key": "embankment", "type": "typeCombo", "label": "Type", "usage": "group", "placeholder": "Default"},
"embassy": {"key": "embassy", "type": "combo", "label": "Type"},
"emergency_combo": {"key": "emergency", "type": "combo", "label": "Type"},
"emergency_ward_entrance": {"key": "emergency_ward_entrance", "type": "combo", "label": "Type"},
"emergency": {"key": "emergency", "type": "check", "label": "Emergency"},
"enforcement": {"key": "enforcement", "type": "combo", "label": "Type"},
"entrance": {"key": "entrance", "type": "typeCombo", "label": "Type"},
"except": {"key": "except", "type": "combo", "label": "Exceptions"},
"expected_rcn_route_relations": {"key": "expected_rcn_route_relations", "type": "number", "label": "Adjacent Cycling Nodes"},
"expected_rwn_route_relations": {"key": "expected_rwn_route_relations", "type": "number", "label": "Adjacent Walking Nodes"},
"faces": {"key": "faces", "type": "number", "minValue": 0, "label": "Faces"},
"fax": {"key": "fax", "type": "tel", "label": "Fax", "placeholder": "+31 42 123 4567"},
"fee": {"key": "fee", "type": "check", "label": "Fee"},
"fence_type": {"key": "fence_type", "type": "combo", "label": "Type"},
"fire_hydrant/diameter": {"key": "fire_hydrant:diameter", "type": "combo", "label": "Diameter (mm, in, or letters)", "snake_case": false},
"fire_hydrant/pressure": {"key": "fire_hydrant:pressure", "type": "combo", "label": "Pressure (bar)", "snake_case": false},
"fire_hydrant/type": {"key": "fire_hydrant:type", "type": "combo", "label": "Shape", "strings": {"options": {"pillar": "Pillar/Aboveground", "underground": "Underground", "wall": "Wall", "pipe": "Capped Pipe"}}},
"fireplace": {"key": "fireplace", "type": "check", "label": "Fireplace"},
"fishing": {"key": "fishing", "type": "combo", "label": "Fishing"},
"fitness_station": {"key": "fitness_station", "type": "typeCombo", "label": "Equipment Type"},
"fixme": {"key": "fixme", "type": "textarea", "label": "Fix Me", "universal": true, "terms": ["help request"]},
"flag/type": {"key": "flag:type", "type": "combo", "label": "Flag Type"},
"floating": {"key": "floating", "type": "check", "label": "Floating"},
"flood_prone": {"key": "flood_prone", "type": "check", "label": "Flood Prone"},
"ford": {"key": "ford", "type": "typeCombo", "label": "Type", "usage": "group", "placeholder": "Default"},
"fountain": {"key": "fountain", "type": "combo", "label": "Type"},
"frequency_electrified": {"key": "frequency", "type": "combo", "label": "Operating Frequency", "prerequisiteTag": {"key": "electrified", "valueNot": "no"}},
"frequency": {"key": "frequency", "type": "combo", "label": "Operating Frequency"},
"from": {"key": "from", "type": "text", "label": "From"},
"fuel_multi": {"key": "fuel:", "type": "multiCombo", "label": "Fuel Types"},
"fuel": {"key": "fuel", "type": "combo", "label": "Fuel"},
"gambling": {"key": "gambling", "type": "semiCombo", "label": "Games"},
"garden/type": {"key": "garden:type", "type": "combo", "label": "Garden Type"},
"gauge": {"key": "gauge", "type": "combo", "label": "Gauge"},
"gender": {"type": "radio", "keys": ["male", "female", "unisex"], "label": "Gender", "placeholder": "Unknown", "strings": {"options": {"male": "Male", "female": "Female", "unisex": "Unisex"}}, "terms": ["access", "female", "male", "unisex"]},
"generator/method": {"key": "generator:method", "type": "combo", "label": "Method"},
"generator/output/electricity": {"key": "generator:output:electricity", "type": "typeCombo", "label": "Power Output", "placeholder": "50 MW, 100 MW, 200 MW...", "snake_case": false},
"generator/source": {"key": "generator:source", "type": "combo", "label": "Source"},
"generator/type": {"key": "generator:type", "type": "combo", "label": "Type"},
"geyser/height": {"key": "geyser:height", "type": "text", "label": "Eruption Height"},
"gnis/feature_id": {"key": "gnis:feature_id", "type": "identifier", "label": "GNIS Feature ID", "urlFormat": "https://geonames.usgs.gov/apex/f?p=gnispq:3:::NO::P3_FID:{value}", "pattern": "^[0-9]{1,}$", "countryCodes": ["us"], "terms": ["Federal Geographic Names Information Service", "United States Board on Geographic Names", "USA"]},
"government": {"key": "government", "type": "typeCombo", "label": "Type"},
"grades": {"key": "grades", "type": "combo", "label": "Grade Levels", "snake_case": false},
"grape_variety": {"key": "grape_variety", "type": "semiCombo", "label": "Grape Varieties"},
"group_only": {"key": "group_only", "type": "check", "label": "Groups Only"},
"guest_house": {"key": "guest_house", "type": "combo", "label": "Type"},
"handicap": {"key": "handicap", "type": "number", "label": "Handicap", "placeholder": "1-18"},
"handrail": {"key": "handrail", "type": "check", "label": "Handrail"},
"hashtags": {"key": "hashtags", "type": "semiCombo", "label": "Hashtags", "usage": "changeset", "placeholder": "#example"},
"healthcare": {"key": "healthcare", "type": "typeCombo", "label": "Type"},
"healthcare/speciality": {"key": "healthcare:speciality", "type": "semiCombo", "reference": {"key": "healthcare"}, "label": "Specialties"},
"heating": {"key": "heating", "type": "check", "label": "Heating"},
"height_building": {"key": "height", "minValue": 0, "type": "number", "label": "Building Height (Meters)", "prerequisiteTag": {"key": "building", "valueNot": "no"}},
"height": {"key": "height", "minValue": 0, "type": "number", "label": "Height (Meters)"},
"highspeed": {"key": "highspeed", "type": "check", "label": "High-Speed"},
"highway": {"key": "highway", "type": "typeCombo", "label": "Type"},
"historic": {"key": "historic", "type": "typeCombo", "label": "Type"},
"historic/civilization": {"key": "historic:civilization", "type": "combo", "label": "Historic Civilization"},
"historic/wreck/date_sunk": {"key": "wreck:date_sunk", "type": "text", "label": "Date Sunk"},
"historic/wreck/visible_at_high_tide": {"key": "wreck:visible_at_high_tide", "type": "check", "label": "Visible At High Tide"},
"historic/wreck/visible_at_low_tide": {"key": "wreck:visible_at_low_tide", "type": "check", "label": "Visible At Low Tide"},
"hoops": {"key": "hoops", "type": "number", "minValue": 0, "label": "Hoops", "placeholder": "1, 2, 4..."},
"horse_dressage": {"key": "sport", "type": "check", "label": "Dressage Riding", "strings": {"options": {"undefined": "No", "equestrian": "Yes"}}, "reference": {"key": "sport", "value": "equestrian"}},
"horse_riding": {"key": "leisure", "type": "check", "label": "Horseback Riding", "strings": {"options": {"undefined": "No", "horse_riding": "Yes"}}, "reference": {"key": "leisure", "value": "horse_riding"}},
"horse_scale": {"key": "horse_scale", "type": "combo", "label": "Horseback Riding Difficulty", "placeholder": "Difficult, Dangerous...", "strings": {"options": {"common": "Easy: No problems or difficulties. (default)", "demanding": "Use with caution: Uneven way, occasional difficult passages.", "difficult": "Difficult: Way narrow and exposed. May contain obstacles to step over and narrow passages.", "critical": "Borderline: Passable only for experienced riders and horses. Major obstacles. Bridges should be examined carefully.", "dangerous": "Dangerous: Passable only for very experienced riders and horses and only in good weather. Dismount.", "impossible": "Impassable: Way or bridge not passable for horses. Too narrow, insuffient support, obstacles like ladders. Danger of life."}}},
"horse_stables": {"key": "amenity", "type": "check", "label": "Riding Stable", "strings": {"options": {"undefined": "No", "stables": "Yes"}}, "reference": {"key": "amenity", "value": "stables"}},
"hot_water": {"key": "hot_water", "type": "check", "label": "Hot Water"},
"iata": {"key": "iata", "type": "text", "label": "IATA Airport Code"},
"icao": {"key": "icao", "type": "text", "label": "ICAO Airport Code"},
"image": {"key": "image", "type": "url", "label": "Image", "placeholder": "https://example.com/photo.jpg", "universal": true, "terms": ["icon", "image uri", "photo", "picture"]},
"incline_steps": {"key": "incline", "type": "combo", "label": "Incline", "strings": {"options": {"up": "Up", "down": "Down"}}},
"incline": {"key": "incline", "type": "combo", "label": "Incline"},
"indoor_type": {"key": "indoor", "type": "typeCombo", "label": "Type"},
"indoor": {"key": "indoor", "type": "check", "label": "Indoor"},
"industrial": {"key": "industrial", "type": "combo", "label": "Type"},
"informal": {"key": "informal", "type": "check", "label": "Informal"},
"information": {"key": "information", "type": "typeCombo", "label": "Type"},
"inscription": {"key": "inscription", "type": "textarea", "label": "Inscription"},
"intermittent_yes": {"key": "intermittent", "type": "check", "label": "Intermittent", "default": "yes"},
"intermittent": {"key": "intermittent", "type": "check", "label": "Intermittent"},
"internet_access": {"key": "internet_access", "type": "combo", "label": "Internet Connection", "strings": {"options": {"yes": "Yes", "no": "No", "wlan": "Wifi", "wired": "Wired", "terminal": "Terminal"}}, "terms": ["wifi", "wlan"]},
"internet_access/fee": {"key": "internet_access:fee", "type": "combo", "label": "Internet Access", "strings": {"options": {"no": "Free", "yes": "Paid", "customers": "Customers Only"}}, "prerequisiteTag": {"key": "internet_access", "valueNot": "no"}, "terms": ["wifi fee"]},
"internet_access/ssid": {"key": "internet_access:ssid", "type": "text", "label": "Wifi Network Name", "prerequisiteTag": {"key": "internet_access", "valueNot": "no"}, "terms": ["ssid"]},
"interval": {"key": "interval", "type": "text", "label": "Interval"},
"junction_line": {"key": "junction", "type": "combo", "label": "Junction", "strings": {"options": {"roundabout": "Roundabout", "circular": "Traffic Circle", "jughandle": "Jughandle"}}},
"junction/ref_oneway": {"key": "junction:ref", "type": "text", "label": "Junction Number", "prerequisiteTag": {"key": "oneway", "value": "yes"}},
"kerb": {"key": "kerb", "type": "combo", "label": "Curb"},
"kerb/height": {"key": "kerb:height", "type": "combo", "snake_case": false, "label": "Height"},
"kneipp_water_cure_multi": {"key": "kneipp_water_cure:", "type": "multiCombo", "label": "Basin Types"},
"label": {"key": "label", "type": "textarea", "label": "Label"},
"lamp_mount": {"key": "lamp_mount", "type": "combo", "label": "Mount"},
"lamp_type": {"key": "lamp_type", "type": "combo", "label": "Type"},
"landuse": {"key": "landuse", "type": "typeCombo", "label": "Type"},
"lanes": {"key": "lanes", "type": "number", "minValue": 0, "label": "Lanes", "placeholder": "1, 2, 3..."},
"language_multi": {"key": "language:", "type": "multiCombo", "label": "Languages"},
"layer": {"key": "layer", "type": "number", "label": "Layer", "placeholder": "0"},
"leaf_cycle_singular": {"key": "leaf_cycle", "type": "combo", "label": "Leaf Cycle", "strings": {"options": {"evergreen": "Evergreen", "deciduous": "Deciduous", "semi_evergreen": "Semi-Evergreen", "semi_deciduous": "Semi-Deciduous"}}},
"leaf_cycle": {"key": "leaf_cycle", "type": "combo", "label": "Leaf Cycle", "strings": {"options": {"evergreen": "Evergreen", "deciduous": "Deciduous", "semi_evergreen": "Semi-Evergreen", "semi_deciduous": "Semi-Deciduous", "mixed": "Mixed"}}},
"leaf_type_singular": {"key": "leaf_type", "type": "combo", "label": "Leaf Type", "strings": {"options": {"broadleaved": "Broadleaved", "needleleaved": "Needleleaved", "leafless": "Leafless"}}},
"leaf_type": {"key": "leaf_type", "type": "combo", "label": "Leaf Type", "strings": {"options": {"broadleaved": "Broadleaved", "needleleaved": "Needleleaved", "mixed": "Mixed", "leafless": "Leafless"}}},
"leisure": {"key": "leisure", "type": "typeCombo", "label": "Type"},
"length": {"key": "length", "type": "number", "minValue": 0, "label": "Length (Meters)"},
"level_semi": {"key": "level", "type": "semiCombo", "label": "Levels", "terms": ["building floors", "decks", "stories", "storeys", "storys"]},
"level": {"key": "level", "type": "combo", "label": "Level", "terms": ["building floor", "deck", "storey", "story"], "prerequisiteTag": {"keyNot": "building"}},
"liaison": {"key": "liaison", "type": "combo", "label": "Type"},
"line_attachment": {"key": "line_attachment", "type": "combo", "label": "Line Attachment"},
"line_management": {"key": "line_management", "type": "combo", "label": "Line Management", "terms": ["branching", "line topology", "termination"]},
"lit": {"key": "lit", "type": "check", "label": "Lit", "terms": ["lamp", "lighting"]},
"location_pool": {"key": "location", "type": "typeCombo", "label": "Location", "strings": {"options": {"outdoor": "Outdoor", "indoor": "Indoor", "roof": "Rooftop"}}},
"location": {"key": "location", "type": "combo", "label": "Location"},
"lock": {"key": "lock", "type": "check", "label": "Lock"},
"lockable": {"key": "lockable", "type": "check", "label": "Lockable"},
"man_made": {"key": "man_made", "type": "typeCombo", "label": "Type"},
"manhole": {"key": "manhole", "type": "typeCombo", "label": "Type"},
"manufacturer": {"key": "manufacturer", "type": "combo", "snake_case": false, "caseSensitive": true, "label": "Manufacturer"},
"map_size": {"key": "map_size", "type": "typeCombo", "label": "Coverage"},
"map_type": {"key": "map_type", "type": "typeCombo", "label": "Type"},
"mapillary": {"key": "mapillary", "type": "identifier", "label": "Mapillary Image ID", "urlFormat": "https://mapillary.com/app/?focus=photo&pKey={value}", "pattern": "^[a-zA-Z0-9-_]{1,}$", "universal": true},
"marker": {"key": "marker", "type": "typeCombo", "label": "Type"},
"material": {"key": "material", "type": "combo", "label": "Material"},
"max_age": {"key": "max_age", "type": "number", "minValue": 0, "label": "Maximum Age", "terms": ["upper age limit"]},
"maxheight": {"key": "maxheight", "type": "combo", "label": "Max Height", "placeholder": "4, 4.5, 5, 14'0\", 14'6\", 15'0\"", "snake_case": false},
"maxspeed": {"key": "maxspeed", "type": "maxspeed", "label": "Speed Limit", "placeholder": "40, 50, 60..."},
"maxspeed/advisory": {"key": "maxspeed:advisory", "type": "maxspeed", "label": "Advisory Speed Limit", "placeholder": "40, 50, 60..."},
"maxstay": {"key": "maxstay", "type": "combo", "label": "Max Stay", "options": ["15 min", "30 min", "45 min", "1 hr", "1.5 hr", "2 hr", "2.5 hr", "3 hr", "4 hr", "1 day", "2 day"], "snake_case": false},
"maxweight_bridge": {"key": "maxweight", "type": "combo", "label": "Max Weight", "snake_case": false, "prerequisiteTag": {"key": "bridge", "valueNot": "no"}},
"maxweight": {"key": "maxweight", "type": "combo", "label": "Max Weight", "snake_case": false},
"memorial": {"key": "memorial", "type": "combo", "label": "Type"},
"microbrewery": {"key": "microbrewery", "type": "check", "label": "Microbrewery", "terms": ["brewpub", "craft beer"]},
"mimics": {"key": "mimics", "type": "combo", "label": "Mimics", "terms": ["camoflauged", "disguised", "looks like", "tree"]},
"min_age": {"key": "min_age", "type": "number", "minValue": 0, "label": "Minimum Age", "terms": ["lower age limit"]},
"minspeed": {"key": "minspeed", "type": "maxspeed", "label": "Minimum Speed Limit", "placeholder": "20, 30, 40..."},
"monitoring_multi": {"key": "monitoring:", "type": "multiCombo", "label": "Monitoring"},
"mtb/scale": {"key": "mtb:scale", "type": "combo", "label": "Mountain Biking Difficulty", "placeholder": "0, 1, 2, 3...", "strings": {"options": {"0": "0: Solid gravel/packed earth, no obstacles, wide curves", "1": "1: Some loose surface, small obstacles, wide curves", "2": "2: Much loose surface, large obstacles, easy hairpins", "3": "3: Slippery surface, large obstacles, tight hairpins", "4": "4: Loose surface or boulders, dangerous hairpins", "5": "5: Maximum difficulty, boulder fields, landslides", "6": "6: Not rideable except by the very best mountain bikers"}}},
"mtb/scale/imba": {"key": "mtb:scale:imba", "type": "combo", "label": "IMBA Trail Difficulty", "placeholder": "Easy, Medium, Difficult...", "strings": {"options": {"0": "Easiest (white circle)", "1": "Easy (green circle)", "2": "Medium (blue square)", "3": "Difficult (black diamond)", "4": "Extremely Difficult (double black diamond)"}}},
"mtb/scale/uphill": {"key": "mtb:scale:uphill", "type": "combo", "label": "Mountain Biking Uphill Difficulty", "placeholder": "0, 1, 2, 3...", "strings": {"options": {"0": "0: Avg. incline <10%, gravel/packed earth, no obstacles", "1": "1: Avg. incline <15%, gravel/packed earth, few small objects", "2": "2: Avg. incline <20%, stable surface, fistsize rocks/roots", "3": "3: Avg. incline <25%, variable surface, fistsize rocks/branches", "4": "4: Avg. incline <30%, poor condition, big rocks/branches", "5": "5: Very steep, bike generally needs to be pushed or carried"}}},
"museum": {"key": "museum", "type": "combo", "label": "Type"},
"name": {"key": "name", "type": "localized", "label": "Name", "universal": true, "placeholder": "Common name (if any)", "terms": ["label", "title"]},
"natural": {"key": "natural", "type": "typeCombo", "label": "Natural"},
"network_bicycle": {"key": "network", "type": "combo", "label": "Network Class", "placeholder": "Local, Regional, National, International", "strings": {"options": {"lcn": "Local", "rcn": "Regional", "ncn": "National", "icn": "International"}}},
"network_foot": {"key": "network", "type": "combo", "label": "Network Class", "placeholder": "Local, Regional, National, International", "strings": {"options": {"lwn": "Local", "rwn": "Regional", "nwn": "National", "iwn": "International"}}},
"network_horse": {"key": "network", "type": "combo", "label": "Network Class", "placeholder": "Local, Regional, National, International", "strings": {"options": {"lhn": "Local", "rhn": "Regional", "nhn": "National", "ihn": "International"}}},
"network_road": {"key": "network", "type": "networkCombo", "label": "Network"},
"network": {"key": "network", "type": "text", "label": "Network"},
"network/type": {"key": "network:type", "type": "combo", "label": "Network Type", "prerequisiteTag": {"key": "network"}},
"not/name": {"key": "not:name", "type": "semiCombo", "label": "Incorrect Names", "terms": ["common mistake names", "wrong names"]},
"note": {"key": "note", "type": "textarea", "universal": true, "icon": "note", "label": "Note", "terms": ["comment"]},
"office": {"key": "office", "type": "typeCombo", "label": "Type"},
"oneway_yes": {"key": "oneway", "type": "onewayCheck", "label": "One Way", "strings": {"options": {"undefined": "Assumed to be Yes", "yes": "Yes", "no": "No", "reversible": "Reversible", "alternating": "Alternating"}}},
"oneway": {"key": "oneway", "type": "onewayCheck", "label": "One Way", "strings": {"options": {"undefined": "Assumed to be No", "yes": "Yes", "no": "No", "reversible": "Reversible", "alternating": "Alternating"}}, "terms": ["bidirectional", "oneway", "unidirectional"]},
"oneway/bicycle": {"key": "oneway:bicycle", "type": "check", "label": "One Way (Bicycles)", "prerequisiteTag": {"key": "oneway"}},
"openfire": {"key": "openfire", "type": "check", "label": "Open Fires Allowed"},
"opening_date": {"key": "opening_date", "type": "text", "label": "Expected Opening Date", "placeholder": "YYYY-MM-DD"},
"opening_hours": {"key": "opening_hours", "type": "combo", "label": "Hours", "placeholder": "Unknown", "snake_case": false},
"opening_hours/covid19": {"key": "opening_hours:covid19", "type": "combo", "label": "COVID-19 Pandemic Hours", "terms": ["coronavirus", "lockdown", "opening hours", "SARSCoV2"], "snake_case": false},
"operator": {"key": "operator", "type": "text", "label": "Operator"},
"operator/type": {"key": "operator:type", "type": "combo", "label": "Operator Type", "prerequisiteTag": {"key": "operator"}},
"organic": {"key": "organic", "type": "combo", "label": "Organic Products", "strings": {"options": {"no": "None", "yes": "Some", "only": "Only"}}, "terms": ["natural", "non-gmo"]},
"outdoor_seating": {"key": "outdoor_seating", "type": "check", "label": "Outdoor Seating"},
"par": {"key": "par", "type": "number", "minValue": 1, "label": "Par", "placeholder": "3, 4, 5..."},
"park_ride": {"key": "park_ride", "type": "check", "label": "Park and Ride"},
"parking_entrance": {"key": "parking", "type": "combo", "label": "Type", "strings": {"options": {"underground": "Underground", "multi-storey": "Multilevel"}}},
"parking_space": {"key": "parking_space", "type": "combo", "label": "Type"},
"parking": {"key": "parking", "type": "combo", "label": "Type", "strings": {"options": {"surface": "Surface", "underground": "Underground", "multi-storey": "Multilevel", "lane": "Roadside Lane", "carports": "Carports", "garage_boxes": "Garage Boxes", "rooftop": "Rooftop", "sheds": "Sheds"}}},
"payment_multi_fee": {"key": "payment:", "type": "multiCombo", "label": "Payment Types", "prerequisiteTag": {"key": "fee", "valueNot": "no"}},
"payment_multi": {"key": "payment:", "type": "multiCombo", "label": "Payment Types"},
"phases": {"key": "phases", "type": "number", "minValue": 1, "label": "Phases", "placeholder": "1, 2, 3..."},
"phone": {"key": "phone", "type": "tel", "icon": "maki-telephone", "label": "Telephone", "placeholder": "+31 42 123 4567", "terms": ["phone number"]},
"piste/difficulty_downhill": {"key": "piste:difficulty", "type": "combo", "label": "Difficulty", "placeholder": "Easy, Intermediate, Advanced...", "strings": {"options": {"novice": "Novice (instructional)", "easy": "Easy (green circle)", "intermediate": "Intermediate (blue square)", "advanced": "Advanced (black diamond)", "expert": "Expert (double black diamond)", "freeride": "Freeride (off-piste)", "extreme": "Extreme (climbing equipment required)"}}},
"piste/difficulty_nordic": {"key": "piste:difficulty", "type": "combo", "label": "Difficulty", "placeholder": "Easy, Intermediate, Advanced...", "strings": {"options": {"novice": "Novice - Flat, no effort needed", "easy": "Easy - Soft hills, short steep section", "intermediate": "Intermediate - Steep section", "advanced": "Advanced - Narrow, steep or icy section, sharp turn", "expert": "Expert - Dangerous terrain around"}}},
"piste/difficulty_skitour": {"key": "piste:difficulty", "type": "combo", "label": "Difficulty", "placeholder": "Easy, Intermediate, Advanced...", "strings": {"options": {"novice": "Novice - L: <30° incline", "easy": "Easy - WS: 30-35° incline", "intermediate": "Intermediate - ZS: 35-40° incline", "advanced": "Advanced - S: 40-45° incline", "expert": "Expert - SS: 4550° incline", "freeride": "Freeride - AS: 5055° incline", "extreme": "Extreme - EX: >55° incline"}}},
"piste/difficulty": {"key": "piste:difficulty", "type": "combo", "label": "Difficulty", "placeholder": "Easy, Intermediate, Advanced...", "strings": {"options": {"novice": "Novice", "easy": "Easy", "intermediate": "Intermediate", "advanced": "Advanced", "expert": "Expert", "freeride": "Freeride", "extreme": "Extreme"}}},
"piste/grooming_downhill": {"key": "piste:grooming", "type": "combo", "label": "Grooming", "strings": {"options": {"classic": "Classic", "mogul": "Mogul", "backcountry": "Backcountry - no grooming"}}},
"piste/grooming_hike": {"key": "piste:grooming", "type": "combo", "label": "Grooming", "strings": {"options": {"classic": "Classic - Winter Hiking", "backcountry": "Backcountry - Snowshoeing"}}},
"piste/grooming_nordic": {"key": "piste:grooming", "type": "combo", "label": "Grooming", "strings": {"options": {"classic": "Classic", "backcountry": "Backcountry, no grooming", "classic+skating": "Classic and Skating", "scooter": "Scooter/Snowmobile", "skating": "Skating"}}},
"piste/grooming": {"key": "piste:grooming", "type": "combo", "label": "Grooming", "strings": {"options": {"classic": "Classic", "mogul": "Mogul", "backcountry": "Backcountry", "classic+skating": "Classic and Skating", "scooter": "Scooter/Snowmobile", "skating": "Skating"}}},
"piste/type": {"key": "piste:type", "type": "typeCombo", "label": "Type", "strings": {"options": {"downhill": "Downhill", "nordic": "Nordic", "skitour": "Skitour", "sled": "Sled", "hike": "Hike", "sleigh": "Sleigh", "ice_skate": "Ice Skate", "snow_park": "Snow Park", "playground": "Playground", "connection": "Connection"}}},
"place": {"key": "place", "type": "typeCombo", "label": "Type"},
"plant": {"key": "plant", "type": "combo", "label": "Plant"},
"plant/method": {"key": "plant:method", "type": "combo", "label": "Generation Method"},
"plant/output/electricity": {"key": "plant:output:electricity", "type": "typeCombo", "label": "Power Output", "placeholder": "500 MW, 1000 MW, 2000 MW...", "snake_case": false},
"plant/source": {"key": "plant:source", "type": "combo", "label": "Energy Source"},
"playground": {"key": "playground", "type": "combo", "label": "Type"},
"playground/theme": {"key": "playground:theme", "type": "combo", "label": "Theme"},
"plots": {"key": "plots", "type": "number", "minValue": 0, "label": "Plots", "placeholder": "10, 20, 30..."},
"polling_station": {"key": "polling_station", "type": "check", "label": "Polling Place", "terms": ["voting place"]},
"population": {"key": "population", "type": "text", "label": "Population"},
"portable": {"key": "portable", "type": "check", "label": "Portable", "terms": ["detached", "mobile", "moveable"]},
"post": {"type": "address", "key": "post", "keys": ["post:block_number", "post:city", "post:block_number", "post:conscriptionnumber", "post:county", "post:country", "post:county", "post:district", "post:floor", "post:hamlet", "post:housename", "post:housenumber", "post:neighbourhood", "post:place", "post:postcode", "post:province", "post:quarter", "post:state", "post:street", "post:subdistrict", "post:suburb", "post:unit"], "label": "Delivery Address"},
"power_supply": {"key": "power_supply", "type": "check", "label": "Power Supply"},
"power": {"key": "power", "type": "typeCombo", "label": "Type"},
"preschool": {"key": "preschool", "type": "check", "label": "Preschool"},
"produce": {"key": "produce", "type": "semiCombo", "label": "Produce"},
"product": {"key": "product", "type": "semiCombo", "label": "Products"},
"public_bookcase/type": {"key": "public_bookcase:type", "type": "combo", "label": "Type"},
"pump": {"key": "pump", "type": "combo", "label": "Pump", "strings": {"options": {"yes": "Yes", "manual": "Manual Hand Pump", "powered": "Machine-Powered Pump", "no": "None"}}},
"railway": {"key": "railway", "type": "typeCombo", "label": "Type"},
"railway/position": {"key": "railway:position", "type": "text", "placeholder": "Distance to one decimal (123.4)", "label": "Milestone Position"},
"railway/signal/direction": {"key": "railway:signal:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}},
"ramp": {"key": "ramp", "type": "check", "label": "Embedded Ramp"},
"rating": {"key": "rating", "type": "combo", "label": "Power Rating", "snake_case": false},
"rcn_ref": {"key": "rcn_ref", "type": "text", "label": "Cycling Code"},
"real_fire": {"countryCodes": ["gb", "ie"], "key": "real_fire", "type": "check", "label": "Real Fire", "terms": ["fire place", "fire"]},
"recycling_accepts": {"key": "recycling:", "type": "multiCombo", "label": "Accepts"},
"recycling_type": {"key": "recycling_type", "type": "combo", "label": "Type", "placeholder": "Container, Center", "strings": {"options": {"container": "Container", "centre": "Center"}}},
"ref_aeroway_gate": {"key": "ref", "type": "text", "label": "Gate Number"},
"ref_golf_hole": {"key": "ref", "type": "text", "label": "Hole Number", "placeholder": "1-18"},
"ref_highway_junction": {"key": "ref", "type": "text", "label": "Junction Number"},
"ref_platform": {"key": "ref", "type": "text", "label": "Platform Number"},
"ref_road_number": {"key": "ref", "type": "text", "label": "Road Number"},
"ref_room_number": {"key": "ref", "type": "text", "label": "Room Number"},
"ref_route": {"key": "ref", "type": "text", "label": "Route Number"},
"ref_runway": {"key": "ref", "type": "text", "label": "Runway Number", "placeholder": "e.g. 01L/19R"},
"ref_stop_position": {"key": "ref", "type": "text", "label": "Stop Number"},
"ref_taxiway": {"key": "ref", "type": "text", "label": "Taxiway Name", "placeholder": "e.g. A5"},
"ref": {"key": "ref", "type": "text", "label": "Reference Code"},
"ref/isil": {"key": "ref:isil", "type": "text", "label": "ISIL Code"},
"ref/vatin": {"key": "ref:vatin", "type": "identifier", "label": "VAT ID Number", "notCountryCodes": ["ao", "ai", "bm", "bt", "io", "vg", "bn", "ky", "km", "cu", "dj", "er", "fk", "gi", "gg", "hk", "iq", "ki", "xk", "kw", "lr", "ly", "mo", "mv", "mh", "fm", "ms", "mm", "nr", "kp", "om", "pw", "pn", "qa", "sh", "sm", "st", "sb", "so", "gs", "ss", "sr", "sz", "sy", "tl", "tc", "tv", "us", "va", "ye"], "terms": ["value added tax identification number", "vatin"]},
"relation": {"key": "type", "type": "combo", "label": "Type"},
"religion": {"key": "religion", "type": "combo", "label": "Religion"},
"reservation": {"key": "reservation", "type": "combo", "label": "Reservations", "strings": {"options": {"yes": "Accepted", "no": "Not Accepted", "required": "Required", "recommended": "Recommended"}}},
"residential": {"key": "residential", "type": "combo", "label": "Type"},
"resort": {"key": "resort", "type": "combo", "label": "Type"},
"resource": {"key": "resource", "type": "semiCombo", "label": "Resources"},
"restriction": {"key": "restriction", "type": "combo", "label": "Type"},
"restrictions": {"type": "restrictions", "geometry": ["vertex"], "icon": "iD-restrictions", "usage": "manual", "reference": {"rtype": "restriction"}, "label": "Turn Restrictions"},
"roof/colour": {"key": "roof:colour", "type": "combo", "label": "Roof Color"},
"room": {"key": "room", "type": "combo", "label": "Type"},
"rooms": {"key": "rooms", "type": "number", "minValue": 0, "label": "Rooms"},
"roundtrip": {"key": "roundtrip", "type": "check", "label": "Forms Loop", "terms": ["circular", "closed", "looping", "roundtrip"]},
"route_master": {"key": "route_master", "type": "combo", "label": "Type"},
"route": {"key": "route", "type": "combo", "label": "Type"},
"ruins": {"key": "ruins", "type": "combo", "label": "Type"},
"rwn_ref": {"key": "rwn_ref", "type": "text", "label": "Walking Code"},
"sac_scale": {"key": "sac_scale", "type": "combo", "label": "Hiking Difficulty", "placeholder": "Mountain Hiking, Alpine Hiking...", "strings": {"options": {"hiking": "T1: Hiking", "mountain_hiking": "T2: Mountain Hiking", "demanding_mountain_hiking": "T3: Demanding Mountain Hiking", "alpine_hiking": "T4: Alpine Hiking", "demanding_alpine_hiking": "T5: Demanding Alpine Hiking", "difficult_alpine_hiking": "T6: Difficult Alpine Hiking"}}},
"salt": {"key": "salt", "type": "check", "label": "Salt", "terms": ["saline", "salinated"]},
"sanitary_dump_station": {"key": "sanitary_dump_station", "type": "check", "label": "Toilet Disposal"},
"screen": {"key": "screen", "type": "number", "label": "Screens", "placeholder": "1, 4, 8…", "minValue": 0},
"scuba_diving": {"key": "scuba_diving:", "type": "multiCombo", "label": "Services", "options": ["repair", "courses", "rental", "filling", "air_filling", "nitrox_filling", "trimix_filling", "oxygen_filling"]},
"seamark/beacon_isolated_danger/shape": {"key": "seamark:beacon_isolated_danger:shape", "type": "combo", "label": "Shape"},
"seamark/beacon_lateral/category": {"key": "seamark:beacon_lateral:category", "type": "combo", "label": "Category", "strings": {"options": {"port": "Port", "starboard": "Starboard", "waterway_left": "Waterway Left", "waterway_right": "Waterway Right", "danger_left": "Danger Left", "danger_right": "Danger Right"}}},
"seamark/beacon_lateral/colour": {"key": "seamark:beacon_lateral:colour", "type": "combo", "label": "Color", "strings": {"options": {"red": "Red", "green": "Green", "grey": "Grey"}}},
"seamark/beacon_lateral/shape": {"key": "seamark:beacon_lateral:shape", "type": "combo", "label": "Shape"},
"seamark/beacon_lateral/system": {"key": "seamark:beacon_lateral:system", "type": "combo", "label": "System", "strings": {"options": {"iala-a": "IALA A", "iala-b": "IALA B", "cevni": "CEVNI", "other": "Other"}}},
"seamark/buoy_lateral/category": {"key": "seamark:buoy_lateral:category", "type": "combo", "label": "Category", "strings": {"options": {"port": "Port", "starboard": "Starboard", "channel_left": "Channel Left", "channel_right": "Channel Right", "waterway_left": "Waterway Left", "waterway_right": "Waterway Right", "danger_left": "Danger Left", "danger_right": "Danger Right", "preferred_channel_port": "Preferred Channel Port", "preferred_channel_starboard": "Preferred Channel Starboard"}}},
"seamark/buoy_lateral/colour": {"key": "seamark:buoy_lateral:colour", "type": "combo", "label": "Color", "strings": {"options": {"red": "Red", "green": "Green", "red;white;red;white": "Red-White-Red-White", "green;white;green;white": "Green-White-Green-White", "red;green;red": "Red-Green-Red", "green;red;green": "Green-Red-Green", "white": "White", "yellow": "Yellow"}}},
"seamark/buoy_lateral/shape": {"key": "seamark:buoy_lateral:shape", "type": "combo", "label": "Shape"},
"seamark/buoy_lateral/system": {"key": "seamark:buoy_lateral:system", "type": "combo", "label": "System", "strings": {"options": {"iala-a": "IALA A", "iala-b": "IALA B", "cevni": "CEVNI", "other": "Other"}}},
"seamark/mooring/category": {"key": "seamark:mooring:category", "type": "combo", "label": "Category"},
"seamark/type": {"key": "seamark:type", "type": "combo", "label": "Seamark", "terms": ["marine"]},
"seamark/wreck/category": {"key": "seamark:wreck:category", "type": "combo", "label": "Category"},
"seasonal": {"key": "seasonal", "type": "check", "label": "Seasonal"},
"seats": {"key": "seats", "type": "number", "minValue": 0, "label": "Seats", "placeholder": "2, 4, 6..."},
"second_hand": {"key": "second_hand", "type": "combo", "label": "Sells Used", "placeholder": "Yes, No, Only", "strings": {"options": {"yes": "Yes", "no": "No", "only": "Only"}}},
"segregated": {"key": "segregated", "type": "check", "label": "Bicycle-Pedestrian Separation"},
"self_service": {"key": "self_service", "type": "check", "label": "Self-Service"},
"service_rail": {"key": "service", "type": "combo", "label": "Service Type", "strings": {"options": {"spur": "Spur", "yard": "Yard", "siding": "Siding", "crossover": "Crossover"}}},
"service_times": {"key": "service_times", "type": "text", "label": "Service Times"},
"service": {"key": "service", "type": "combo", "label": "Type", "options": ["driveway", "parking_aisle", "alley", "drive-through", "emergency_access"]},
"service/bicycle": {"key": "service:bicycle:", "type": "multiCombo", "label": "Services"},
"service/vehicle": {"key": "service:vehicle:", "type": "multiCombo", "label": "Services"},
"shelter_type": {"key": "shelter_type", "type": "combo", "label": "Type"},
"shelter": {"key": "shelter", "type": "check", "label": "Shelter"},
"shop": {"key": "shop", "type": "typeCombo", "label": "Type"},
"shower": {"key": "shower", "type": "check", "label": "Showers"},
"siren/purpose": {"key": "siren:purpose", "type": "combo", "label": "Purpose"},
"siren/type": {"key": "siren:type", "type": "combo", "label": "Type", "strings": {"options": {"pneumatic": "Pneumatic", "electronic": "Electronic", "other": "Other"}}},
"site_type": {"key": "site_type", "type": "combo", "label": "Site Type"},
"site": {"key": "site", "type": "combo", "label": "Type"},
"smoking": {"key": "smoking", "type": "combo", "label": "Smoking", "placeholder": "No, Separated, Yes...", "strings": {"options": {"no": "No smoking anywhere", "separated": "In smoking areas, not physically isolated", "isolated": "In smoking areas, physically isolated", "outside": "Allowed outside", "yes": "Allowed everywhere", "dedicated": "Dedicated to smokers (e.g. smokers' club)"}}},
"smoothness": {"key": "smoothness", "type": "combo", "label": "Smoothness", "placeholder": "Thin Rollers, Wheels, Off-Road...", "strings": {"options": {"excellent": "Thin Rollers: rollerblade, skateboard", "good": "Thin Wheels: racing bike", "intermediate": "Wheels: city bike, wheelchair, scooter", "bad": "Robust Wheels: trekking bike, car, rickshaw", "very_bad": "High Clearance: light duty off-road vehicle", "horrible": "Off-Road: heavy duty off-road vehicle", "very_horrible": "Specialized off-road: tractor, ATV", "impassable": "Impassable / No wheeled vehicle"}}},
"sms": {"key": "sms", "type": "check", "label": "SMS"},
"social_facility_for": {"key": "social_facility:for", "type": "combo", "label": "People Served"},
"social_facility": {"key": "social_facility", "type": "combo", "label": "Type"},
"source": {"key": "source", "type": "semiCombo", "icon": "source", "universal": true, "label": "Sources", "snake_case": false, "caseSensitive": true, "options": ["survey", "local knowledge", "gps", "aerial imagery", "streetlevel imagery"], "terms": ["reference"]},
"species/wikidata": {"key": "species:wikidata", "keys": ["species:wikidata", "species:wikipedia"], "type": "wikidata", "label": "Species Wikidata"},
"sport_ice": {"key": "sport", "type": "semiCombo", "label": "Sports", "options": ["ice_skating", "ice_hockey", "multi", "curling", "ice_stock"]},
"sport_racing_motor": {"key": "sport", "type": "semiCombo", "label": "Sports", "options": ["motor", "karting", "motocross"]},
"sport_racing_nonmotor": {"key": "sport", "type": "semiCombo", "label": "Sports", "options": ["bmx", "cycling", "dog_racing", "horse_racing", "running"]},
"sport": {"key": "sport", "type": "semiCombo", "label": "Sports"},
"stars": {"key": "stars", "type": "combo", "label": "Stars", "terms": ["rating"]},
"start_date": {"key": "start_date", "type": "text", "universal": true, "label": "Start Date", "placeholder": "YYYY-MM-DD", "terms": ["inception"]},
"step_count": {"key": "step_count", "type": "number", "minValue": 0, "label": "Number of Steps"},
"stile": {"key": "stile", "type": "combo", "label": "Type"},
"stop": {"key": "stop", "type": "combo", "label": "Stop Type", "strings": {"options": {"all": "All Ways", "minor": "Minor Road"}}},
"street_cabinet": {"key": "street_cabinet", "type": "combo", "label": "Type"},
"stroller": {"key": "stroller", "type": "radio", "strings": {"options": {"yes": "Yes", "limited": "Limited", "no": "No"}}, "label": "Stroller Access", "terms": ["baby carriage", "perambulator", "pram", "pushchair"]},
"structure_waterway": {"type": "structureRadio", "keys": ["tunnel"], "label": "Structure", "placeholder": "Unknown", "strings": {"options": {"tunnel": "Tunnel"}}},
"structure": {"type": "structureRadio", "keys": ["bridge", "tunnel", "embankment", "cutting", "ford"], "label": "Structure", "placeholder": "Unknown", "strings": {"options": {"bridge": "Bridge", "tunnel": "Tunnel", "embankment": "Embankment", "cutting": "Cutting", "ford": "Ford"}}},
"studio": {"key": "studio", "type": "combo", "label": "Type"},
"substance": {"key": "substance", "type": "combo", "label": "Substance"},
"substation": {"key": "substation", "type": "typeCombo", "label": "Type"},
"supervised": {"key": "supervised", "type": "check", "label": "Supervised", "terms": ["guarded", "manned"]},
"support": {"key": "support", "type": "combo", "label": "Support"},
"surface": {"key": "surface", "type": "combo", "label": "Surface"},
"surveillance": {"key": "surveillance", "type": "combo", "label": "Surveillance Kind"},
"surveillance/type": {"key": "surveillance:type", "type": "combo", "label": "Surveillance Type", "strings": {"options": {"camera": "Camera", "guard": "Guard", "ALPR": "Automatic License Plate Reader"}}},
"surveillance/zone": {"key": "surveillance:zone", "type": "combo", "label": "Surveillance Zone"},
"survey/date": {"key": "survey:date", "type": "text", "label": "Last Survey Date"},
"swimming_pool": {"key": "swimming_pool", "type": "combo", "label": "Type"},
"switch": {"key": "switch", "type": "combo", "label": "Type", "strings": {"options": {"mechanical": "Mechanical", "circuit_breaker": "Circuit Breaker", "disconnector": "Disconnector", "earthing": "Earthing"}}},
"tactile_paving": {"key": "tactile_paving", "type": "check", "label": "Tactile Paving"},
"takeaway": {"key": "takeaway", "type": "combo", "label": "Takeaway", "placeholder": "Yes, No, Takeaway Only...", "strings": {"options": {"yes": "Yes", "no": "No", "only": "Takeaway Only"}}, "terms": ["take out", "takeout"]},
"target": {"key": "target", "type": "combo", "label": "Target"},
"telecom": {"key": "telecom", "type": "combo", "label": "Type"},
"telecom/medium": {"key": "telecom:medium", "type": "combo", "label": "Medium"},
"tidal": {"key": "tidal", "type": "check", "label": "Tidal"},
"to": {"key": "to", "type": "text", "label": "To"},
"toilets": {"key": "toilets", "type": "check", "label": "Toilets"},
"toilets/disposal": {"key": "toilets:disposal", "type": "combo", "label": "Disposal", "strings": {"options": {"flush": "Flush", "pitlatrine": "Pit Latrine", "chemical": "Chemical", "bucket": "Bucket"}}},
"toilets/handwashing": {"key": "toilets:handwashing", "type": "check", "label": "Handwashing"},
"toilets/position": {"key": "toilets:position", "type": "semiCombo", "label": "Positions"},
"toll": {"key": "toll", "type": "check", "label": "Toll"},
"tomb": {"key": "tomb", "type": "typeCombo", "label": "Type"},
"tourism": {"key": "tourism", "type": "typeCombo", "label": "Type"},
"tower/construction": {"key": "tower:construction", "type": "combo", "label": "Construction", "placeholder": "Guyed, Lattice, Concealed, ..."},
"tower/type": {"key": "tower:type", "type": "combo", "label": "Type"},
"townhall/type": {"key": "townhall:type", "type": "combo", "label": "Type"},
"tracktype": {"key": "tracktype", "type": "combo", "label": "Track Type", "placeholder": "Solid, Mostly Solid, Soft...", "strings": {"options": {"grade1": "Solid: paved or heavily compacted hardcore surface", "grade2": "Mostly Solid: gravel/rock with some soft material mixed in", "grade3": "Even mixture of hard and soft materials", "grade4": "Mostly Soft: soil/sand/grass with some hard material mixed in", "grade5": "Soft: soil/sand/grass"}}},
"trade": {"key": "trade", "type": "typeCombo", "label": "Type"},
"traffic_calming": {"key": "traffic_calming", "type": "typeCombo", "label": "Type"},
"traffic_sign": {"key": "traffic_sign", "type": "typeCombo", "label": "Traffic Sign"},
"traffic_sign/direction": {"key": "traffic_sign:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}, "geometry": ["vertex"]},
"traffic_signals": {"key": "traffic_signals", "type": "combo", "label": "Type", "default": "signal"},
"traffic_signals/direction": {"key": "traffic_signals:direction", "type": "combo", "label": "Direction Affected", "strings": {"options": {"forward": "Forward", "backward": "Backward", "both": "Both / All"}}},
"trail_visibility": {"key": "trail_visibility", "type": "combo", "label": "Trail Visibility", "placeholder": "Excellent, Good, Bad...", "strings": {"options": {"excellent": "Excellent: unambiguous path or markers everywhere", "good": "Good: markers visible, sometimes require searching", "intermediate": "Intermediate: few markers, path mostly visible", "bad": "Bad: no markers, path sometimes invisible/pathless", "horrible": "Horrible: often pathless, some orientation skills required", "no": "No: pathless, excellent orientation skills required"}}},
"transformer": {"key": "transformer", "type": "combo", "label": "Type", "strings": {"options": {"distribution": "Distribution", "generator": "Generator", "converter": "Converter", "traction": "Traction", "auto": "Autotransformer", "phase_angle_regulator": "Phase Angle Regulator", "auxiliary": "Auxiliary", "yes": "Unknown"}}},
"trees": {"key": "trees", "type": "semiCombo", "label": "Trees"},
"trench": {"key": "trench", "type": "combo", "label": "Type"},
"trolley_wire": {"key": "trolley_wire", "type": "check", "label": "Overhead Trolley Wires"},
"tunnel_combo": {"key": "tunnel", "type": "combo", "label": "Type"},
"tunnel": {"key": "tunnel", "type": "typeCombo", "label": "Type", "usage": "group", "placeholder": "Default"},
"usage_rail": {"key": "usage", "type": "combo", "label": "Usage Type", "strings": {"options": {"main": "Main", "branch": "Branch", "industrial": "Industrial", "military": "Military", "test": "Test", "tourism": "Tourism"}}},
"utility_semi": {"key": "utility", "type": "semiCombo", "label": "Utilities"},
"utility": {"key": "utility", "type": "typeCombo", "label": "Utility"},
"valve": {"key": "valve", "type": "combo", "label": "Type"},
"vehicles": {"keys": ["bus", "trolleybus", "tram", "train", "subway", "light_rail", "monorail", "ferry"], "type": "manyCombo", "label": "Vehicles", "strings": {"options": {"bus": "Bus", "trolleybus": "Trolleybus", "tram": "Tram", "train": "Train", "subway": "Subway", "light_rail": "Light Rail", "monorail": "Monorail", "ferry": "Ferry"}}, "reference": {"key": "public_transport"}, "prerequisiteTag": {"keyNot": "aerialway"}},
"vending": {"key": "vending", "type": "semiCombo", "label": "Types of Goods"},
"vhf": {"key": "vhf", "type": "text", "label": "VHF Channel", "terms": ["call sign", "very high frequency"]},
"video_calls": {"key": "video", "type": "check", "label": "Video Calls"},
"visibility": {"key": "visibility", "type": "combo", "label": "Visibility", "strings": {"options": {"house": "Up to 5m (16ft)", "street": "5 to 20m (16 to 65ft)", "area": "Over 20m (65ft)"}}},
"volcano/status": {"key": "volcano:status", "type": "combo", "label": "Volcano Status", "strings": {"options": {"active": "Active", "dormant": "Dormant", "extinct": "Extinct"}}},
"volcano/type": {"key": "volcano:type", "type": "combo", "label": "Volcano Type", "strings": {"options": {"stratovolcano": "Stratovolcano", "shield": "Shield", "scoria": "Scoria"}}},
"voltage_electrified": {"key": "voltage", "type": "combo", "label": "Voltage", "prerequisiteTag": {"key": "electrified", "valueNot": "no"}},
"voltage": {"key": "voltage", "type": "combo", "label": "Voltage"},
"voltage/primary": {"key": "voltage:primary", "type": "combo", "label": "Primary Voltage"},
"voltage/secondary": {"key": "voltage:secondary", "type": "combo", "label": "Secondary Voltage"},
"voltage/tertiary": {"key": "voltage:tertiary", "type": "combo", "label": "Tertiary Voltage"},
"wall": {"key": "wall", "type": "combo", "label": "Type"},
"waste": {"key": "waste", "type": "semiCombo", "label": "Waste"},
"water_point": {"key": "water_point", "type": "check", "label": "Water Point"},
"water_source": {"key": "water_source", "default": "main", "type": "combo", "label": "Water Source"},
"water_tank/volume": {"key": "water_tank:volume", "type": "text", "label": "Volume (Liters)", "placeholder": "10000, 20000, 30000…"},
"water_volume": {"key": "water_volume", "type": "number", "label": "Water Reserve Volume (m³)", "snake_case": false},
"water": {"key": "water", "type": "combo", "label": "Type"},
"waterway": {"key": "waterway", "type": "typeCombo", "label": "Type"},
"website": {"key": "website", "type": "url", "icon": "website", "placeholder": "https://example.com", "label": "Website", "terms": ["internet presence", "uri", "url", "webpage"]},
"wetland": {"key": "wetland", "type": "combo", "label": "Type"},
"wheelchair": {"key": "wheelchair", "type": "radio", "strings": {"options": {"yes": "Yes", "limited": "Limited", "no": "No"}}, "icon": "maki-wheelchair", "label": "Wheelchair Access", "terms": ["handicap access"]},
"wholesale": {"key": "wholesale", "type": "typeCombo", "label": "Wholesale"},
"width": {"key": "width", "type": "number", "minValue": 0, "label": "Width (Meters)"},
"wikidata": {"key": "wikidata", "keys": ["wikidata", "wikipedia"], "type": "wikidata", "icon": "wikipedia", "universal": true, "label": "Wikidata"},
"wikimedia_commons": {"key": "wikimedia_commons", "type": "identifier", "label": "Wikimedia Commons Page", "placeholder": "File:Example.jpg", "urlFormat": "https://commons.wikimedia.org/wiki/{value}", "pattern": "^(?:File|Category):.{1,}", "universal": true},
"wikipedia": {"key": "wikipedia", "keys": ["wikipedia", "wikidata"], "type": "wikipedia", "icon": "wikipedia", "universal": true, "label": "Wikipedia"},
"windings": {"key": "windings", "type": "number", "minValue": 1, "label": "Windings", "placeholder": "1, 2, 3..."},
"windings/configuration": {"key": "windings:configuration", "type": "combo", "label": "Windings Configuration", "strings": {"options": {"star": "Star / Wye", "delta": "Delta", "open-delta": "Open Delta", "zigzag": "Zig Zag", "open": "Open", "scott": "Scott", "leblanc": "Leblanc"}}}
}
-50
View File
@@ -1,50 +0,0 @@
{
"keys": ["access", "foot", "motor_vehicle", "bicycle", "horse"],
"reference": {"key": "access"},
"type": "access",
"label": "Allowed Access",
"placeholder": "Not Specified",
"strings": {
"types": {
"access": "All",
"foot": "Foot",
"motor_vehicle": "Motor Vehicles",
"bicycle": "Bicycles",
"horse": "Horses"
},
"options": {
"yes": {
"title": "Allowed",
"description": "Access allowed by law; a right of way"
},
"no": {
"title": "Prohibited",
"description": "Access not allowed to the general public"
},
"permissive": {
"title": "Permissive",
"description": "Access allowed until such time as the owner revokes the permission"
},
"private": {
"title": "Private",
"description": "Access allowed only with permission of the owner on an individual basis"
},
"designated": {
"title": "Designated",
"description": "Access allowed according to signs or specific local laws"
},
"destination": {
"title": "Destination",
"description": "Access allowed only to reach a destination"
},
"dismount": {
"title": "Dismount",
"description": "Access allowed but rider must dismount"
},
"permit": {
"title": "Permit",
"description": "Access allowed only with a valid permit or license"
}
}
}
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "access_aisle",
"type": "combo",
"label": "Type"
}
-11
View File
@@ -1,11 +0,0 @@
{
"key": "access",
"type": "combo",
"label": "Allowed Access",
"options": ["yes", "permissive", "private", "customers", "permit", "no"],
"terms": [
"permitted",
"private",
"public"
]
}
@@ -1,13 +0,0 @@
{
"key": "addr:interpolation",
"type": "combo",
"label": "Type",
"strings": {
"options": {
"all": "All",
"even": "Even",
"odd": "Odd",
"alphabetic": "Alphabetic"
}
}
}
-71
View File
@@ -1,71 +0,0 @@
{
"type": "address",
"key": "addr",
"keys": [
"addr:block_number",
"addr:city",
"addr:block_number",
"addr:conscriptionnumber",
"addr:county",
"addr:country",
"addr:county",
"addr:district",
"addr:floor",
"addr:hamlet",
"addr:housename",
"addr:housenumber",
"addr:neighbourhood",
"addr:place",
"addr:postcode",
"addr:province",
"addr:quarter",
"addr:state",
"addr:street",
"addr:subdistrict",
"addr:suburb",
"addr:unit"
],
"icon": "address",
"label": "Address",
"strings": {
"placeholders": {
"block_number": "Block Number",
"block_number!jp": "Block No.",
"city": "City",
"city!cn": "City/Prefecture/League",
"city!jp": "City/Town/Village/Tokyo Special Ward",
"city!vn": "City/Town",
"conscriptionnumber": "123",
"country": "Country",
"county": "County",
"county!jp": "District",
"district": "District",
"district!cn": "District/County/Banner",
"district!vn": "Arrondissement/Town/District",
"floor": "Floor",
"hamlet": "Hamlet",
"housename": "Housename",
"housenumber": "123",
"housenumber!jp": "Building No./Lot No.",
"neighbourhood": "Neighbourhood",
"neighbourhood!jp": "Chōme/Aza/Koaza",
"place": "Place",
"postcode": "Postcode",
"province": "Province",
"province!cn": "Province/Municipality/AR/SAR",
"province!jp": "Prefecture",
"quarter": "Quarter",
"quarter!jp": "Ōaza/Machi",
"state": "State",
"street": "Street",
"subdistrict": "Subdistrict",
"subdistrict!vn": "Ward/Commune/Townlet",
"suburb": "Suburb",
"suburb!jp": "Ward",
"unit": "Unit"
}
},
"terms": [
"location"
]
}
-6
View File
@@ -1,6 +0,0 @@
{
"key": "admin_level",
"type": "number",
"minValue": 1,
"label": "Admin Level"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "aerialway",
"type": "typeCombo",
"label": "Type"
}
-12
View File
@@ -1,12 +0,0 @@
{
"key": "aerialway:access",
"type": "combo",
"label": "Access",
"strings": {
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
}
}
@@ -1,5 +0,0 @@
{
"key": "aerialway:bubble",
"type": "check",
"label": "Bubble"
}
@@ -1,7 +0,0 @@
{
"key": "aerialway:capacity",
"type": "number",
"minValue": 0,
"label": "Capacity (per hour)",
"placeholder": "500, 2500, 5000..."
}
@@ -1,7 +0,0 @@
{
"key": "aerialway:duration",
"type": "number",
"minValue": 0,
"label": "Duration (minutes)",
"placeholder": "1, 2, 3..."
}
@@ -1,5 +0,0 @@
{
"key": "aerialway:heating",
"type": "check",
"label": "Heated"
}
@@ -1,7 +0,0 @@
{
"key": "aerialway:occupancy",
"type": "number",
"minValue": 0,
"label": "Occupancy",
"placeholder": "2, 4, 8..."
}
@@ -1,12 +0,0 @@
{
"key": "aerialway:summer:access",
"type": "combo",
"label": "Access (summer)",
"strings": {
"options": {
"entry": "Entry",
"exit": "Exit",
"both": "Both"
}
}
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "aeroway",
"type": "typeCombo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "agrarian",
"type": "semiCombo",
"label": "Products"
}
@@ -1,9 +0,0 @@
{
"key": "air_conditioning",
"type": "check",
"label": "Air Conditioning",
"terms": [
"cooling system",
"refrigeration"
]
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "amenity",
"type": "typeCombo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "animal_boarding",
"type": "semiCombo",
"label": "For Animals"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "animal_breeding",
"type": "semiCombo",
"label": "For Animals"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "animal_shelter",
"type": "semiCombo",
"label": "For Animals"
}
-8
View File
@@ -1,8 +0,0 @@
{
"key": "architect",
"type": "text",
"label": "Architect",
"terms": [
"building designer"
]
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "area:highway",
"type": "typeCombo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "artist_name",
"type": "text",
"label": "Artist"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "artwork_type",
"type": "combo",
"label": "Type"
}
-11
View File
@@ -1,11 +0,0 @@
{
"key": "ascent",
"minValue": 0,
"type": "number",
"label": "Total Ascent",
"terms":[
"ascent",
"climb",
"cumulative elevation gain"
]
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "atm",
"type": "check",
"label": "ATM"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "attraction",
"type": "typeCombo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "automated",
"type": "check",
"label": "Automated"
}
-19
View File
@@ -1,19 +0,0 @@
{
"key": "baby_feeding",
"type": "combo",
"label": "Baby Nursing Area",
"strings": {
"options": {
"room": "Dedicated Room",
"yes": "Marked Space",
"no": "None"
}
},
"terms": [
"baby feeding",
"breastfeeding",
"lactation",
"mothers",
"nursing"
]
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "baby",
"type": "check",
"label": "Baby Seat"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "backcountry",
"type": "check",
"label": "Backcountry"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "backrest",
"type": "check",
"label": "Backrest"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bar",
"type": "check",
"label": "Bar"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "barrier",
"type": "typeCombo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "basin",
"type": "combo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bath:open_air",
"label": "Open Air",
"type": "check"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bath:sand_bath",
"label": "Sand Bath",
"type": "check"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bath:type",
"type": "combo",
"label": "Specialty"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "beauty",
"type": "semiCombo",
"label": "Services"
}
-8
View File
@@ -1,8 +0,0 @@
{
"key": "bench",
"type": "check",
"label": "Bench",
"terms": [
"seating"
]
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bicycle_parking",
"type": "combo",
"label": "Type"
}
-9
View File
@@ -1,9 +0,0 @@
{
"key": "bin",
"type": "check",
"label": "Waste Bin",
"terms": [
"garbage can",
"trash can"
]
}
-16
View File
@@ -1,16 +0,0 @@
{
"key": "blind",
"type": "radio",
"strings": {
"options": {
"yes": "Yes",
"limited": "Limited",
"no": "No"
}
},
"label": "Blind Person Access",
"terms": [
"sight impairment",
"vision impairment"
]
}
-13
View File
@@ -1,13 +0,0 @@
{
"key": "blood:",
"type": "multiCombo",
"label": "Blood Components",
"strings": {
"options": {
"whole": "whole blood",
"plasma": "plasma",
"platelets": "platelets",
"stemcells": "stem cell samples"
}
}
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "board_type",
"type": "combo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bollard",
"type": "combo",
"label": "Type"
}
-6
View File
@@ -1,6 +0,0 @@
{
"key": "booth",
"type": "combo",
"label": "Booth",
"caseSensitive": true
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bottle",
"type": "check",
"label": "Bottle Filling"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "boules",
"type": "typeCombo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "boundary",
"type": "combo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "brand",
"type": "text",
"label": "Brand"
}
-8
View File
@@ -1,8 +0,0 @@
{
"key": "brewery",
"type": "semiCombo",
"label": "Draft Beers",
"terms": [
"on tap"
]
}
-7
View File
@@ -1,7 +0,0 @@
{
"key": "bridge",
"type": "typeCombo",
"label": "Type",
"usage": "group",
"placeholder": "Default"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bridge:support",
"type": "typeCombo",
"label": "Type"
}
-5
View File
@@ -1,5 +0,0 @@
{
"key": "bridge",
"type": "combo",
"label": "Type"
}
-8
View File
@@ -1,8 +0,0 @@
{
"key": "building",
"type": "combo",
"label": "Building",
"terms": [
"structure"
]
}
-7
View File
@@ -1,7 +0,0 @@
{
"key": "building:flats",
"type": "number",
"minValue": 0,
"label": "Units",
"placeholder": "2, 4, 6, 8..."
}
-7
View File
@@ -1,7 +0,0 @@
{
"key": "building:levels",
"type": "number",
"minValue": 0,
"label": "Levels",
"placeholder": "2, 4, 6..."
}
@@ -1,10 +0,0 @@
{
"key": "building:levels:underground",
"type": "number",
"minValue": 0,
"label": "Underground Levels",
"placeholder": "2, 4, 6...",
"terms": [
"basement levels"
]
}
@@ -1,11 +0,0 @@
{
"key": "building:levels",
"type": "number",
"minValue": 0,
"label": "Building Levels",
"placeholder": "2, 4, 6...",
"prerequisiteTag": {
"key": "building",
"valueNot": "no"
}
}
@@ -1,5 +0,0 @@
{
"key": "building:material",
"type": "combo",
"label": "Material"
}
-7
View File
@@ -1,7 +0,0 @@
{
"key": "building",
"type": "combo",
"default": "yes",
"geometry": ["area"],
"label": "Building"
}

Some files were not shown because too many files have changed in this diff Show More