262 lines
No EOL
6.3 KiB
JSON
262 lines
No EOL
6.3 KiB
JSON
{
|
|
"id": "note",
|
|
"name": {
|
|
"en": "OpenStreetMap notes"
|
|
},
|
|
"description": "This layer shows notes on OpenStreetMap. Having this layer in your theme will trigger the 'add new note' functionality in the 'addNewPoint'-popup (or if your theme has no presets, it'll enable adding notes)",
|
|
"source": {
|
|
"osmTags": "id~*",
|
|
"geoJson": "https://api.openstreetmap.org/api/0.6/notes.json?limit=10000&closed=7&bbox={x_min},{y_min},{x_max},{y_max}",
|
|
"geoJsonZoomLevel": 12,
|
|
"maxCacheAge": 0
|
|
},
|
|
"minzoom": 10,
|
|
"title": {
|
|
"render": {
|
|
"en": "Note"
|
|
},
|
|
"mappings": [
|
|
{
|
|
"if": "closed_at~*",
|
|
"then": {
|
|
"en": "Closed note"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"calculatedTags": [
|
|
"_total_comments:=feat.get('comments').length",
|
|
"_first_comment:=feat.get('comments')[0].text.toLowerCase()",
|
|
"_opened_by_anonymous_user:=feat.get('comments')[0].user === undefined",
|
|
"_first_user:=feat.get('comments')[0].user",
|
|
"_first_user_lc:=feat.get('comments')[0].user?.toLowerCase()",
|
|
"_first_user_id:=feat.get('comments')[0].uid",
|
|
"_last_user_lc:=(() => {const comms = feat.get('comments'); return comms[comms.length - 1].user?.toLowerCase()})()",
|
|
"_is_import_note:=(() => {const lines = feat.properties['_first_comment'].split('\\n'); const matchesMapCompleteURL = lines.map(l => l.match(\".*https://mapcomplete.osm.be/\\([a-zA-Z_-]+\\)\\(.html\\).*#import\")); const matchedIndexes = matchesMapCompleteURL.map((doesMatch, i) => [doesMatch !== null, i]).filter(v => v[0]).map(v => v[1]); return matchedIndexes[0] })()"
|
|
],
|
|
"titleIcons": [
|
|
{
|
|
"render": "<a href='https://openstreetmap.org/note/{id}' target='_blank'><img src='./assets/svg/osm-logo-us.svg'></a>"
|
|
}
|
|
],
|
|
"tagRenderings": [
|
|
{
|
|
"id": "conversation",
|
|
"render": "{visualize_note_comments()}"
|
|
},
|
|
{
|
|
"id": "add_image",
|
|
"render": "{add_image_to_note()}"
|
|
},
|
|
{
|
|
"id": "comment",
|
|
"render": "{add_note_comment()}"
|
|
},
|
|
{
|
|
"id": "report-contributor",
|
|
"render": {
|
|
"en": "<a href='https://www.openstreetmap.org/reports/new?reportable_id={_first_user_id}&reportable_type=User' target='_blank' class='subtle'>Report {_first_user} as spam</a>"
|
|
},
|
|
"condition": "_opened_by_anonymous_user=false"
|
|
},
|
|
{
|
|
"id": "report-note",
|
|
"render": {
|
|
"en": "<a href='https://www.openstreetmap.org/reports/new?reportable_id={id}&reportable_type=Note' target='_blank'>Report this note as spam or inappropriate</a>"
|
|
}
|
|
}
|
|
],
|
|
"mapRendering": [
|
|
{
|
|
"location": [
|
|
"point",
|
|
"centroid"
|
|
],
|
|
"icon": {
|
|
"render": "./assets/svg/note.svg",
|
|
"mappings": [
|
|
{
|
|
"if": "closed_at~*",
|
|
"then": "./assets/svg/resolved.svg"
|
|
}
|
|
]
|
|
},
|
|
"iconSize": "40,40,bottom",
|
|
"iconBadges": [
|
|
{
|
|
"if": "_total_comments>1",
|
|
"then": "speech_bubble"
|
|
},
|
|
{
|
|
"if": "_is_import_note~*",
|
|
"then": "addSmall"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"filter": [
|
|
{
|
|
"id": "search",
|
|
"options": [
|
|
{
|
|
"osmTags": "_first_comment~.*{search}.*",
|
|
"fields": [
|
|
{
|
|
"name": "search"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "Should mention {search} in the first comment"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "not",
|
|
"options": [
|
|
{
|
|
"osmTags": "_first_comment!~.*{search}.*",
|
|
"fields": [
|
|
{
|
|
"name": "search"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "Should <b>not</b> mention {search} in the first comment"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "opened_by",
|
|
"options": [
|
|
{
|
|
"osmTags": "_first_user_lc~.*{search}.*",
|
|
"fields": [
|
|
{
|
|
"name": "search"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "Opened by contributor {search}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "not_opened_by",
|
|
"options": [
|
|
{
|
|
"osmTags": "_first_user_lc!~.*{search}.*",
|
|
"fields": [
|
|
{
|
|
"name": "search"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "<b>Not</b> opened by contributor {search}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edited_by",
|
|
"options": [
|
|
{
|
|
"osmTags": "_last_user_lc~.*{search}.*",
|
|
"fields": [
|
|
{
|
|
"name": "search"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "Last edited by contributor {search}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "not_edited_by",
|
|
"options": [
|
|
{
|
|
"osmTags": "_last_user_lc!~.*{search}.*",
|
|
"fields": [
|
|
{
|
|
"name": "search"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "Opened after {search}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "opened_before",
|
|
"options": [
|
|
{
|
|
"osmTags": "date_created<{search}",
|
|
"fields": [
|
|
{
|
|
"name": "search",
|
|
"type": "date"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "Created before {search}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "opened_after",
|
|
"options": [
|
|
{
|
|
"osmTags": "date_created>{search}",
|
|
"fields": [
|
|
{
|
|
"name": "search",
|
|
"type": "date"
|
|
}
|
|
],
|
|
"question": {
|
|
"en": "Created after {search}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "anonymous",
|
|
"options": [
|
|
{
|
|
"osmTags": "_opened_by_anonymous_user=true",
|
|
"question": {
|
|
"en": "Only show notes opened by an anonymous contributor"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "is_open",
|
|
"options": [
|
|
{
|
|
"osmTags": "closed_at=",
|
|
"question": {
|
|
"en": "Only show open notes"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "no_imports",
|
|
"options": [
|
|
{
|
|
"osmTags": "_is_import_note=",
|
|
"question": {
|
|
"en": "Hide import notes"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |