Merge remote-tracking branch 'upstream/main'

This commit is contained in:
tiptoptom 2025-06-19 10:31:21 +02:00
commit ada654df8a
392 changed files with 271817 additions and 23374 deletions

View file

@ -1,7 +1,7 @@
name: Add support of a missing OSM tag
description: This requests an OSM tag to be added to the tagging schema in the form of a new preset, field or value.
# title: ''
labels: enhancement
labels: needs-triage
# assignees: ''
body:
- type: markdown
@ -82,6 +82,13 @@ body:
placeholder: '126,000'
validations:
required: true
- type: input
attributes:
label: Suggested Icon
description: Each preset needs an icon ([learn more…](https://github.com/ideditor/schema-builder/blob/main/ICONS.md#icons)). Any suggestion, yet, on which? Or do we need a new one?
placeholder: 'maki-park'
validations:
required: false
- type: input
attributes:
label: Replaces other Tag?

View file

@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
labels: bug,needs-triage
assignees: ''
---

View file

@ -1,7 +1,7 @@
name: Add a New Deprecation Rule
description: This requests an OSM tag to be added to list of deprecated tags.
# title: ''
labels: deprecating
labels: deprecating,needs-triage
# assignees: ''
body:
- type: markdown

View file

@ -58,7 +58,7 @@ Follow these steps to test your PR yourself and make it a lot easier and faster
<!-- **Test the info-i** for your fields and preset and share relevant **screenshots** here.
The info needs to help mappers understand the preset and when to use it.
[Learn more…](https://github.com/tordans/id-tagging-schema/blob/main/CONTRIBUTING.md#info-i)
[Learn more…](https://github.com/openstreetmap/id-tagging-schema/blob/main/CONTRIBUTING.md#info-i)
-->
### Wording

62
.github/release-drafter.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
categories:
- title: 'New Presets'
labels:
- 'new-preset'
- title: 'New and Changed Fields'
labels:
- 'field'
- 'new-field'
- 'new-value'
- title: 'Changed Presets'
labels:
- 'preset'
- 'add-field'
- 'new-icon'
- 'new-label'
- title: 'Regional Presets and Fields'
labels:
- 'regional'
- title: 'Deprecated Tags'
labels:
- 'deprecating'
- title: 'Bug Fixes'
labels:
- 'bug'
- title: 'Documentation and Other Changes'
labels:
- 'ci'
- 'documentation'
- 'new-category'
- 'schema-builder'
- 'schema'
- title: 'Dependencies'
collapse-after: 3
labels:
- 'dependencies'
category-template: '#### $TITLE'
change-template: '* $TITLE (#$NUMBER, thanks @$AUTHOR)'
change-title-escapes: '\<*_&'
version-resolver:
major:
labels:
- 'breaking'
minor:
labels:
- 'enhancement'
- 'new-preset'
- 'new-field'
- 'new-value'
- 'new-icon'
- 'new-label'
- 'new-category'
- 'add-field'
- 'deprecating'
- 'regional'
patch:
labels:
- 'bug'
- 'documentation'
default: minor
template: '$CHANGES'

View file

@ -12,13 +12,13 @@ jobs:
build-preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- run: npm clean-install
- run: npm run dist
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
repository: openstreetmap/iD
path: './iD'
@ -33,7 +33,7 @@ jobs:
env:
ID_PRESETS_CDN_URL: '../../'
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: preview
path: |
@ -43,7 +43,7 @@ jobs:
- name: Store pull request number for later use
run: |
echo ${{github.event.number}} > ./pr_number
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: pr
path: ./pr_number

View file

@ -8,17 +8,18 @@ on:
jobs:
deploy-preview:
environment: pr-previews
runs-on: ubuntu-latest
if: ${{github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'}}
steps:
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18'
- run: npm install --global netlify-cli@6
- run: npm install unzipper@0.10
- run: npm clean-install
- name: Get pull request number
uses: actions/github-script@v6
uses: actions/github-script@v7
id: pull-request-number
with:
result-encoding: string
@ -45,21 +46,22 @@ jobs:
const file = directory.files.find(d => d.path === 'pr_number');
const content = await file.buffer();
return content.toString();
- uses: dawidd6/action-download-artifact@v2
- uses: dawidd6/action-download-artifact@v8
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build-preview.yml
pr: ${{steps.pull-request-number.outputs.result}}
name: preview
allow_forks: true
- name: Deploy to Netlify
env:
NETLIFY_AUTH_TOKEN: ${{secrets.NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID: ${{secrets.NETLIFY_SITE_ID}}
run: netlify deploy --dir=. --alias=pr-${{steps.pull-request-number.outputs.result}}
run: ./node_modules/.bin/netlify deploy --no-build --dir=. --alias=pr-${{steps.pull-request-number.outputs.result}}
- name: Add comment to pull request
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: |
const pullRequestNumber = parseInt(${{steps.pull-request-number.outputs.result}}, 10);
@ -78,14 +80,14 @@ jobs:
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequestNumber,
body: `${start} You can preview the tagging presets of this pull request [here](https://pr-${pullRequestNumber}--ideditor-presets-preview.netlify.app/id/dist/#locale=en).`
body: `${start} **[Your pull request preview is ready](https://pr-${pullRequestNumber}--ideditor-presets-preview.netlify.app/id/dist/#locale=en&map=17.00/14.65485/121.06466)**\n\nPlease use this preview to check your changes. Ideally use [the **test documentation** template](https://github.com/openstreetmap/id-tagging-schema/blob/main/.github/PULL_REQUEST_TEMPLATE.md?plain=1#L38-L69) and document your test results by commenting on the PR. This will speed up the review process for everyone.\n\nFYI, once this PR is merged, you can use [the iD Editor Preview](http://preview.ideditor.com/) to test your changes in interaction with all other changes.`
});
} else {
console.log(`Preview URL comment already added to PR #${pullRequestNumber}`);
}
- name: Clean up artifact
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
result-encoding: string
script: |

View file

@ -12,15 +12,15 @@ jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
if: "github.repository == 'openstreetmap/id-tagging-schema'"
if: github.repository == 'openstreetmap/id-tagging-schema'
steps:
- name: Checkout
uses: actions/checkout@v3 # If you're using actions/checkout@v3 you must set persist-credentials to false in most cases for the deployment to work correctly.
uses: actions/checkout@v4 # If you're using actions/checkout@v3 you must set persist-credentials to false in most cases for the deployment to work correctly.
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
@ -31,7 +31,7 @@ jobs:
run: npm run build
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4.6.1
uses: JamesIves/github-pages-deploy-action@v4
with:
BRANCH: interim # The branch the action should deploy to.
FOLDER: interim # The folder the action should deploy.
branch: interim # The branch the action should deploy to.
folder: interim # The folder the action should deploy.

View file

@ -5,36 +5,34 @@ jobs:
name: Check file endings
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: |
notJSONs=`find data/ -type f -not -iname "*.json"`
for f in $notJSONs
disallowedFiles=`find data/ -type f -not -iname "*.json" -not -iname "*.md"`
for f in $disallowedFiles
do
echo "::error file=$f::File $f is not a .json file."
echo "::error file=$f::File $f is not a .json or .md file."
done
if [ ! -z "$notJSONs" ]; then exit 1; fi
if [ ! -z "$disallowedFiles" ]; then exit 1; fi
prettier:
name: Check for code formatting mistakes
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- run: npm clean-install
- run: 'for f in `find data/ -type f -not -iname "*.json"`; do echo "::error File $f is not a .json file."; done'
- run: npm run lint
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: codespell-project/actions-codespell@master
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
with:
check_filenames: true
skip: ./.git,./dist,./data/deprecated.json,./data/discarded.json
ignore_words_list: "auxilary,casette,cemetary,chancel,discus,extentions,faiway,generat,goverment,guerilla,guyser,kindergarden,ore,pavillion,sculpter,storys,linz,te"
skip: ./.git,./dist,./data/deprecated.json,./data/discarded.json,package.json,package-lock.json,./scripts
ignore_words_list: "auxilary,casette,cemetary,chancel,discus,extentions,faiway,generat,goverment,guerilla,guyser,kindergarden,ore,pavillion,sculpter,storys,linz,te,brunch"
only_warn: 1

21
.github/workflows/release-drafter.yml vendored Normal file
View file

@ -0,0 +1,21 @@
name: Release Drafter
on:
push:
branches:
- main
permissions:
contents: read
jobs:
update_release_draft:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v6
with:
disable-autolabeler: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

57
.github/workflows/staging.yml vendored Normal file
View file

@ -0,0 +1,57 @@
name: Build and Deploy Staging Instance
on:
push:
branches: [ main ]
permissions:
contents: read
jobs:
build-deploy:
if: github.repository == 'openstreetmap/id-tagging-schema'
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
# install and build development version of id-tagging-schema
- run: npm clean-install
- run: npm run translations
env:
transifex_password: ${{secrets.TX_TOKEN}}
if: env.transifex_password != null
- run: npm run dist
# install and build development version of iD using freshest version of presets and ELI
- uses: actions/checkout@v4
with:
repository: openstreetmap/id
path: './iD'
- run: npm clean-install
working-directory: './iD'
- run: npm install editor-layer-index
working-directory: './iD'
- run: mkdir dist/data
working-directory: './iD'
- run: npm run imagery
working-directory: './iD'
- run: npm run all
working-directory: './iD'
- run: npm run translations
working-directory: './iD'
env:
transifex_password: ${{secrets.TX_TOKEN}}
if: env.transifex_password != null
- run: mkdir iD/dist/id-tagging-schema && mv dist iD/dist/id-tagging-schema/dist
- run: npm run dist
working-directory: './iD'
env:
ID_PRESETS_CDN_URL: './id-tagging-schema/'
# deploy to netlify
- name: Deploy to Netlify
env:
NETLIFY_AUTH_TOKEN: ${{secrets.NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID: ${{secrets.NETLIFY_SITE_ID}}
run: ./node_modules/.bin/netlify deploy --no-build --prod --dir=iD/dist

View file

@ -18,9 +18,9 @@ jobs:
node-version: ['18']
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm clean-install

1
.gitignore vendored
View file

@ -6,3 +6,4 @@
npm-debug.log
transifex.auth
interim

View file

@ -23,6 +23,172 @@ _Breaking developer changes, which may affect downstream projects or sites that
[@xxxx]: https://github.com/xxxx
-->
# 6.11.0
##### 2025-May-12
#### New Presets
* Add `crossing=informal` as unsearchable preset for point and line geometries ([#1140], thanks [@mikaeldui])
#### New and Changed Fields
* Remove `source` field by marking it as a field to be used on changesets (only) ([#1508], thanks [@tordans])
#### Changed Presets
* Add `ref` field to `amenity=bicycle_rental` ([#1519], thanks [@kjonosm])
* Update reference tags for recycling containers and centres ([#1497], thanks [@Dimitar5555])
* Add search term "empty" to Vacant Shop preset ([#1499], thanks [@matkoniecz])
#### Deprecated Tags
* Remove `highway=ford` deprecation ([#1492], thanks [@quincylvania])
#### Bug Fixes
* Fix broken "Address" documentation link ([#1489], thanks [@Vectorial1024])
#### Documentation and Other Changes
* Consistently use term "Wikibase" for data items also in contribution guidelines ([#1504], thanks [@matkoniecz])
* Clarify term "Wikibase" for data items in the OSM wiki ([#1502], thanks [@matkoniecz])
* Set up `release-drafter` ([#1503])
[#1140]: https://github.com/openstreetmap/id-tagging-schema/pull/1140
[#1508]: https://github.com/openstreetmap/id-tagging-schema/pull/1508
[#1519]: https://github.com/openstreetmap/id-tagging-schema/pull/1519
[#1497]: https://github.com/openstreetmap/id-tagging-schema/pull/1497
[#1499]: https://github.com/openstreetmap/id-tagging-schema/pull/1499
[#1492]: https://github.com/openstreetmap/id-tagging-schema/pull/1492
[#1489]: https://github.com/openstreetmap/id-tagging-schema/pull/1489
[#1504]: https://github.com/openstreetmap/id-tagging-schema/pull/1504
[#1502]: https://github.com/openstreetmap/id-tagging-schema/pull/1502
[#1503]: https://github.com/openstreetmap/id-tagging-schema/pull/1503
[@Vectorial1024]: https://github.com/Vectorial1024
# 6.10.0
##### 2025-Mar-20
#### New Presets
* Add preset for `amenity=veterinary_pharmacy` ([#1451], thanks [@Avan2021])
* Add preset for `shop=groundskeeping` ([#1448], thanks [@Avan2021])
* Add preset for `shop=bbq` ([#1430], thanks [@andrewharvey])
#### Changed Presets
* Show `fire_hydrant/position` field by default for all Hydrants ([#1441], thanks [@sun-geo])
* Add `wheelchair` field to Cycle Barrier preset ([#1232], thanks [@k-yle])
* Add `operator` field to `highway=street_lamp` ([#1327], thanks [@CorruptComputer])
* Use couch icon for `craft=upholsterer` ([#1462], thanks [@westnordost])
* Update icons for some shop presets: (`vacant` [#1457], `art` [#1458], `craft` [#1459], `e-cigarette` [#1460], `amenity=marketplace` [#1461], thanks [@westnordost])
#### New and Changed Fields
* Add fields for Cycle Barrier properties: `cycle_barrier` type, `cycle_barrier:installation`, `deflection` angle, `maxwidth:physical`, `opening` width, `overlap` width and `spacing` distance ([#1232], thanks [@k-yle])
* Add field for Center-Pivot Irrigation `irrigation=pivot` ([#1320], thanks [@arch0345])
* Add `entrance=shop` value also to Entrance Type field ([#1446])
* Add field toilets to `amenity=fast_food` as `moreFileds` ([#1454], thanks [@Avan2021])
* Use translated strings for `bridge` and `tunnel` values also in `structure` fields
* Add values `stone` and `tilework` to Artwork Type field ([#1443], thanks [@okainov])
#### Bugfixes
* Remove tag deprecation rule for `shop=photo_studio` ([#1407])
#### Documentation and Other Changes
* Remove `interim` directory in main branch (it's now available in a dedicated branch called `interim`) ([#1307])
[#1232]: https://github.com/openstreetmap/id-tagging-schema/pull/1232
[#1232]: https://github.com/openstreetmap/id-tagging-schema/pull/1232
[#1320]: https://github.com/openstreetmap/id-tagging-schema/pull/1320
[#1327]: https://github.com/openstreetmap/id-tagging-schema/pull/1327
[#1307]: https://github.com/openstreetmap/id-tagging-schema/pull/1307
[#1407]: https://github.com/openstreetmap/id-tagging-schema/issues/1407
[#1430]: https://github.com/openstreetmap/id-tagging-schema/pull/1430
[#1441]: https://github.com/openstreetmap/id-tagging-schema/pull/1441
[#1443]: https://github.com/openstreetmap/id-tagging-schema/pull/1443
[#1446]: https://github.com/openstreetmap/id-tagging-schema/pull/1446
[#1448]: https://github.com/openstreetmap/id-tagging-schema/pull/1448
[#1451]: https://github.com/openstreetmap/id-tagging-schema/pull/1451
[#1454]: https://github.com/openstreetmap/id-tagging-schema/pull/1454
[#1457]: https://github.com/openstreetmap/id-tagging-schema/pull/1457
[#1458]: https://github.com/openstreetmap/id-tagging-schema/pull/1458
[#1459]: https://github.com/openstreetmap/id-tagging-schema/pull/1459
[#1460]: https://github.com/openstreetmap/id-tagging-schema/pull/1460
[#1461]: https://github.com/openstreetmap/id-tagging-schema/pull/1461
[#1462]: https://github.com/openstreetmap/id-tagging-schema/pull/1462
[@Avan2021]: https://github.com/Avan2021
[@sun-geo]: https://github.com/sun-geo
[@CorruptComputer]: https://github.com/CorruptComputer
# 6.9.1
##### 2025-Feb-18
* fix "Detached House" translation in en-GB ([#1438])
[#1438]: https://github.com/openstreetmap/id-tagging-schema/issues/1438
# 6.9.0
##### 2025-Feb-06
#### New Presets
* Add preset for `office=translator` ([#1298], thanks [@deevroman])
* Add hidden presets for `highway=path + path=crossing` ([#1201], thanks [@tordans])
* Add preset for `shop=gold_buyer` ([#1374], thanks [@matkoniecz])
* Add preset for `natural=arch` ([#1352], thanks [@jake-low])
* Add preset for `entrance=shop` ([#1299], thanks [@deevroman])
* Add presets for `cycleway=traffic_island` ([#1068], thanks [@k-yle])
* Rework crossing presets to be better structured and easier to work with ([#1201], thanks [@tordans])
#### Changed Presets
* Add `building` (with default value `yes`) field to Funeral Service Hall preset ([#1324], thanks [@arch0345])
* Add additional search terms to Monitoring Station preset ([#1347], thanks [@mnalis])
* Add additional search terms to Public Bookcase Station preset ([#1333], [#1354], thanks [@Coehill] and [@danieldegroot2])
* Change icon of Ticket Validator preset ([#1388], thanks [@matkoniecz])
* Rename `shop=yes` to reuse the name "Shop (Unspecified type)" ([#1415], thanks [@Dimitar5555])
* Only apply `layer=1` on newly created `building=roof` objects ([#1342]) and tweak fields of roof preset
#### New and Changed Fields
* Add `camp_site` (type) field to Campground preset ([#1286], thanks [@osmuser63783])
* Improve label of `internet_access` field ([#1346], thanks [@mnalis])
* Add value `e-cigarettes` to `vending` field of Vending Machine preset ([#1371], thanks [@tiuck])
* Add translatable strings for values of the `map_type` tag ([#1373], thanks [@tiuck])
* Add value `sac_scale=strolling` to Hiking Path Difficulty field ([#1383], thanks [@felagund])
* Add descriptions to options for `parking` field ([#1402], thanks [@Nekzuris])
* Add universal field for `panoramax` photo ids ([#1344], thanks [@mnalis])
* Include `addr:town` in list of tags of the Address field ([#1433])
#### Regional Presets and Fields
* Add presets for `meadow=meadow_orchard`, `orchard=meadow_orchard` ([#1218], thanks [@tordans])
* Add presets for `highway=path-`based bicycle-foot path tagging in some European countries ([#1384], thanks [@olafkryus])
#### Deprecated Tags
* Replace ~~`information=map + map_type=tactile_map`~~ with information=tactile_map ([#1373], thanks [@tiuck])
* Replace ~~`information=map + map_type=tactile_model`~~ with information=tactile_model ([#1373], thanks [@tiuck])
* Replace ~~`parking:lane:*=*`~~ with `parking:*` tags ([#1390], thanks [@tiptoptom])
* Replace ~~`cycleway*=opposite`~~ with `oneway:bicycle=no` ([#1295], thanks [@tordans])
#### Bugfixes
* Fix spelling of Amphitheater preset to American English ([#1366], thanks [@1ec5])
#### Documentation and Other Changes
* Improve documentation about how icon works in iD ([#1257], thanks [@tordans])
* Clarify guidelines about deprecation rules ([#1309], thanks [@tordans])
* Add question about potential preset icon to github issue template ([#1377], thanks [@tordans])
* Synchronize list of discardable tags with JOSM ([#1423])
[#1201]: https://github.com/openstreetmap/id-tagging-schema/pull/1201
[#1218]: https://github.com/openstreetmap/id-tagging-schema/pull/1218
[#1257]: https://github.com/openstreetmap/id-tagging-schema/pull/1257
[#1286]: https://github.com/openstreetmap/id-tagging-schema/pull/1286
[#1295]: https://github.com/openstreetmap/id-tagging-schema/pull/1295
[#1309]: https://github.com/openstreetmap/id-tagging-schema/pull/1309
[#1324]: https://github.com/openstreetmap/id-tagging-schema/pull/1324
[#1333]: https://github.com/openstreetmap/id-tagging-schema/pull/1333
[#1342]: https://github.com/openstreetmap/id-tagging-schema/issues/1342
[#1344]: https://github.com/openstreetmap/id-tagging-schema/pull/1344
[#1346]: https://github.com/openstreetmap/id-tagging-schema/pull/1346
[#1347]: https://github.com/openstreetmap/id-tagging-schema/pull/1347
[#1354]: https://github.com/openstreetmap/id-tagging-schema/pull/1354
[#1366]: https://github.com/openstreetmap/id-tagging-schema/pull/1366
[#1371]: https://github.com/openstreetmap/id-tagging-schema/pull/1371
[#1373]: https://github.com/openstreetmap/id-tagging-schema/pull/1373
[#1373]: https://github.com/openstreetmap/id-tagging-schema/pull/1373
[#1377]: https://github.com/openstreetmap/id-tagging-schema/pull/1377
[#1383]: https://github.com/openstreetmap/id-tagging-schema/pull/1383
[#1384]: https://github.com/openstreetmap/id-tagging-schema/pull/1384
[#1388]: https://github.com/openstreetmap/id-tagging-schema/pull/1388
[#1390]: https://github.com/openstreetmap/id-tagging-schema/pull/1390
[#1402]: https://github.com/openstreetmap/id-tagging-schema/pull/1402
[#1415]: https://github.com/openstreetmap/id-tagging-schema/pull/1415
[#1423]: https://github.com/openstreetmap/id-tagging-schema/issues/1423
[#1433]: https://github.com/openstreetmap/id-tagging-schema/pull/1433
[@deevroman]: https://github.com/deevroman
[@jake-low]: https://github.com/jake-low
[@Coehill]: https://github.com/Coehill
[@tiuck]: https://github.com/tiuck
[@felagund]: https://github.com/felagund
# 6.8.1
##### 2024-Aug-19
@ -361,7 +527,7 @@ _Breaking developer changes, which may affect downstream projects or sites that
* Add specific presets for Trees which have the tags `leaf_cycle`/`leaf_type` mapped ([#956])
#### Changed Presets
* Add field to specify the type of a `house` ([#921], thanks [@arch0345])
* Allow Drinking Water to be mapped on verticed ([#925], thanks [@arch0345])
* Allow Drinking Water to be mapped on vertices ([#925], thanks [@arch0345])
* Rename preset for Trash Cans and Recycling Bins ([#938], thanks [@arch0345])
* Add `direction` field to Emergency Bay preset
* Add more fields to Parcel Locker preset for the tags: `wheelchair`, `indoor` ([#940]), `collection_times`, `surveillance`

View file

@ -23,7 +23,7 @@ Read the [GUIDELINES](./GUIDELINES.md) to help you understand what fields and ta
1. [open the translation page](https://www.transifex.com/openstreetmap/id-editor/translate/)
2. select a language
3. select _'presets'_
4. search for `key:living_street` or `translation_text:'Living Street'`
4. search for `key:living_street` or `translation_text:'Living Street'` or `key:highway/living_street`
* **Request access:** To contribute to a language, [select a language](https://www.transifex.com/openstreetmap/id-editor/languages/) and use 'Join team' to request access. The administrators will approve requests routinely, only rejecting requests for overly specific locales.
@ -36,16 +36,27 @@ Read the [GUIDELINES](./GUIDELINES.md) to help you understand what fields and ta
## Making Changes
You are highly welcome to help this project by submitting pull requests!
### Overview and General Structure
Detailed documentation for the data format used in this repository is located with the [schema-builder](https://github.com/ideditor/schema-builder) package, which is the technical basis of this project.
To make a change, update the corresponding file within the `data` folder: The `presets` contain a representation of OpenStreetMap's [map features](wiki.openstreetmap.org/wiki/Map_Features), and the `fields` are their properties. In addition, the tagging schema contains a few `categories` of presets and a list of `deprecated` and `discardable` tags.
To make a change, update the corresponding file within the `data` folder: The `presets` contain a representation of OpenStreetMap's [map features](https://wiki.openstreetmap.org/wiki/Map_Features), and the `fields` are their properties. In addition, the tagging schema contains a few `categories` of presets and a list of `deprecated` and `discardable` tags.
### Icons
Icons from different sources (_icon sets_) can be used in the tagging schema. Head over to the [dedicated page](https://github.com/ideditor/schema-builder/blob/main/ICONS.md#icons) about how to use them.
### Info-`i`
![Screenshot of a preset in iD with the information details open.](https://github.com/openstreetmap/id-tagging-schema/assets/111561/13549318-cd7c-4dd1-9948-7a2d84662f04)
iD and other tools provide users with a way to learn more about the main tag of a preset. It is important to provide good information in this information panel. Here are a few notes on how to do this:
- Does your tag have a Wikibase entry? Click the small pencil icon next to the text to open the Wikibase item on the OSM wiki. Improve this wording if needed. If the Wikibase item is missing, [learn more about how to add it in "Current methods for creating new items"](https://wiki.openstreetmap.org/wiki/Data_items#Item_creation_process).
- Does your tag have a Wiki page with a good image?
- Your preset might need [a `reference` property](https://github.com/ideditor/schema-builder?tab=readme-ov-file#reference) to force the system to use a specific tag for the information section.
### Code Style
The input files are JSON files which use 4-space indentation. You can use the `npm run lint` command to check whether your files match the expected code style and run `npm run lint:fix` to reformat them if they don't do so.

View file

@ -33,7 +33,7 @@ Github shows a `(Collaborator)` label next to users with any permission on this
### Triage Role
(No one has the triage role at the moment. Please reach out if you want to help.)
* [Mateusz](https://github.com/matkoniecz) contributes to this project as a volunteer.
The triage role includes:
- Proactively helping to clarify issues and PRs.

View file

@ -15,7 +15,7 @@ Consider the following:
- 📋 **Established Documentation**: The tagging schema will only consider tags that are well-documented on the OSM wiki. The documentation should be clear and unambiguous.
- 🏷️ **Established Tags Only**: No new or unestablished tags should be part of presets. Establishing tags must remain a community-driven process, not dictated by software implementation.
- ✅ **Proposal or Accepted**: A tag is considered established when it has completed the [proposal process](https://wiki.openstreetmap.org/wiki/Proposal_process) or is otherwise accepted by the OSM community. Factors include the tag's duration and frequency of use, whether its usage is increasing over time and its usage by mainstream data consumers.
- 🤷 **Useful Purpose**: Especially for less established tags, presets and fields should have a practical application. OSM allows for the collection of a wide variety of data, but not all of it is useful. For example, the brightness of street lamps might be documented, but it doesn't necessarily warrant a preset or field.
- 🤷 **Notable Purpose**: Especially for less established tags, presets and fields should have a practical application. OSM allows for the collection of a wide variety of data, some of it for niche purposes. For example, the brightness of street lamps might be documented, but it doesn't necessarily warrant a preset or field.
- 🕓 **Effort vs. Impact**: Consider whether the effort required is justified by the impact the preset or field will have. Assess how many elements this new type will apply to. This is particularly important if you do not plan to contribute the code changes yourself through a pull request (PR).
### User Experience
@ -37,11 +37,24 @@ No preset or field is isolated; they are always presented alongside others in va
- **Suggested Additions**: Presets can suggest additional tags. These suggestions must be clearly supported by the wiki and community consensus.
- 🔄 **Updates**: Deprecation rules can suggest updating tags. Good documentation and consensus are needed for these deprecations.
In both cases, _indicators for consensus_ are:
**In both cases, _indicators for consensus_ are:**
- The deprecation is documented in the wiki and is either official (resulting from a proposal process) or long-standing (about a year).
- There is a significant drop in usage compared to previous numbers, with a negative trend ([visible in the graph](https://taghistory.raifer.tech/)).
- Usage of the deprecated tag remains stagnant for a longer period (about a year).
In addition, the deprecated tag must have reasonably high usage to be considered. Low usage tags should be addressed through other cleanup methods, such as [MapRoulette](https://maproulette.org/) or similar initiatives.
**Deprecations are not for cleanup:**
Deprecation rules work such that the user sees a message with suggestions and can act only when editing the given element. This makes them well-suited for gradual, human-reviewed updates of taggings like crossings. However, they are not suitable for cleaning up incorrect tagging from the database, especially for low-volume changes.
There are, however, alternatives to consider:
- Your cleanup task might be eligible for an automated (bot) edit. [Please learn more on the wiki…](https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct)
- If your task is small enough, a few [editing sessions in JOSM](https://wiki.openstreetmap.org/wiki/JOSM) will often do the trick. However, mass-replacing without checking each object is still considered an automated edit, so the [guidelines apply](https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct). Please consult other mappers first.
- A good way to work down a list of tasks is to create [a MapRoulette Challenge](https://maproulette.org/).
- Should those options not suit you, you can always suggest such changes in the [OSM community forum](https://community.openstreetmap.org/).
## 2. Design the Preset
The user interface must be clear, concise, and easy to use, leaving no room for misunderstandings.
@ -52,12 +65,12 @@ The user interface must be clear, concise, and easy to use, leaving no room for
- Check the search functionality to ensure other presets do not cause confusion.
- Select an icon or start the process to create a new one.
- Define which fields to show (`fields`) and suggest (`moreFields`), considering the order of fields.
- Check the `(i)` documentation and add or update the OSM Wikidata item if needed to provide a helpful short text.
- Check the `(i)` documentation and add or update the [OSM Wikibase item](https://wiki.openstreetmap.org/wiki/Data_items) if needed to provide a helpful short text.
- Use the PR preview to add test cases with deep links to OSM objects that demonstrate the preset in use.
## 3. Implement
If you are familiar with `JSON`, you can implement the preset or field yourself. First, create a ticket to introduce your quest idea and discuss it with the community to get feedback on its feasibility and desirability. After implementation, create a pull request to get it merged.
If you are familiar with `JSON`, you can implement the preset or field yourself. First, create a ticket to introduce your tagging idea and discuss it with the community to get feedback on its feasibility and desirability. After implementation, create a pull request to get it merged.
For more details on adding presets, see ["Making changes"](./CONTRIBUTING.md#making-changes).

View file

@ -1,4 +1,4 @@
![test](https://github.com/openstreetmap/id-tagging-schema/workflows/test/badge.svg) [![npm version](https://badge.fury.io/js/%40openstreetmap%2Fid-tagging-schema.svg)](https://badge.fury.io/js/%40openstreetmap%2Fid-tagging-schema)
[![test](https://github.com/openstreetmap/id-tagging-schema/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/openstreetmap/id-tagging-schema/actions/workflows/test.yml) [![npm version](https://badge.fury.io/js/%40openstreetmap%2Fid-tagging-schema.svg)](https://badge.fury.io/js/%40openstreetmap%2Fid-tagging-schema)
# iD Tagging Schema
@ -10,7 +10,7 @@ It includes presets, fields, deprecations, and more.
* Read up about how you can contribute to the iD Tagging Schema on the [contributing page](CONTRIBUTING.md).
* [Translate!](CONTRIBUTING.md#Translating)
* See the [open issues](https://github.com/openstreetmap/id-tagging-schema/issues?state=open) in the issue tracker if you're looking for something to do.
* Need more help? Ping user `tyr_asd` (Martin Raifer) on [OpenStreetMap Discord](https://discord.gg/openstreetmap) (`#id` channel) or [OpenStreetMap US Slack](https://slack.openstreetmap.us/) (`#id` channel).
* Need more help? Ping user `tyr_asd` (Martin Raifer) on [OpenStreetMap Discord](https://discord.gg/openstreetmap) (`#id-and-rapid` channel) or [OpenStreetMap US Slack](https://slack.openstreetmap.us/) (`#id` channel).
## Background

View file

@ -786,10 +786,6 @@
"old": {"highway": "footway", "foot": "no"},
"replace": {"highway": "path", "foot": "no"}
},
{
"old": {"highway": "ford"},
"replace": {"ford": "*"}
},
{
"old": {"highway": "path", "ladder": "yes"},
"replace": {"highway": "ladder"}
@ -1134,6 +1130,14 @@
"old": {"man_made": "winery"},
"replace": {"craft": "winery"}
},
{
"old": {"map_type": "tactile_map", "information": "map"},
"replace": {"information": "tactile_map"}
},
{
"old": {"map_type": "tactile_model", "information": "map"},
"replace": {"information": "tactile_model"}
},
{
"old": {"maxage": "*"},
"replace": {"max_age": "$1"}
@ -1253,6 +1257,102 @@
"old": {"parking": "street"},
"replace": {"parking": "lane"}
},
{
"old": {"parking:lane:both": "no"},
"replace": {"parking:both": "no"}
},
{
"old": {"parking:lane:both": "no_parking"},
"replace": {"parking:both": "no", "parking:both:restriction": "no_parking"}
},
{
"old": {"parking:lane:both": "no_stopping"},
"replace": {"parking:both": "no", "parking:both:restriction": "no_stopping"}
},
{
"old": {"parking:lane:both": "fire_lane"},
"replace": {"parking:both": "no", "parking:both:restriction": "no_stopping", "parking:both:restriction:reason": "fire_lane"}
},
{
"old": {"parking:lane:both": "separate"},
"replace": {"parking:both": "separate"}
},
{
"old": {"parking:lane:both": "diagonal"},
"replace": {"parking:both": "yes", "parking:both:orientation": "diagonal"}
},
{
"old": {"parking:lane:both": "parallel"},
"replace": {"parking:both": "yes", "parking:both:orientation": "parallel"}
},
{
"old": {"parking:lane:both": "perpendicular"},
"replace": {"parking:both": "yes", "parking:both:orientation": "perpendicular"}
},
{
"old": {"parking:lane:both:parallel": "on_street"},
"replace": {"parking:both": "lane"}
},
{
"old": {"parking:lane:left": "no"},
"replace": {"parking:left": "no"}
},
{
"old": {"parking:lane:left": "no_parking"},
"replace": {"parking:left": "no", "parking:left:restriction": "no_parking"}
},
{
"old": {"parking:lane:left": "no_stopping"},
"replace": {"parking:left": "no", "parking:left:restriction": "no_stopping"}
},
{
"old": {"parking:lane:left": "separate"},
"replace": {"parking:left": "separate"}
},
{
"old": {"parking:lane:left": "diagonal"},
"replace": {"parking:left": "yes", "parking:left:orientation": "diagonal"}
},
{
"old": {"parking:lane:left": "parallel"},
"replace": {"parking:left": "yes", "parking:left:orientation": "parallel"}
},
{
"old": {"parking:lane:left": "perpendicular"},
"replace": {"parking:left": "yes", "parking:left:orientation": "perpendicular"}
},
{
"old": {"parking:lane:right": "no"},
"replace": {"parking:right": "no"}
},
{
"old": {"parking:lane:right": "no_parking"},
"replace": {"parking:right": "no", "parking:right:restriction": "no_parking"}
},
{
"old": {"parking:lane:right": "no_stopping"},
"replace": {"parking:right": "no", "parking:right:restriction": "no_stopping"}
},
{
"old": {"parking:lane:right": "separate"},
"replace": {"parking:right": "separate"}
},
{
"old": {"parking:lane:right": "diagonal"},
"replace": {"parking:right": "yes", "parking:right:orientation": "diagonal"}
},
{
"old": {"parking:lane:right": "parallel"},
"replace": {"parking:right": "yes", "parking:right:orientation": "parallel"}
},
{
"old": {"parking:lane:right": "perpendicular"},
"replace": {"parking:right": "yes", "parking:right:orientation": "perpendicular"}
},
{
"old": {"parking:lane:right:parallel": "on_street"},
"replace": {"parking:right": "lane"}
},
{
"old": {"parking:orientation": "*"},
"replace": {"orientation": "$1"}
@ -1528,10 +1628,6 @@
"old": {"shop": "perfume"},
"replace": {"shop": "perfumery"}
},
{
"old": {"shop": "photo_studio"},
"replace": {"craft": "photographer"}
},
{
"old": {"shop": "real_estate"},
"replace": {"office": "estate_agent"}
@ -1999,5 +2095,13 @@
{
"old": {"industrial": "brickworks"},
"replace": {"industrial": "brickyard"}
},
{
"old": {"cycleway": "opposite"},
"replace": {"oneway:bicycle": "no", "cycleway:both": "no"}
},
{
"old": {"cycleway:left": "opposite"},
"replace": {"oneway:bicycle": "no", "cycleway:left": "no"}
}
]

View file

@ -1,6 +1,5 @@
{
"created_by": true,
"converted_by": true,
"odbl": true,
"odbl:note": true,
@ -53,5 +52,17 @@
"yh:TOTYUMONO": true,
"yh:TYPE": true,
"yh:WIDTH": true,
"yh:WIDTH_RANK": true
"yh:WIDTH_RANK": true,
"LINZ2OSM:dataset": true,
"LINZ2OSM:layer": true,
"LINZ2OSM:source_version": true,
"LINZ:dataset": true,
"LINZ:layer": true,
"LINZ:source_version": true,
"linz2osm:objectid": true,
"fid": true,
"import_uuid": true,
"gnis:import_uuid": true
}

View file

@ -1,12 +1,14 @@
{
"type": "address",
"key": "addr",
"reference": {
"key": "addr:*"
},
"keys": [
"addr:block_number",
"addr:city",
"addr:block_number",
"addr:conscriptionnumber",
"addr:county",
"addr:country",
"addr:county",
"addr:district",
@ -23,6 +25,7 @@
"addr:street",
"addr:subdistrict",
"addr:suburb",
"addr:town",
"addr:unit"
],
"label": "Address",
@ -61,6 +64,7 @@
"subdistrict!vn": "Ward/Commune/Townlet",
"suburb": "Suburb",
"suburb!jp": "Ward (政令市)",
"town": "Town",
"unit": "Unit"
}
},

View file

@ -0,0 +1,16 @@
{
"key": "aircraft:type",
"type": "semiCombo",
"label": "Type",
"strings": {
"options": {
"military": "Military",
"helicopter": "Helicopter",
"airliner": "Airliner",
"jet": "Jet",
"fixed_wing": "Fixed Wing",
"cargo": "Cargo",
"glider": "Glider"
}
}
}

View file

@ -12,7 +12,9 @@
"bust": "Bust",
"painting": "Painting",
"mosaic": "Mosaic",
"relief": "Relief"
"relief": "Relief",
"stone": "Artistically Worked Stone",
"tilework": "Tile Work"
}
}
}

View file

@ -3,5 +3,6 @@
"type": "typeCombo",
"label": "Type",
"usage": "group",
"placeholder": "Default"
"placeholder": "Default",
"stringsCrossReference": "{bridge_combo}"
}

View file

@ -0,0 +1,10 @@
{
"key": "climbing:bolts",
"type": "number",
"minValue": 0,
"label": "Number of Bolts",
"prerequisiteTag": {
"key": "climbing:sport",
"value": "yes"
}
}

View file

@ -0,0 +1,48 @@
{
"key": "climbing:grade:french",
"type": "combo",
"label": "Grade (French)",
"placeholder": "5c",
"caseSensitive": false,
"customValues": true,
"autoSuggestions": false,
"options": [
"1",
"2",
"3-",
"3",
"3+",
"4a",
"4b",
"4c",
"5a",
"5b",
"5c",
"5c+",
"6a",
"6a+",
"6b",
"6b+",
"6c",
"6c+",
"7a",
"7a+",
"7b",
"7b+",
"7c",
"7c+",
"8a",
"8a+",
"8b",
"8b+",
"8c",
"8c+",
"9a",
"9a+",
"9b",
"9b+",
"9c",
"9c+",
"10a"
]
}

View file

@ -0,0 +1,39 @@
{
"key": "climbing:grade:saxon",
"type": "combo",
"label": "Grade (Saxon)",
"placeholder": "VIIa",
"caseSensitive": true,
"customValues": true,
"autoSuggestions": false,
"options": [
"I",
"II",
"III",
"IV",
"V",
"VI",
"VIIa",
"VIIb",
"VII",
"VIIc",
"VIIIa",
"VIIIb",
"VIIIc",
"IXa",
"IXb",
"IXc",
"Xa",
"Xb",
"Xc",
"XIa",
"XIb",
"XIc",
"XIIa",
"XIIb",
"XIIc",
"XIIIa",
"XIIIb",
"XIIIc"
]
}

View file

@ -0,0 +1,51 @@
{
"key": "climbing:grade:uiaa",
"type": "combo",
"label": "Grade (UIAA)",
"placeholder": "6-",
"caseSensitive": false,
"customValues": true,
"autoSuggestions": false,
"options": [
"1-",
"1",
"1+",
"2-",
"2",
"2+",
"3-",
"3",
"3+",
"4-",
"4",
"4+",
"5-",
"5",
"5+",
"6-",
"6",
"6+",
"7-",
"7",
"7+",
"8-",
"8",
"8+",
"9-",
"9",
"9+",
"10-",
"10",
"10+",
"11-",
"11",
"11+",
"12-",
"12",
"12+",
"13-",
"13",
"13+",
"14-"
]
}

View file

@ -0,0 +1,45 @@
{
"key": "climbing:grade:yds_class",
"type": "combo",
"label": "Grade (YDS)",
"placeholder": "5.10a",
"caseSensitive": false,
"customValues": true,
"autoSuggestions": false,
"options": [
"5",
"5.1",
"5.2",
"5.3",
"5.4",
"5.5",
"5.6",
"5.7",
"5.8",
"5.9",
"5.10a",
"5.10b",
"5.10c",
"5.10d",
"5.11a",
"5.11b",
"5.11c",
"5.11d",
"5.12a",
"5.12b",
"5.12c",
"5.12d",
"5.13a",
"5.13b",
"5.13c",
"5.13d",
"5.14a",
"5.14b",
"5.14c",
"5.14d",
"5.15a",
"5.15b",
"5.15c",
"5.15d"
]
}

View file

@ -0,0 +1,6 @@
{
"key": "climbing:length",
"type": "number",
"minValue": 0,
"label": "Length (Meters)"
}

View file

@ -0,0 +1,5 @@
{
"key": "climbing:sport",
"type": "check",
"label": "Sport climbing (bolted climbing)"
}

View file

@ -0,0 +1,5 @@
{
"key": "climbing:trad",
"type": "check",
"label": "Traditional climbing"
}

View file

@ -2,6 +2,7 @@
"key": "crossing:markings",
"type": "combo",
"label": "{crossing/markings}",
"autoSuggestions": false,
"stringsCrossReference": "{crossing/markings}",
"iconsCrossReference": "{crossing/markings}",
"options": [
@ -15,6 +16,5 @@
"include": [
"BG"
]
},
"autoSuggestions": false
}
}

View file

@ -2,6 +2,9 @@
"key": "crossing:markings",
"type": "combo",
"label": "{crossing/markings}",
"autoSuggestions": false,
"stringsCrossReference": "{crossing/markings}",
"iconsCrossReference": "{crossing/markings}",
"options": [
"zebra",
"yes",
@ -10,9 +13,6 @@
"dashes",
"surface"
],
"autoSuggestions": false,
"iconsCrossReference": "{crossing/markings}",
"stringsCrossReference": "{crossing/markings}",
"locationSet": {
"include": [
"DE",

View file

@ -2,6 +2,9 @@
"key": "crossing:markings",
"type": "combo",
"label": "{crossing/markings}",
"autoSuggestions": false,
"stringsCrossReference": "{crossing/markings}",
"iconsCrossReference": "{crossing/markings}",
"options": [
"zebra",
"dots",
@ -9,9 +12,6 @@
"yes",
"no"
],
"autoSuggestions": false,
"iconsCrossReference": "{crossing/markings}",
"stringsCrossReference": "{crossing/markings}",
"locationSet": {
"include": [
"PL"

View file

@ -2,9 +2,10 @@
"key": "crossing:markings",
"type": "combo",
"label": "{crossing/markings}",
"autoSuggestions": false,
"default": "yes",
"stringsCrossReference": "{crossing/markings}",
"iconsCrossReference": "{crossing/markings}",
"default": "yes",
"options": [
"zebra",
"no",
@ -16,6 +17,5 @@
"include": [
"BG"
]
},
"autoSuggestions": false
}
}

View file

@ -2,6 +2,10 @@
"key": "crossing:markings",
"type": "combo",
"label": "{crossing/markings}",
"autoSuggestions": false,
"default": "yes",
"stringsCrossReference": "{crossing/markings}",
"iconsCrossReference": "{crossing/markings}",
"options": [
"zebra",
"yes",
@ -10,15 +14,11 @@
"dashes",
"surface"
],
"autoSuggestions": false,
"iconsCrossReference": "{crossing/markings}",
"stringsCrossReference": "{crossing/markings}",
"locationSet": {
"include": [
"DE",
"AT",
"CH"
]
},
"default": "yes"
}
}

View file

@ -2,6 +2,10 @@
"key": "crossing:markings",
"type": "combo",
"label": "{crossing/markings}",
"autoSuggestions": false,
"default": "yes",
"stringsCrossReference": "{crossing/markings}",
"iconsCrossReference": "{crossing/markings}",
"options": [
"zebra",
"dots",
@ -9,13 +13,9 @@
"yes",
"no"
],
"autoSuggestions": false,
"iconsCrossReference": "{crossing/markings}",
"stringsCrossReference": "{crossing/markings}",
"locationSet": {
"include": [
"PL"
]
},
"default": "yes"
}
}

View file

@ -2,9 +2,9 @@
"key": "crossing:markings",
"type": "combo",
"label": "{crossing/markings}",
"default": "yes",
"stringsCrossReference": "{crossing/markings}",
"iconsCrossReference": "{crossing/markings}",
"default": "yes",
"locationSet": {
"exclude": [
"BG",

View file

@ -0,0 +1,16 @@
{
"key": "cycle_barrier",
"type": "combo",
"label": "Type",
"customValues": false,
"autoSuggestions": false,
"strings": {
"options": {
"single": "Single",
"double": "Double",
"triple": "Triple",
"diagonal": "Diagonal",
"tilted": "Tilted"
}
}
}

View file

@ -0,0 +1,14 @@
{
"key": "cycle_barrier:installation",
"type": "combo",
"label": "Installation",
"customValues": false,
"autoSuggestions": false,
"strings": {
"options": {
"fixed": "Fixed",
"openable": "Openable",
"removable": "Removable"
}
}
}

View file

@ -36,17 +36,17 @@
"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"
},
"separate": {
"title": "Cycleway Mapped Separately",
"description": "Indicates that cycleway was mapped as a separate geometry"
},
"opposite_lane": {
"title": "(Deprecated) Opposite Bike Lane",
"description": "Please update with oneway, oneway:bicycle, and cycleway:left/right=lane etc."
},
"opposite": {
"title": "(Deprecated) Contraflow Bike Lane",
"description": "Please update with oneway=yes, oneway:bicycle=no, and cycleway:both=no etc."
}
}
},

View file

@ -0,0 +1,10 @@
{
"key": "deflection",
"type": "number",
"label": "Angle",
"increment": 5,
"prerequisiteTag": {
"key": "cycle_barrier",
"value": "diagonal"
}
}

View file

@ -0,0 +1,5 @@
{
"key": "dog",
"type": "check",
"label": "Suitable For Dogs"
}

View file

@ -8,6 +8,7 @@
"main": "Main",
"secondary": "Secondary",
"service": "Service",
"shop": "Shop Entrance",
"exit": "Exit Only",
"entrance": "Entrance Only",
"emergency": "Emergency Exit",

View file

@ -4,5 +4,6 @@
"label": "Hashtags",
"usage": "changeset",
"placeholder": "#example",
"autoSuggestions": false,
"caseSensitive": true
}

View file

@ -1,7 +1,7 @@
{
"key": "internet_access:fee",
"type": "combo",
"label": "Internet Access",
"label": "Internet Access Fee",
"strings": {
"options": {
"no": "Free",

View file

@ -0,0 +1,16 @@
{
"key": "irrigation",
"type": "defaultCheck",
"label": "Center-Pivot Irrigation",
"terms": [
"central pivot irrigation",
"water wheel",
"circle irrigation"
],
"strings": {
"options": {
"undefined": "No",
"pivot": "Yes"
}
}
}

7
data/fields/layer_1.json Normal file
View file

@ -0,0 +1,7 @@
{
"key": "layer",
"type": "number",
"label": "{layer}",
"placeholder": "0",
"default": "1"
}

View file

@ -0,0 +1,9 @@
{
"key": "manufacturer:wikidata",
"keys": [
"manufacturer:wikidata",
"manufacturer:wikipedia"
],
"type": "wikidata",
"label": "Manufacturer Wikidata"
}

View file

@ -1,5 +1,15 @@
{
"key": "map_type",
"type": "typeCombo",
"label": "Type"
"label": "Type",
"strings": {
"options": {
"topo": "Topographical Map",
"street": "Road Map",
"scheme": "Schematic Map",
"toposcope": "Toposcope"
}
},
"autoSuggestions": false,
"customValues": false
}

View file

@ -0,0 +1,6 @@
{
"key": "maxwidth:physical",
"type": "roadheight",
"label": "Width Limit",
"snake_case": false
}

View file

@ -0,0 +1,9 @@
{
"key": "model:wikidata",
"keys": [
"model:wikidata",
"model:wikipedia"
],
"type": "wikidata",
"label": "Model Wikidata"
}

10
data/fields/opening.json Normal file
View file

@ -0,0 +1,10 @@
{
"key": "opening",
"type": "number",
"label": "Opening Width (Meters)",
"snake_case": false,
"prerequisiteTag": {
"key": "cycle_barrier",
"valueNot": "single"
}
}

10
data/fields/overlap.json Normal file
View file

@ -0,0 +1,10 @@
{
"key": "overlap",
"type": "number",
"label": "Overlap Width (Meters)",
"snake_case": false,
"prerequisiteTag": {
"key": "cycle_barrier",
"valueNot": "single"
}
}

View file

@ -0,0 +1,8 @@
{
"key": "panoramax",
"type": "identifier",
"label": "Panoramax Image ID",
"urlFormat": "https://api.panoramax.xyz/#focus=pic&pic={value}",
"pattern": "^[a-zA-Z0-9-]{36,}$",
"universal": true
}

View file

@ -4,19 +4,58 @@
"label": "Type",
"strings": {
"options": {
"surface": "Surface",
"underground": "Underground",
"multi-storey": "Multilevel",
"street_side": "Street-Side",
"lane": "Roadside Lane",
"carports": "Carports",
"garage_boxes": "Garage Boxes",
"rooftop": "Rooftop",
"sheds": "Sheds",
"layby": "Turnout / Lay-By",
"on_kerb": "On Kerb",
"half_on_kerb": "Half On Kerb",
"shoulder": "Shoulder"
"surface": {
"title": "Surface",
"description": "One level of parking on the ground."
},
"street_side": {
"title": "Street-Side",
"description": "Parking directly adjacent to the street (but not on it)."
},
"lane": {
"title": "Roadside Lane",
"description": "Parking on the street (which could be easily converted to a travel lane)."
},
"underground": {
"title": "Underground",
"description": "Underground parking."
},
"multi-storey": {
"title": "Multilevel",
"description": "Two or more levels of parking decks in a building structure."
},
"rooftop": {
"title": "Rooftop",
"description": "One level of a parking deck on top of a building."
},
"carports": {
"title": "Carports",
"description": "Structure used to offer limited protection to vehicles, typically without walls."
},
"garage_boxes": {
"title": "Garage Boxes",
"description": "Private garage with multiple individual boxes for one car each."
},
"sheds": {
"title": "Sheds",
"description": "Private hangars for vehicles."
},
"layby": {
"title": "Turnout / Lay-By",
"description": "Parking at a rest area, alongside a road."
},
"on_kerb": {
"title": "On Kerb",
"description": "Parking on the sidewalk."
},
"half_on_kerb": {
"title": "Half On Kerb",
"description": "Parking partially on the sidewalk."
},
"shoulder": {
"title": "Shoulder",
"description": "Parking on the shoulder."
}
}
},
"autoSuggestions": false,

View file

@ -3,7 +3,7 @@
"type": "identifier",
"label": "SIRET Number",
"urlFormat": "https://annuaire-entreprises.data.gouv.fr/etablissement/{value}",
"pattern": "^[0-9]{9}([1-7][0-9]{3}|0[1-9][0-9]{2}|00[1-9][0-9]|000[1-9])[0-9]$",
"pattern": "^MONACO[A-Z\\d]{5}001|\\d{9}([1-7]\\d{3}|0[1-9]\\d{2}|00[1-9]\\d|000[1-9])\\d$",
"locationSet": {
"include": [
"fr"

View file

@ -0,0 +1,6 @@
{
"key": "roof:height",
"minValue": 0,
"type": "number",
"label": "Roof Height (Meters)"
}

View file

@ -0,0 +1,23 @@
{
"key": "roof:shape",
"type": "combo",
"label": "Roof Shape",
"strings": {
"options": {
"flat": "Flat",
"gabled": "Gabled",
"skillion": "Skillion",
"hipped": "Hipped",
"half-hipped": "Half-Hipped",
"mansard": "Mansard",
"gambrel": "Gambrel",
"pyramidal": "Pyramidal",
"cone": "Cone",
"dome": "Dome",
"onion": "Onion",
"round": "Round"
}
},
"autoSuggestions": true,
"customValues": false
}

View file

@ -5,6 +5,7 @@
"placeholder": "Mountain Hiking, Alpine Hiking...",
"strings": {
"options": {
"strolling": "Strolling",
"hiking": "T1: Hiking",
"mountain_hiking": "T2: Mountain Hiking",
"demanding_mountain_hiking": "T3: Demanding Mountain Hiking",

View file

@ -1,8 +1,8 @@
{
"key": "source",
"type": "semiCombo",
"universal": true,
"label": "Sources",
"usage": "changeset",
"snake_case": false,
"caseSensitive": true,
"strings": {

10
data/fields/spacing.json Normal file
View file

@ -0,0 +1,10 @@
{
"key": "spacing",
"type": "number",
"label": "Distance Between Barriers (Meters)",
"snake_case": false,
"prerequisiteTag": {
"key": "cycle_barrier",
"valueNot": "single"
}
}

View file

@ -3,5 +3,6 @@
"type": "typeCombo",
"label": "Type",
"usage": "group",
"placeholder": "Default"
"placeholder": "Default",
"stringsCrossReference": "{tunnel_combo}"
}

View file

@ -10,6 +10,7 @@
"coffee": "Coffee",
"condoms": "Condoms",
"drinks": "Drinks",
"e-cigarettes": "E-Cigarettes",
"eggs": "Eggs",
"electronics": "Electronics",
"elongated_coin": "Souvenir Coins",

View file

@ -0,0 +1,13 @@
# About `@templates`
Presets in `@templates` are a convention for a _virtual_ presets that are only used from inside other presets.
The only property that really matter for these special presets are the `fields`.
All other properties can be copied from existing template presets and ignored. They are default values that are meant to match all cases where they might be referenced.
## How to use
Inside another preset, reference the template or any other preset - like `"{@templates/internet_access}"` in `fields` or `moreFields`. This will "copy" all the listed fields from the file `data/presets/@templates/internet_access.json`.
You can only "copy" (template) `fields` to (preset) `fields` and (template) `moreFields` to (preset) `moreFields`.

View file

@ -0,0 +1,23 @@
{
"moreFields": [
"oneway",
"access",
"segregated"
],
"geometry": [
"line"
],
"tags": {
"@template": "crossing/bicycle_more"
},
"searchable": false,
"locationSet": {
"include": [
"999"
],
"exclude": [
"999"
]
},
"name": "{point}"
}

View file

@ -0,0 +1,23 @@
{
"fields": [
"crossing/island",
"crossing_raised"
],
"geometry": [
"point",
"line"
],
"tags": {
"@template": "crossing/defaults"
},
"searchable": false,
"locationSet": {
"include": [
"999"
],
"exclude": [
"999"
]
},
"name": "{point}"
}

View file

@ -0,0 +1,22 @@
{
"moreFields": [
"smoothness",
"lit"
],
"geometry": [
"line"
],
"tags": {
"@template": "crossing/geometry_way_more"
},
"searchable": false,
"locationSet": {
"include": [
"999"
],
"exclude": [
"999"
]
},
"name": "{point}"
}

View file

@ -6,7 +6,8 @@
"crossing/markings-PL"
],
"geometry": [
"point"
"point",
"line"
],
"tags": {
"@template": "crossing/markings"

View file

@ -6,7 +6,8 @@
"crossing/markings_yes-PL"
],
"geometry": [
"point"
"point",
"line"
],
"tags": {
"@template": "crossing/markings_yes"

View file

@ -0,0 +1,22 @@
{
"fields": [
"surface",
"smoothness"
],
"geometry": [
"line"
],
"tags": {
"@template": "crossing/surfacequality"
},
"searchable": false,
"locationSet": {
"include": [
"999"
],
"exclude": [
"999"
]
},
"name": "{point}"
}

View file

@ -0,0 +1,24 @@
{
"fields": [
"button_operated",
"traffic_signals/sound",
"traffic_signals/vibration"
],
"geometry": [
"point",
"line"
],
"tags": {
"@template": "crossing/traffic_signal"
},
"searchable": false,
"locationSet": {
"include": [
"999"
],
"exclude": [
"999"
]
},
"name": "{point}"
}

View file

@ -0,0 +1,24 @@
{
"moreFields": [
"traffic_signals/arrow",
"traffic_signals/countdown",
"traffic_signals/minimap"
],
"geometry": [
"point",
"line"
],
"tags": {
"@template": "crossing/traffic_signal_more"
},
"searchable": false,
"locationSet": {
"include": [
"999"
],
"exclude": [
"999"
]
},
"name": "{point}"
}

View file

@ -12,7 +12,8 @@
"moreFields": [
"{@templates/poi}",
"address",
"covered"
"covered",
"ref"
],
"geometry": [
"point",

View file

@ -21,5 +21,8 @@
"tags": {
"amenity": "boat_rental"
},
"terms": [
"boat hire"
],
"name": "Boat Rental"
}

View file

@ -0,0 +1,30 @@
{
"icon": "maki-cafe",
"geometry": [
"point",
"area"
],
"tags": {
"amenity": "cafe",
"cuisine": "tea"
},
"reference": {
"key": "amenity",
"value": "cafe"
},
"terms": [
"teahouse",
"tea house",
"tearoom",
"tea room",
"tea",
"tea drink",
"black tea",
"green tea",
"yellow tea",
"white tea",
"oolong tea",
"hot drinks"
],
"name": "Teahouse"
}

View file

@ -11,6 +11,7 @@
"moreFields": [
"bottle",
"covered",
"dog_check",
"indoor",
"level",
"lit"

View file

@ -26,6 +26,7 @@
"outdoor_seating",
"smoking",
"takeaway",
"toilets",
"fhrs/id-GB",
"website/menu"
],

View file

@ -1,5 +1,5 @@
{
"icon": "maki-shop",
"icon": "fas-store",
"fields": [
"name",
"operator",

View file

@ -14,5 +14,8 @@
"tags": {
"amenity": "motorcycle_parking"
},
"terms": [
"motorbike parking"
],
"name": "Motorcycle Parking"
}

View file

@ -32,9 +32,12 @@
"area"
],
"terms": [
"book sharing",
"bookcrossing",
"book exchange shelf",
"book sharing",
"book swap",
"library",
"little free library",
"share a book",
"sharing books"
],

View file

@ -36,7 +36,7 @@
},
"reference": {
"key": "recycling_type",
"value": "*"
"value": "centre"
},
"name": "Recycling Center"
}

View file

@ -34,8 +34,8 @@
"recycling_type": "container"
},
"reference": {
"key": "amenity",
"value": "recycling"
"key": "recycling_type",
"value": "container"
},
"aliases": [
"Recycling Container"

View file

@ -24,6 +24,8 @@
},
"terms": [
"community",
"group home",
"halfway house",
"nonprofit",
"social services"
],

View file

@ -27,7 +27,12 @@
"amenity": "telephone"
},
"terms": [
"phone"
"payphone",
"pay phone",
"phone booth",
"phone",
"public phone",
"public telephone"
],
"name": "Telephone"
}

View file

@ -20,5 +20,5 @@
"amenity": "theatre",
"theatre:type": "amphi"
},
"name": "Amphitheatre"
"name": "Amphitheater"
}

View file

@ -1,5 +1,5 @@
{
"icon": "temaki-vending_machine",
"icon": "temaki-vending_tickets",
"fields": [
"ref",
"operator"

View file

@ -30,6 +30,8 @@
"privy",
"head",
"latrine",
"public toilet",
"public restroom",
"WC",
"W.C."
],

View file

@ -0,0 +1,34 @@
{
"icon": "temaki-veterinary_care",
"fields": [
"{amenity/pharmacy}"
],
"moreFields": [
"{amenity/pharmacy}"
],
"geometry": [
"point",
"area"
],
"terms": [
"animal medication",
"animal pharmacy",
"pet clinic",
"pet doctor",
"pet meds",
"pet pharmacy",
"pet prescriptions",
"veterinarian",
"veterinary compounding",
"veterinary pharmacy",
"veterinary supplies",
"vet pharmacy"
],
"aliases": [
"Animal Pharmacy"
],
"tags": {
"amenity": "veterinary_pharmacy"
},
"name": "Veterinary Pharmacy"
}

View file

@ -1,7 +1,17 @@
{
"icon": "temaki-cycle_barrier",
"fields": [
"access"
"access",
"wheelchair",
"cycle_barrier",
"maxwidth/physical",
"opening",
"spacing",
"overlap",
"deflection"
],
"moreFields": [
"cycle_barrier/installation"
],
"geometry": [
"vertex"
@ -10,6 +20,9 @@
"barrier": "cycle_barrier"
},
"terms": [
"chicane",
"bike chicane",
"bike barrier",
"bicycle barrier",
"bicycling barrier",
"bike gates",

View file

@ -16,6 +16,7 @@
"height barrier",
"height restriction barrier",
"maxheight",
"max height",
"maximum height measurer"
],
"name": "Height Restrictor"

View file

@ -12,5 +12,8 @@
"tags": {
"barrier": "motorcycle_barrier"
},
"terms": [
"motorbike barrier"
],
"name": "Motorcycle Barrier"
}

View file

@ -19,6 +19,8 @@
"not/name",
"operator",
"roof/colour",
"roof/shape",
"roof/height",
"smoking",
"wheelchair"
],

View file

@ -1,8 +1,25 @@
{
"icon": "maki-shelter",
"fields": [
"{building}",
"layer"
"building",
"height",
"layer_1"
],
"moreFields": [
"address",
"architect",
"building/colour",
"building/levels",
"building/levels/underground",
"building/material",
"building/prefabricated",
"ele",
"gnis/feature_id-US",
"not/name",
"operator",
"roof/colour",
"roof/shape",
"roof/height"
],
"geometry": [
"area"
@ -10,10 +27,6 @@
"tags": {
"building": "roof"
},
"addTags": {
"building": "roof",
"layer": "1"
},
"matchScore": 0.5,
"name": "Roof"
}

View file

@ -6,7 +6,9 @@
"height",
"building/material",
"building/colour",
"roof/colour"
"roof/colour",
"roof/height",
"roof/shape"
],
"moreFields": [
"layer"

View file

@ -0,0 +1,39 @@
{
"icon": "temaki-abseiling",
"geometry": [
"point",
"vertex"
],
"fields": [
"name",
"climbing/sport",
"climbing/trad",
"climbing/bolts"
],
"moreFields": [
"climbing/grade/uiaa",
"climbing/grade/french",
"climbing/grade/saxon",
"climbing/grade/yds_class",
"website",
"climbing/length",
"description"
],
"terms": [
"rock climbing route",
"sport climbing",
"route bottom",
"climbing point",
"route start",
"climbing area",
"climbing crag"
],
"tags": {
"climbing": "route_bottom"
},
"addTags": {
"sport": "climbing",
"climbing": "route_bottom"
},
"name": "Climbing Route Start"
}

View file

@ -1,5 +1,5 @@
{
"icon": "temaki-tools",
"icon": "fas-couch",
"geometry": [
"point",
"area"

View file

@ -4,13 +4,13 @@
"ref",
"fire_hydrant/type",
"colour",
"fire_hydrant/position",
"water_source",
"couplings"
],
"moreFields": [
"fire_hydrant/diameter",
"fire_hydrant/pressure",
"fire_hydrant/position",
"level",
"survey/date"
],

View file

@ -9,6 +9,7 @@
"vertex"
],
"terms": [
"lifering",
"life buoy",
"kisby ring",
"kisbie ring",

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