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.

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