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.

604 lines
22 KiB

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