Main categories of OpenStreetBrowser
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

634 lines
24 KiB

3 months ago
3 months ago
  1. name:
  2. ca: Camins peatonals
  3. en: Footways
  4. fr: Cheminements piétonniers
  5. hu: Gyalogutak
  6. it: Percorsi pedonali
  7. pl: Chodniki
  8. pt-br: Vias pedonais
  9. pt: Vias pedonais
  10. tr: Yaya Yolları
  11. query:
  12. 15: |
  13. (
  14. way[highway~"^(footway|pedestrian|steps|path|platform)$"];
  15. way[highway=cycleway][foot~"^(yes|designated)$"];
  16. way[footway];
  17. way["area:highway"~"^(footway|pedestrian|steps|path|platform|sidewalk)$"];
  18. relation["area:highway"~"^(footway|pedestrian|steps|path|platform|sidewalk)$"];
  19. relation[type=multipolygon]["highway"~"^(footway|pedestrian|steps|path|platform|sidewalk)$"];
  20. way[sidewalk~"^(yes|both|left|right|no|separate|none)$"];
  21. way["sidewalk:left"~"(yes|no|separate)$"];
  22. way["sidewalk:right"~"(yes|no|separate)$"];
  23. way["sidewalk:both"~"(yes|no|separate)$"];
  24. nwr["railway"="platform"];
  25. node[highway=crossing];
  26. )
  27. feature:
  28. pre: |
  29. {% set sides = ['default'] %}
  30. {% set sidewalk_left = null %}{% set sidewalk_right = null %}
  31. {% set cycleway = false %}
  32. {% set category = tags.highway %}
  33. {% if attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['yes', 'both', 'left', 'both', 'right'] or tags.footway == 'sidewalk' %}
  34. {% set category = 'sidewalk' %}
  35. {% endif %}
  36. {% if tags.highway in ['pedestrian', 'footway','steps','path','cycleway','platform'] %}
  37. {% set sides = sides|merge(['main']) %}
  38. {% endif %}
  39. {% if tags.highway in ['cycleway'] %}
  40. {% set category = 'footway' %}
  41. {% set cycleway = true %}
  42. {% set sides = sides|merge(['cycleway']) %}
  43. {% endif %}
  44. {% if tags.highway in ['path'] and tags.bicycle in ['yes', 'designated'] %}
  45. {% set cycleway = true %}
  46. {% set sides = sides|merge(['cycleway']) %}
  47. {% endif %}
  48. {% if attribute(tags, 'area:highway') in ['footway'] %}
  49. {% set sides = sides|merge(['main']) %}
  50. {% set category = attribute(tags, 'area:highway') %}
  51. {% endif %}
  52. {% if tags.railway in ['platform'] %}
  53. {% set sides = sides|merge(['main']) %}
  54. {% set category = 'platform' %}
  55. {% endif %}
  56. {% if tags.footway == 'crossing' %}
  57. {% set category = 'crossing' %}
  58. {% endif %}
  59. {% if tags.sidewalk in ['no', 'none'] %}
  60. {% set sidewalk_left = 'no' %}
  61. {% set sidewalk_right = 'no' %}
  62. {% set sides = sides|merge(['leftr', 'rightr']) %}
  63. {% endif %}
  64. {% if tags.sidewalk == 'separate' %}
  65. {% set sidewalk_left = 'separate' %}
  66. {% set sidewalk_right = 'separate' %}
  67. {% set sides = sides|merge(['leftr', 'rightr']) %}
  68. {% endif %}
  69. {% if attribute(tags, 'sidewalk:both') %}
  70. {% set sidewalk_left = attribute(tags, 'sidewalk:both') %}
  71. {% set sidewalk_right = attribute(tags, 'sidewalk:both') %}
  72. {% set sides = sides|merge(['leftr', 'rightr']) %}
  73. {% endif %}
  74. {% if attribute(tags, 'sidewalk:left') %}
  75. {% set sidewalk_left = attribute(tags, 'sidewalk:left') %}
  76. {% set sides = sides|merge(['leftr']) %}
  77. {% endif %}
  78. {% if attribute(tags, 'sidewalk:left') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['left', 'both'] %}
  79. {% set sidewalk_left = 'yes' %}
  80. {% set sides = sides|merge(['leftr', 'left']) %}
  81. {% endif %}
  82. {% if attribute(tags, 'sidewalk:right') %}
  83. {% set sidewalk_right = attribute(tags, 'sidewalk:right') %}
  84. {% set sides = sides|merge(['rightr']) %}
  85. {% endif %}
  86. {% if attribute(tags, 'sidewalk:right') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['right', 'both'] %}
  87. {% set sidewalk_right = 'yes' %}
  88. {% set sides = sides|merge(['rightr', 'right']) %}
  89. {% endif %}
  90. {% if type == 'node' %}
  91. {% set sides = ['node'] %}
  92. {% endif %}
  93. description: |
  94. {% if tags.footway %}
  95. {{ tagTrans('footway', tags.footway) }}
  96. {% elseif tags.highway %}
  97. {% if tags.highway in ['path', 'cycleway'] and tags.segregated %}
  98. {{ tagTrans('highway', 'cycleway segregated=' ~ tags.segregated) }}
  99. {% else %}
  100. {{ tagTrans('highway', tags.highway) }}
  101. {% endif %}
  102. {% elseif tags.railway %}
  103. {{ tagTrans('railway', tags.railway) }}
  104. {% elseif attribute(tags, 'area:highway') %}
  105. {{ tagTrans('highway', attribute(tags, 'area:highway')) }}
  106. {% endif %}
  107. body: |
  108. <ul>
  109. {% if 'main' in sides or 'node' in sides %}
  110. {% if tags.crossing %}<li>
  111. <span class='key'>{{ keyTrans('crossing') }}:</span>
  112. <span class='value'>{{ tagTrans('crossing', tags.crossing) }}</span>
  113. </li>{% endif %}
  114. {% if tags.width %}<li>
  115. <span class='key'>{{ keyTrans('width') }}:</span>
  116. <span class='value'>{{ tags.width|formatUnit }}</span>
  117. </li>{% endif %}
  118. {% if tags.wheelchair %}<li>
  119. <span class='key'>{{ keyTrans('wheelchair') }}:</span>
  120. <span class='value'>{{ tagTrans('wheelchair', tags.wheelchair) }}</span>
  121. </li>{% endif %}
  122. {% if tags.surface %}<li>
  123. <span class='key'>{{ keyTrans('surface') }}:</span>
  124. <span class='value'>{{ tagTrans('surface', tags.surface) }}</span>
  125. </li>{% endif %}
  126. {% if tags.tactile_paving %}<li>
  127. <span class='key'>{{ keyTrans('tactile_paving') }}:</span>
  128. <span class='value'>{{ tagTrans('tactile_paving', tags.tactile_paving) }}</span>
  129. </li>{% endif %}
  130. {% if tags.smoothness %}<li>
  131. <span class='key'>{{ keyTrans('smoothness') }}:</span>
  132. <span class='value'>{{ tagTrans('smoothness', tags.smoothness) }}</span>
  133. </li>{% endif %}
  134. {% set v = tags.incline %}
  135. {% if v %}<li>
  136. <span class='key'>{{ keyTrans('incline') }}:</span>
  137. <span class='value'>{{ v in ['up', 'down', 'yes'] ? tagTrans('incline', v) : v }}</span>
  138. </li>{% endif %}
  139. {% endif %}
  140. {% if attribute(tags, 'sidewalk:left')|default(attribute(tags, 'sidewalk:both')) or tags.sidewalk in ['left', 'both'] %}
  141. <li>{{ keyTrans('sidewalk:left') }}:<ul>
  142. <li>{{ tagTrans('sidewalk', attribute(tags, 'sidewalk:left')|default(attribute(tags, 'sidewalk:both'))) }}</li>
  143. {% if attribute(tags, 'sidewalk:left:width')|default(attribute(tags, 'sidewalk:both:width')) %}<li>
  144. <span class='key'>{{ keyTrans('width') }}:</span>
  145. <span class='value'>{{ attribute(tags, 'sidewalk:left:width')|default(attribute(tags, 'sidewalk:both:width'))|formatUnit }}</span>
  146. </li>{% endif %}
  147. {% if attribute(tags, 'sidewalk:left:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair')) %}<li>
  148. <span class='key'>{{ keyTrans('wheelchair') }}:</span>
  149. <span class='value'>{{ tagTrans('wheelchair', attribute(tags, 'sidewalk:left:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair'))) }}</span>
  150. </li>{% endif %}
  151. {% if attribute(tags, 'sidewalk:left:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface')) %}<li>
  152. <span class='key'>{{ keyTrans('surface') }}:</span>
  153. <span class='value'>{{ tagTrans('surface', attribute(tags, 'sidewalk:left:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface'))) }}</span>
  154. </li>{% endif %}
  155. {% if attribute(tags, 'sidewalk:left:tactile_paving') %}<li>
  156. <span class='key'>{{ keyTrans('tactile_paving') }}:</span>
  157. <span class='value'>{{ tagTrans('tactile_paving', attribute(tags, 'sidewalk:left:tactile_paving')|default(attribute(tags, 'sidewalk:both:tactile_paving'))) }}</span>
  158. </li>{% endif %}
  159. {% if attribute(tags, 'sidewalk:left:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness')) %}<li>
  160. <span class='key'>{{ keyTrans('smoothness') }}:</span>
  161. <span class='value'>{{ tagTrans('smoothness', attribute(tags, 'sidewalk:left:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness'))) }}</span>
  162. </li>{% endif %}
  163. {% set v = attribute(tags, 'sidewalk:left:incline')|default(attribute(tags, 'sidewalk:both:incline'))|default(tags.incline) %}
  164. {% if v %}<li>
  165. <span class='key'>{{ keyTrans('incline') }}:</span>
  166. <span class='value'>{{ v in ['up', 'down', 'yes'] ? tagTrans('incline', v) : v }}</span>
  167. </li>{% endif %}
  168. </ul></li>
  169. {% endif %}
  170. {% if attribute(tags, 'sidewalk:right')|default(attribute(tags, 'sidewalk:both')) or tags.sidewalk in ['right', 'both'] %}
  171. <li>{{ keyTrans('sidewalk:right') }}:<ul>
  172. <li>{{ tagTrans('sidewalk', attribute(tags, 'sidewalk:right')|default(attribute(tags, 'sidewalk:both'))) }}</li>
  173. {% if attribute(tags, 'sidewalk:right:width')|default(attribute(tags, 'sidewalk:both:width')) %}<li>
  174. <span class='key'>{{ keyTrans('width') }}:</span>
  175. <span class='value'>{{ attribute(tags, 'sidewalk:right:width')|default(attribute(tags, 'sidewalk:both:width'))|formatUnit }}</span>
  176. </li>{% endif %}
  177. {% if attribute(tags, 'sidewalk:right:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair')) %}<li>
  178. <span class='key'>{{ keyTrans('wheelchair') }}:</span>
  179. <span class='value'>{{ tagTrans('wheelchair', attribute(tags, 'sidewalk:right:wheelchair')|default(attribute(tags, 'sidewalk:both:wheelchair'))) }}</span>
  180. </li>{% endif %}
  181. {% if attribute(tags, 'sidewalk:right:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface')) %}<li>
  182. <span class='key'>{{ keyTrans('surface') }}:</span>
  183. <span class='value'>{{ tagTrans('surface', attribute(tags, 'sidewalk:right:surface')|default(attribute(tags, 'sidewalk:both:surface'))|default(attribute(tags, 'sidewalk:surface'))) }}</span>
  184. </li>{% endif %}
  185. {% if attribute(tags, 'sidewalk:right:tactile_paving') %}<li>
  186. <span class='key'>{{ keyTrans('tactile_paving') }}:</span>
  187. <span class='value'>{{ tagTrans('tactile_paving', attribute(tags, 'sidewalk:right:tactile_paving')|default(attribute(tags, 'sidewalk:both:tactile_paving'))) }}</span>
  188. </li>{% endif %}
  189. {% if attribute(tags, 'sidewalk:right:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness')) %}<li>
  190. <span class='key'>{{ keyTrans('smoothness') }}:</span>
  191. <span class='value'>{{ tagTrans('smoothness', attribute(tags, 'sidewalk:right:smoothness')|default(attribute(tags, 'sidewalk:both:smoothness'))|default(attribute(tags, 'sidewalk:smoothness'))) }}</span>
  192. </li>{% endif %}
  193. {% set v = attribute(tags, 'sidewalk:right:incline')|default(attribute(tags, 'sidewalk:both:incline'))|default(tags.incline) %}
  194. {% if i %}<li>
  195. <span class='key'>{{ keyTrans('incline') }}:</span>
  196. <span class='value'>{{ v in ['up', 'down', 'yes'] ? tagTrans('incline', v) : v }}</span>
  197. </li>{% endif %}
  198. </ul></li>
  199. {% endif %}
  200. </ul>
  201. markerSymbol: ""
  202. listMarkerSymbol: |
  203. {% if tags.area == 'yes' or tags.type == 'multipolygon' or attribute(tags, 'area:highway') %}
  204. polygon
  205. {% elseif 'node' in sides %}
  206. {{ markerCircle({ width: 0, radius: 5, fillOpacity: 1, fill: true, color: const.categories[category].color }) }}
  207. {% else %}
  208. {{ markerLine({
  209. 'styles': sides|join(','),
  210. 'style:main': {
  211. width: cycleway and tags.segregated == 'yes' ? 2 : const.categories[category].width|default(3),
  212. color: const.categories[category].color,
  213. dashArray: tags.highway == 'steps' ? '3,3' :
  214. cycleway and tags.segregated != 'yes' ? '8,8' :
  215. '',
  216. lineCap: tags.highway == 'steps' or (cycleway and tags.segregated != 'yes') ? 'butt' : 'round',
  217. offset: cycleway and tags.segregated == 'yes' ? 1 : 0
  218. },
  219. 'style:cycleway': {
  220. fill: false,
  221. width: cycleway and tags.segregated == 'yes' ? 2 : 3,
  222. color: const.categories.cycleway.color,
  223. dashArray: cycleway and tags.segregated != 'yes' ? '8,8' : '',
  224. dashOffset: 8,
  225. lineCap: cycleway and tags.segregated != 'yes' ? 'butt' : 'round',
  226. offset: cycleway and tags.segregated == 'yes' ? -1 : 0
  227. },
  228. 'style:left': {
  229. width: 3,
  230. offset: -6,
  231. color: const.categories.sidewalk.color
  232. },
  233. 'style:right': {
  234. width: 3,
  235. offset: 6,
  236. color: const.categories.sidewalk.color
  237. },
  238. 'style:leftr': {
  239. width: sidewalk_left ? 5 : 0,
  240. offset: -2.5,
  241. opacity: 0.3,
  242. dashArray: '1,10',
  243. lineCap: butt,
  244. color: sidewalk_left in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color
  245. },
  246. 'style:rightr': {
  247. width: sidewalk_right ? 5 : 0,
  248. offset: 2.5,
  249. opacity: 0.3,
  250. dashArray: '1,10',
  251. lineCap: butt,
  252. color: sidewalk_right in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color
  253. },
  254. }) }}
  255. {% endif %}
  256. style:
  257. opacity: 0
  258. fillOpacity: 0
  259. width: 5
  260. style:node:
  261. width: 0
  262. radius: 5
  263. fillOpacity: 1
  264. fill: true
  265. color: |
  266. {{ const.categories[category].color }}
  267. style:main:
  268. fill: |
  269. {% if tags.area == 'yes' or tags.type == 'multipolygon' or attribute(tags, 'area:highway') %}true{% else %}false{% endif %}
  270. width: |
  271. {% if attribute(tags, 'area:highway') %}
  272. 0
  273. {% elseif tags.area == 'yes' or tags.type == 'multipolygon' %}
  274. 1
  275. {% elseif cycleway and tags.segregated == 'yes' %}
  276. 3
  277. {% else %}
  278. {{ const.categories[category].width|default(3) }}
  279. {% endif %}
  280. color: |
  281. {{ const.categories[category].color }}
  282. dashArray: |
  283. {% if tags.highway == 'steps' %}
  284. 3,3
  285. {% elseif cycleway and tags.segregated != 'yes' %}
  286. 8,8
  287. {% endif %}
  288. lineCap: |
  289. {% if tags.highway == 'steps' or (cycleway and tags.segregated != 'yes') %}butt{% else %}round{% endif %}
  290. offset: |
  291. {% if cycleway and tags.segregated == 'yes' %}1.5{% else %}0{% endif %}
  292. style:cycleway:
  293. fill: false
  294. width: 3
  295. color: |
  296. {{ const.categories.cycleway.color }}
  297. dashArray: |
  298. {% if cycleway and tags.segregated != 'yes' %}
  299. 8,8
  300. {% endif %}
  301. dashOffset: 8
  302. lineCap: |
  303. {% if cycleway and tags.segregated != 'yes' %}butt{% else %}round{% endif %}
  304. offset: |
  305. {% if cycleway and tags.segregated == 'yes' %}-1.5{% else %}0{% endif %}
  306. style:left:
  307. fill: false
  308. width: 3
  309. offset: |
  310. {{ -5 / map.metersPerPixel }}
  311. color: |
  312. {{ const.categories.sidewalk.color }}
  313. style:right:
  314. fill: false
  315. width: 3
  316. offset: |
  317. {{ 5 / map.metersPerPixel }}
  318. color: |
  319. {{ const.categories.sidewalk.color }}
  320. style:leftr:
  321. fill: false
  322. width: |
  323. {{ sidewalk_left ? 5 / map.metersPerPixel : 0 }}
  324. offset: |
  325. {{ -2.5 / map.metersPerPixel }}
  326. opacity: 0.3
  327. dashArray: '1,10'
  328. lineCap: butt
  329. color: |
  330. {{ sidewalk_left in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color }}
  331. style:rightr:
  332. fill: false
  333. width: |
  334. {{ sidewalk_right ? 5 / map.metersPerPixel : 0 }}
  335. offset: |
  336. {{ 2.5 / map.metersPerPixel }}
  337. opacity: 0.3
  338. dashArray: '1,10'
  339. lineCap: butt
  340. color: |
  341. {{ sidewalk_right in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color }}
  342. styles: |
  343. {{ sides|join(',') }}
  344. info: |
  345. <table>
  346. {% for k, d in const.categories if k != 'cycleway' %}
  347. <tr>
  348. <td>{{ markerLine({
  349. width: d.width|default(3),
  350. color: d.color,
  351. dashArray: d.dashArray
  352. }) }}</td>
  353. <td>{{ tagTrans(d.key|default('highway'), k) }}</td>
  354. </tr>
  355. {% endfor %}
  356. <tr>
  357. <td>{{ markerPolygon({
  358. styles: 'default',
  359. style: {
  360. width: 1,
  361. color: const.categories.footway.color,
  362. fillColor: const.categories.footway.color
  363. }
  364. }) }}</td>
  365. <td>{{ tagTrans('highway', 'footway') }} ({{ keyTrans('area') }})</td>
  366. </tr>
  367. <tr>
  368. <td>
  369. <svg anchorx="13" anchory="8" width="25" height="19">
  370. <rect x="3" y="0" width="18" height="19" style="stroke-width: 0;fill: #ab00ff;fill-opacity: 0.2;"></rect>
  371. <line x1="3" y1="10" x2="21" y2="10" style="stroke: #ab00ff;stroke-width: 3;stroke-dasharray: undefined;stroke-dasharray: undefined;fill: #ab00ff;fill-opacity: 0.2;"></line>
  372. </svg>
  373. </td>
  374. <td>{{ tagTrans('highway', 'footway') }} ({{ keyTrans('area:highway') }})</td>
  375. </tr>
  376. <tr>
  377. <td>{{ markerCircle({
  378. width: 0,
  379. radius: 5,
  380. fillOpacity: 1,
  381. fill: true,
  382. color: const.categories.crossing.color
  383. }) }}</td>
  384. <td>{{ tagTrans('highway', 'crossing') }}</td>
  385. </tr>
  386. <tr>
  387. <td>{{ markerLine({
  388. styles: 'default,foot',
  389. style: {
  390. width: 4,
  391. color: const.categories.cycleway.color,
  392. dashArray: '8,8'
  393. },
  394. 'style:foot': {
  395. width: 4,
  396. color: const.categories.footway.color,
  397. dashArray: '8,8',
  398. dashOffset: 8
  399. }
  400. }) }}</td>
  401. <td>{{ tagTrans('highway', 'cycleway segregated=no') }}</td>
  402. </tr>
  403. <tr>
  404. <td>{{ markerLine({
  405. styles: 'default,foot',
  406. style: {
  407. width: 3,
  408. color: const.categories.cycleway.color,
  409. offset: -1.5
  410. },
  411. 'style:foot': {
  412. width: 3,
  413. color: const.categories.footway.color,
  414. offset: 1.5
  415. }
  416. }) }}</td>
  417. <td>{{ tagTrans('highway', 'cycleway segregated=yes') }}</td>
  418. </tr>
  419. {% for k, d in const.sidewalks %}
  420. <tr>
  421. <td>{{ markerLine({
  422. styles: d.styles,
  423. 'style:leftr': {
  424. width: 9,
  425. offset: -1,
  426. opacity: 0.3,
  427. dashArray: '1,10',
  428. lineCap: butt,
  429. color: d.color
  430. },
  431. 'style:left': {
  432. width: 3,
  433. offset: -7,
  434. color: d.color
  435. }
  436. }) }}</td>
  437. <td>{{ tagTrans('sidewalk', k) }}</td>
  438. </tr>
  439. {% endfor %}
  440. </table>
  441. filter:
  442. access:
  443. name: '{{ keyTrans("access") }}'
  444. type: select
  445. placeholder: '<{{ trans("any value") }}>'
  446. valueName: '{{ tagTrans("access", value) }}'
  447. values:
  448. 'yes': {}
  449. private: {}
  450. permissive: {}
  451. customers: {}
  452. discouraged: {}
  453. '!':
  454. name: <{{ trans('empty value') }}>
  455. query: nwr[!access]
  456. weight: -3
  457. '?':
  458. name: <{{ trans("other") }}>
  459. query: nwr[access]["access"!~"^(public|private|permissive|customers|discouraged|unknown|yes)$"]
  460. weight: -2
  461. unknown:
  462. name: '<{{ trans("unknown") }}>'
  463. query: nwr["access"="unknown"]
  464. weight: -1
  465. surface:
  466. name: '{{ keyTrans("surface") }}'
  467. type: select
  468. placeholder: '<{{ trans("any value") }}>'
  469. valueName: '{{ tagTrans("surface", value) }}'
  470. query: |
  471. {% if value == 'all_paved' %}
  472. {% set value = "(paved|asphalt|chipseal|concrete|concrete:lanes|concrete:plates|paving_stones|sett|unhewn_cobblestone|cobblestone|metal|wood|rubber)" %}
  473. {% elseif value == 'all_unpaved' %}
  474. {% set value = "(unpaved|compacted|fine_gravel|gravel|rock|pebblestone|ground|dirt|earth|grass|grass_paver|mud|sand|woodchips|snow|ice|salt|clay)" %}
  475. {% endif %}
  476. (
  477. nwr[!sidewalk][!"sidewalk:both"][!"sidewalk:right"][!"sidewalk:left"][surface~"^{{ value }}$"];
  478. nwr[~"sidewalk(:left|:right|:both|):surface"~"^{{ value }}$"];
  479. )
  480. values:
  481. all_paved:
  482. name: "<{{ tagTrans('surface', 'paved') }}>"
  483. weight: -1
  484. all_unpaved:
  485. name: "<{{ tagTrans('surface', 'unpaved') }}>"
  486. weight: -1
  487. acrylic: {}
  488. artificial_turf: {}
  489. asphalt: {}
  490. carpet: {}
  491. chipseal: {}
  492. clay: {}
  493. cobblestone: {}
  494. compacted: {}
  495. concrete: {}
  496. concrete:lanes: {}
  497. concrete:plates: {}
  498. dirt: {}
  499. earth: {}
  500. fine_gravel: {}
  501. grass: {}
  502. grass_paver: {}
  503. gravel: {}
  504. ground: {}
  505. ice: {}
  506. metal: {}
  507. metal_grid: {}
  508. mud: {}
  509. paved: {}
  510. paving_stones: {}
  511. pebblestone: {}
  512. rock: {}
  513. rubber: {}
  514. salt: {}
  515. sand: {}
  516. sett: {}
  517. snow: {}
  518. stepping_stones: {}
  519. tartan: {}
  520. unhewn_cobblestone: {}
  521. unpaved: {}
  522. wood: {}
  523. woodchips: {}
  524. '!':
  525. name: <{{ trans('empty value') }}>
  526. query: |
  527. (
  528. nwr[!sidewalk][!"sidewalk:both"][!"sidewalk:right"][!"sidewalk:left"][!"surface"];
  529. nwr["sidewalk:left"="yes"][!"sidewalk:left:surface"];
  530. nwr["sidewalk:right"="yes"][!"sidewalk:right:surface"];
  531. nwr["sidewalk:both"="yes"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:left:surface"];
  532. nwr["sidewalk:both"="yes"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:right:surface"];
  533. nwr["sidewalk"="left"][!"sidewalk:left:surface"];
  534. nwr["sidewalk"="right"][!"sidewalk:right:surface"];
  535. nwr["sidewalk"="both"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:left:surface"];
  536. nwr["sidewalk"="both"][!"sidewalk:both:surface"][!"sidewalk:surface"][!"sidewalk:right:surface"];
  537. )
  538. weight: -4
  539. '?':
  540. name: <{{ trans("other") }}>
  541. query: nwr[surface]["surface"!~"^(acrylic|artificial_turf|asphalt|carpet|chipseal|clay|cobblestone|compacted|concrete|concrete:lanes|concrete:plates|dirt|earth|fine_gravel|grass|grass_paver|gravel|ground|ice|metal|metal_grid|mud|paved|paving_stones|pebblestone|rock|rubber|salt|sand|sett|snow|stepping_stones|tartan|unhewn_cobblestone|unpaved|wood|woodchips)$"]
  542. weight: -3
  543. unknown:
  544. name: '<{{ trans("unknown") }}>'
  545. weight: -2
  546. smoothness:
  547. name: '{{ keyTrans("smoothness") }}'
  548. type: select
  549. placeholder: '<{{ trans("any value") }}>'
  550. valueName: '{{ tagTrans("smoothness", value) }}'
  551. query: '(nwr[smoothness="{{ value }}"];nwr[~"sidewalk:(left|right|both):smoothness"~"{{ value }}"];)'
  552. values:
  553. bad: {}
  554. excellent: {}
  555. good: {}
  556. horrible: {}
  557. impassable: {}
  558. intermediate: {}
  559. very_bad: {}
  560. very_horrible: {}
  561. '!':
  562. name: <{{ trans('empty value') }}>
  563. query: |
  564. (
  565. nwr[!"smoothness"];
  566. nwr["sidewalk:left"="yes"][!"sidewalk:left:smoothness"];
  567. nwr["sidewalk:right"="yes"][!"sidewalk:right:smoothness"];
  568. nwr["sidewalk:both"="yes"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:left:smoothness"];
  569. nwr["sidewalk:both"="yes"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:right:smoothness"];
  570. nwr["sidewalk"="left"][!"sidewalk:left:smoothness"];
  571. nwr["sidewalk"="right"][!"sidewalk:right:smoothness"];
  572. nwr["sidewalk"="both"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:left:smoothness"];
  573. nwr["sidewalk"="both"][!"sidewalk:both:smoothness"][!"sidewalk:smoothness"][!"sidewalk:right:smoothness"];
  574. )
  575. weight: -3
  576. '?':
  577. name: <{{ trans("other") }}>
  578. query: nwr[smoothness]["smoothness"!~"^(bad|excellent|good|horrible|impassable|intermediate|very_bad|very_horrible)$"]
  579. weight: -2
  580. unknown:
  581. name: '<{{ trans("unknown") }}>'
  582. weight: -1
  583. const:
  584. categories:
  585. sidewalk:
  586. color: '#ff007f'
  587. key: footway
  588. pedestrian:
  589. color: '#ff00c8'
  590. width: 5
  591. footway:
  592. color: '#ab00ff'
  593. path:
  594. color: '#ee922d'
  595. steps:
  596. color: '#ab00ff'
  597. dashArray: '3,3'
  598. crossing:
  599. color: '#964e00'
  600. cycleway:
  601. color: '#002aff'
  602. platform:
  603. key: railway
  604. color: '#00ff00'
  605. sidewalks:
  606. 'yes':
  607. color: '#ff007f'
  608. styles: 'leftr,left'
  609. 'separate':
  610. color: '#ff007f'
  611. styles: 'leftr'
  612. 'no':
  613. color: '#000000'
  614. styles: 'leftr'