| 104 | | way[highway][parking:lane:right=parallel]::parking_lanes_right, |
| 105 | | way[highway][parking:lane:both=parallel]::parking_lanes_right |
| | 164 | /* Fallback for unspecified orientation. */ |
| | 165 | |
| | 166 | way[highway][parking:right=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_right, |
| | 167 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_right |
| | 168 | { |
| | 169 | width: 6; |
| | 170 | dashes: 10, 4; |
| | 171 | } |
| | 172 | way[highway][parking:left=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_left, |
| | 173 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_left |
| | 174 | { |
| | 175 | width: 6; |
| | 176 | dashes: 10, 4; |
| | 177 | } |
| | 178 | |
| | 179 | /* unspecified orientation with conditional parking restrictions (add extra layer for no stopping markers on top of parallel parkers) */ |
| | 180 | |
| | 181 | way[highway][parking:right=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 182 | way[highway][parking:right=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 183 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 184 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right |
| | 185 | { |
| | 186 | dashes: 10, 18; |
| | 187 | } |
| | 188 | way[highway][parking:right=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 189 | way[highway][parking:right=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 190 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 191 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional |
| | 192 | { |
| | 193 | width: 6; |
| | 194 | dashes: 6, 22; |
| | 195 | dashes-offset: 12; |
| | 196 | offset: -8; |
| | 197 | } |
| | 198 | way[highway][parking:left=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 199 | way[highway][parking:left=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 200 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 201 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left |
| | 202 | { |
| | 203 | dashes: 10, 18; |
| | 204 | } |
| | 205 | way[highway][parking:left=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 206 | way[highway][parking:left=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 207 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 208 | way[highway][parking:both=~/^(yes|lane|street_side|on_kerb|half_on_kerb|shoulder)$/][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional |
| | 209 | { |
| | 210 | width: 6; |
| | 211 | dashes: 6, 22; |
| | 212 | dashes-offset: 12; |
| | 213 | offset: 8; |
| | 214 | } |
| | 215 | |
| | 216 | /*-----------------------------------------------------------------*/ |
| | 217 | /* Styling for specific orientations and conditional restrictions. */ |
| | 218 | /*-----------------------------------------------------------------*/ |
| | 219 | |
| | 220 | /* parallel every time. */ |
| | 221 | |
| | 222 | way[highway][parking:right:orientation=parallel]::parking_lanes_right, |
| | 223 | way[highway][parking:both:orientation=parallel]::parking_lanes_right |
| | 224 | { |
| | 225 | width: 3; |
| | 226 | dashes: 10, 3; |
| | 227 | } |
| | 228 | way[highway][parking:left:orientation=parallel]::parking_lanes_left, |
| | 229 | way[highway][parking:both:orientation=parallel]::parking_lanes_left |
| | 230 | { |
| | 231 | width: 3; |
| | 232 | dashes: 10, 3; |
| | 233 | } |
| | 234 | |
| | 235 | /* parallel with conditional parking restrictions (add extra layer for no stopping markers on top of parallel parkers) */ |
| | 236 | |
| | 237 | way[highway][parking:right:orientation=parallel][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 238 | way[highway][parking:right:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 239 | way[highway][parking:both:orientation=parallel][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 240 | way[highway][parking:both:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right |
| | 241 | { |
| | 242 | dashes: 10, 16; |
| | 243 | } |
| | 244 | way[highway][parking:right:orientation=parallel][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 245 | way[highway][parking:right:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 246 | way[highway][parking:both:orientation=parallel][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 247 | way[highway][parking:both:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional |
| | 248 | { |
| | 249 | width: 6; |
| | 250 | dashes: 6, 20; |
| | 251 | dashes-offset: 11; |
| | 252 | offset: -8; |
| | 253 | } |
| | 254 | way[highway][parking:left:orientation=parallel][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 255 | way[highway][parking:left:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 256 | way[highway][parking:both:orientation=parallel][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 257 | way[highway][parking:both:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left |
| | 258 | { |
| | 259 | dashes: 10, 16; |
| | 260 | } |
| | 261 | way[highway][parking:left:orientation=parallel][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 262 | way[highway][parking:left:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 263 | way[highway][parking:both:orientation=parallel][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 264 | way[highway][parking:both:orientation=parallel][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional |
| | 265 | { |
| | 266 | width: 6; |
| | 267 | dashes: 6, 20; |
| | 268 | dashes-offset: 11; |
| | 269 | offset: 8; |
| | 270 | } |
| | 271 | |
| | 272 | /* diagonal every time. */ |
| | 273 | |
| | 274 | way[highway][parking:right:orientation=diagonal]::parking_lanes_right, |
| | 275 | way[highway][parking:both:orientation=diagonal]::parking_lanes_right |
| | 276 | { |
| | 277 | width: 7; |
| | 278 | dashes: 4, 6; |
| | 279 | } |
| | 280 | way[highway][parking:left:orientation=diagonal]::parking_lanes_left, |
| | 281 | way[highway][parking:both:orientation=diagonal]::parking_lanes_left |
| | 282 | { |
| | 283 | width: 7; |
| | 284 | dashes: 4, 6; |
| | 285 | } |
| | 286 | |
| | 287 | /* diagonal with conditional parking restrictions (add extra layer for no stopping markers on top of parallel parkers) */ |
| | 288 | |
| | 289 | way[highway][parking:right:orientation=diagonal][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 290 | way[highway][parking:right:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 291 | way[highway][parking:both:orientation=diagonal][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 292 | way[highway][parking:both:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right |
| | 293 | { |
| | 294 | dashes: 4, 16; |
| | 295 | } |
| | 296 | way[highway][parking:right:orientation=diagonal][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 297 | way[highway][parking:right:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 298 | way[highway][parking:both:orientation=diagonal][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 299 | way[highway][parking:both:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional |
| | 300 | { |
| | 301 | width: 6; |
| | 302 | dashes: 6, 14; |
| | 303 | dashes-offset: 11; |
| | 304 | offset: -8; |
| | 305 | } |
| | 306 | way[highway][parking:left:orientation=diagonal][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 307 | way[highway][parking:left:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 308 | way[highway][parking:both:orientation=diagonal][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 309 | way[highway][parking:both:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left |
| | 310 | { |
| | 311 | dashes: 4, 16; |
| | 312 | } |
| | 313 | way[highway][parking:left:orientation=diagonal][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 314 | way[highway][parking:left:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 315 | way[highway][parking:both:orientation=diagonal][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 316 | way[highway][parking:both:orientation=diagonal][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional |
| | 317 | { |
| | 318 | width: 6; |
| | 319 | dashes: 6, 14; |
| | 320 | dashes-offset: 11; |
| | 321 | offset: 8; |
| | 322 | } |
| | 323 | |
| | 324 | /* perpendicular every time. */ |
| | 325 | |
| | 326 | way[highway][parking:right:orientation=perpendicular]::parking_lanes_right, |
| | 327 | way[highway][parking:both:orientation=perpendicular]::parking_lanes_right |
| | 328 | { |
| | 329 | width: 10; |
| | 330 | dashes: 3, 4; |
| | 331 | } |
| | 332 | way[highway][parking:left:orientation=perpendicular]::parking_lanes_left, |
| | 333 | way[highway][parking:both:orientation=perpendicular]::parking_lanes_left |
| | 334 | { |
| | 335 | width: 10; |
| | 336 | dashes: 3, 4; |
| | 337 | } |
| | 338 | |
| | 339 | /* perpendicular with conditional parking restrictions (add extra layer for no stopping markers on top of parallel parkers) */ |
| | 340 | |
| | 341 | way[highway][parking:right:orientation=perpendicular][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 342 | way[highway][parking:right:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 343 | way[highway][parking:both:orientation=perpendicular][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right, |
| | 344 | way[highway][parking:both:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right |
| | 345 | { |
| | 346 | dashes: 3, 11; |
| | 347 | } |
| | 348 | way[highway][parking:right:orientation=perpendicular][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 349 | way[highway][parking:right:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 350 | way[highway][parking:both:orientation=perpendicular][parking:right:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional, |
| | 351 | way[highway][parking:both:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_right_conditional |
| | 352 | { |
| | 353 | width: 6; |
| | 354 | dashes: 6, 8; |
| | 355 | dashes-offset: 8.5; |
| | 356 | offset: -8; |
| | 357 | } |
| | 358 | way[highway][parking:left:orientation=perpendicular][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 359 | way[highway][parking:left:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 360 | way[highway][parking:both:orientation=perpendicular][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left, |
| | 361 | way[highway][parking:both:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left |
| | 362 | { |
| | 363 | dashes: 3, 11; |
| | 364 | } |
| | 365 | way[highway][parking:left:orientation=perpendicular][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 366 | way[highway][parking:left:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 367 | way[highway][parking:both:orientation=perpendicular][parking:left:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional, |
| | 368 | way[highway][parking:both:orientation=perpendicular][parking:both:restriction:conditional=~/(no_parking|no_standing|no_stopping)/]::parking_lanes_left_conditional |
| | 369 | { |
| | 370 | width: 6; |
| | 371 | dashes: 6, 8; |
| | 372 | dashes-offset: 8.5; |
| | 373 | offset: 8; |
| | 374 | } |
| | 375 | |
| | 376 | /* Styling for no or separate parking. */ |
| | 377 | |
| | 378 | way[highway][parking:right=no]::parking_lanes_right, |
| | 379 | way[highway][parking:both=no]::parking_lanes_right |
| | 380 | { |
| | 381 | width: 6; |
| | 382 | dashes: 6, 12; |
| | 383 | } |
| | 384 | way[highway][parking:left=no]::parking_lanes_left, |
| | 385 | way[highway][parking:both=no]::parking_lanes_left |
| | 386 | { |
| | 387 | width: 6; |
| | 388 | dashes: 6, 12; |
| | 389 | } |
| | 390 | |
| | 391 | way[highway][parking:right=separate]::parking_lanes_right, |
| | 392 | way[highway][parking:both=separate]::parking_lanes_right |
| | 393 | { |
| | 394 | repeat-image: images/separate-flipped.svg; |
| | 395 | } |
| | 396 | way[highway][parking:left=separate]::parking_lanes_left, |
| | 397 | way[highway][parking:both=separate]::parking_lanes_left |
| | 398 | { |
| | 399 | repeat-image: images/separate.svg; |
| | 400 | } |
| | 401 | |
| | 402 | /* Support ways without physical, but legal attributes. */ |
| | 403 | |
| | 404 | way[highway][parking:right:restriction=~/^(no_parking|no_standing|no_stopping)$/][!parking:right][!parking:both]::parking_lanes_right, |
| | 405 | way[highway][parking:both:restriction=~/^(no_parking|no_standing|no_stopping)$/][!parking:right][!parking:both]::parking_lanes_right |
| | 406 | { |
| | 407 | width: 6; |
| | 408 | dashes: 6, 12; |
| | 409 | } |
| | 410 | way[highway][parking:left:restriction=~/^(no_parking|no_standing|no_stopping)$/][!parking:left][!parking:both]::parking_lanes_left, |
| | 411 | way[highway][parking:both:restriction=~/^(no_parking|no_standing|no_stopping)$/][!parking:left][!parking:both]::parking_lanes_left |
| | 412 | { |
| | 413 | width: 6; |
| | 414 | dashes: 6, 12; |
| | 415 | } |
| | 416 | |
| | 417 | /*--------------------------------------------------------------------------*/ |
| | 418 | /* Styling for specific positions (add a second line symbolising the kerb). */ |
| | 419 | /*--------------------------------------------------------------------------*/ |
| | 420 | |
| | 421 | way[highway][parking:left=~/^(lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_left_kerb, |
| | 422 | way[highway][parking:both=~/^(lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_left_kerb |
| | 423 | { |
| | 424 | z-index: -4; |
| | 425 | width: 2; |
| | 426 | } |
| | 427 | way[highway][parking:right=~/^(lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_right_kerb, |
| | 428 | way[highway][parking:both=~/^(lane|street_side|on_kerb|half_on_kerb|shoulder)$/]::parking_lanes_right_kerb |
| | 429 | { |
| | 430 | z-index: -4; |
| | 431 | width: 2; |
| | 432 | } |
| | 433 | |
| | 434 | /* (add a second kerb line for street_side parking to create a "box"). */ |
| | 435 | |
| | 436 | way[highway][parking:left=street_side]::parking_lanes_left_kerb2, |
| | 437 | way[highway][parking:both=street_side]::parking_lanes_left_kerb2 |
| | 438 | { |
| | 439 | z-index: -4; |
| | 440 | width: 2; |
| | 441 | offset: 4; |
| | 442 | } |
| | 443 | way[highway][parking:right=street_side]::parking_lanes_right_kerb2, |
| | 444 | way[highway][parking:both=street_side]::parking_lanes_right_kerb2 |
| | 445 | { |
| | 446 | z-index: -4; |
| | 447 | width: 2; |
| | 448 | offset: -4; |
| | 449 | } |
| | 450 | |
| | 451 | way[highway][parking:left=~/^(lane|street_side)$/]::parking_lanes_left_kerb, |
| | 452 | way[highway][parking:both=~/^(lane|street_side)$/]::parking_lanes_left_kerb |
| | 453 | { |
| | 454 | offset: prop("width", parking_lanes_left) + 7; |
| | 455 | } |
| | 456 | way[highway][parking:right=~/^(lane|street_side)$/]::parking_lanes_right_kerb, |
| | 457 | way[highway][parking:both=~/^(lane|street_side)$/]::parking_lanes_right_kerb |
| | 458 | { |
| | 459 | offset: -prop("width", parking_lanes_right) - 7; |
| | 460 | } |
| | 461 | |
| | 462 | way[highway][parking:left=~/^(on_kerb|shoulder)$/]::parking_lanes_left_kerb, |
| | 463 | way[highway][parking:both=~/^(on_kerb|shoulder)$/]::parking_lanes_left_kerb |
| | 464 | { |
| | 465 | offset: 4; |
| | 466 | } |
| | 467 | way[highway][parking:right=~/^(on_kerb|shoulder)$/]::parking_lanes_right_kerb, |
| | 468 | way[highway][parking:both=~/^(on_kerb|shoulder)$/]::parking_lanes_right_kerb |
| | 469 | { |
| | 470 | offset: -4; |
| | 471 | } |
| | 472 | |
| | 473 | way[highway][parking:left=half_on_kerb]::parking_lanes_left_kerb, |
| | 474 | way[highway][parking:both=half_on_kerb]::parking_lanes_left_kerb |
| | 475 | { |
| | 476 | offset: prop("width", parking_lanes_left) / 2 + 5; |
| | 477 | } |
| | 478 | way[highway][parking:right=half_on_kerb]::parking_lanes_right_kerb, |
| | 479 | way[highway][parking:both=half_on_kerb]::parking_lanes_right_kerb |
| | 480 | { |
| | 481 | offset: -prop("width", parking_lanes_right) / 2 - 5; |
| | 482 | } |
| | 483 | |
| | 484 | /*-----------------------*/ |
| | 485 | /* Offset specification. */ |
| | 486 | /*-----------------------*/ |
| | 487 | |
| | 488 | way[highway][parking:right]::parking_lanes_right, |
| | 489 | way[highway][parking:both]::parking_lanes_right, |
| | 490 | way[highway][parking:right:orientation]::parking_lanes_right, |
| | 491 | way[highway][parking:both:orientation]::parking_lanes_right, |
| | 492 | way[highway][parking:right:restriction]::parking_lanes_right, |
| | 493 | way[highway][parking:both:restriction]::parking_lanes_right |
| | 494 | { |
| | 495 | offset: eval(-4 - (prop("width") * 0.5) - (prop("width", "default") * 0.5)); |
| | 496 | repeat-image-offset: -8; |
| | 497 | repeat-image-width: 8; |
| | 498 | repeat-image-height: 8; |
| | 499 | repeat-image-spacing: 16; |
| | 500 | } |
| | 501 | |
| | 502 | way[highway][parking:left]::parking_lanes_left, |
| | 503 | way[highway][parking:both]::parking_lanes_left, |
| | 504 | way[highway][parking:left:orientation]::parking_lanes_left, |
| | 505 | way[highway][parking:both:orientation]::parking_lanes_left, |
| | 506 | way[highway][parking:left:restriction]::parking_lanes_left, |
| | 507 | way[highway][parking:both:restriction]::parking_lanes_left |
| | 508 | { |
| | 509 | offset: eval(4 + (prop("width") * 0.5) + (prop("width", "default") * 0.5)); |
| | 510 | repeat-image-offset: 8; |
| | 511 | repeat-image-width: 8; |
| | 512 | repeat-image-height: 8; |
| | 513 | repeat-image-spacing: 16; |
| | 514 | } |
| | 515 | |
| | 516 | /*----------------------------------*/ |
| | 517 | /* Style legal attributes (colour). */ |
| | 518 | /*----------------------------------*/ |
| | 519 | |
| | 520 | /* Free parking (no fee, no maxstay, no access or parking restrictions). */ |
| | 521 | |
| | 522 | way[highway][parking:right:fee=no][setting("highlight_conditions")]::parking_lanes_right, |
| | 523 | way[highway][parking:both:fee=no][setting("highlight_conditions")]::parking_lanes_right |
| | 524 | { |
| | 525 | color: chartreuse; |
| | 526 | } |
| | 527 | way[highway][parking:left:fee=no][setting("highlight_conditions")]::parking_lanes_left, |
| | 528 | way[highway][parking:both:fee=no][setting("highlight_conditions")]::parking_lanes_left |
| | 529 | { |
| | 530 | color: chartreuse; |
| | 531 | } |
| | 532 | |
| | 533 | /* Free parking with time limit. */ |
| | 534 | |
| | 535 | way[highway][parking:right:maxstay][parking:right:maxstay!=no][setting("highlight_conditions")]::parking_lanes_right, |
| | 536 | way[highway][parking:both:maxstay][parking:both:maxstay!=no][setting("highlight_conditions")]::parking_lanes_right |
| | 537 | { |
| | 538 | color: dodgerblue; |
| | 539 | } |
| | 540 | way[highway][parking:left:maxstay][parking:left:maxstay!=no][setting("highlight_conditions")]::parking_lanes_left, |
| | 541 | way[highway][parking:both:maxstay][parking:both:maxstay!=no][setting("highlight_conditions")]::parking_lanes_left |
| | 542 | { |
| | 543 | color: dodgerblue; |
| | 544 | } |
| | 545 | |
| | 546 | way[highway][parking:right:maxstay:conditional][setting("highlight_conditions")]::parking_lanes_right, |
| | 547 | way[highway][parking:both:maxstay:conditional][setting("highlight_conditions")]::parking_lanes_right |
| | 548 | { |
| | 549 | color: dodgerblue; |
| | 550 | } |
| | 551 | way[highway][parking:left:maxstay:conditional][setting("highlight_conditions")]::parking_lanes_left, |
| | 552 | way[highway][parking:both:maxstay:conditional][setting("highlight_conditions")]::parking_lanes_left |
| | 553 | { |
| | 554 | color: dodgerblue; |
| | 555 | } |
| | 556 | |
| | 557 | /* Paid parking. */ |
| | 558 | |
| | 559 | way[highway][parking:right:fee=yes][setting("highlight_conditions")]::parking_lanes_right, |
| | 560 | way[highway][parking:both:fee=yes][setting("highlight_conditions")]::parking_lanes_right |
| | 561 | { |
| | 562 | color: lightskyblue; |
| | 563 | } |
| | 564 | way[highway][parking:left:fee=yes][setting("highlight_conditions")]::parking_lanes_left, |
| | 565 | way[highway][parking:both:fee=yes][setting("highlight_conditions")]::parking_lanes_left |
| | 566 | { |
| | 567 | color: lightskyblue; |
| | 568 | } |
| | 569 | |
| | 570 | way[highway][parking:right:fee:conditional=~/yes/][setting("highlight_conditions")]::parking_lanes_right, |
| | 571 | way[highway][parking:both:fee:conditional=~/yes/][setting("highlight_conditions")]::parking_lanes_right |
| | 572 | { |
| | 573 | color: lightskyblue; |
| | 574 | } |
| | 575 | way[highway][parking:left:fee:conditional=~/yes/][setting("highlight_conditions")]::parking_lanes_left, |
| | 576 | way[highway][parking:both:fee:conditional=~/yes/][setting("highlight_conditions")]::parking_lanes_left |
| | 577 | { |
| | 578 | color: lightskyblue; |
| | 579 | } |
| | 580 | |
| | 581 | /* Residential zone or paid parking. */ |
| | 582 | |
| | 583 | way[highway][parking:right:fee=yes][parking:right:zone][parking:right:zone!=no][setting("highlight_conditions")]::parking_lanes_right, |
| | 584 | way[highway][parking:right:fee=yes][parking:both:zone][parking:both:zone!=no][setting("highlight_conditions")]::parking_lanes_right, |
| | 585 | way[highway][parking:both:fee=yes][parking:right:zone][parking:right:zone!=no][setting("highlight_conditions")]::parking_lanes_right, |
| | 586 | way[highway][parking:both:fee=yes][parking:both:zone][parking:both:zone!=no][setting("highlight_conditions")]::parking_lanes_right |
| | 587 | { |
| | 588 | color: hotpink; |
| | 589 | } |
| | 590 | way[highway][parking:left:fee=yes][parking:left:zone][parking:left:zone!=no][setting("highlight_conditions")]::parking_lanes_left, |
| | 591 | way[highway][parking:left:fee=yes][parking:both:zone][parking:both:zone!=no][setting("highlight_conditions")]::parking_lanes_left, |
| | 592 | way[highway][parking:both:fee=yes][parking:left:zone][parking:left:zone!=no][setting("highlight_conditions")]::parking_lanes_left, |
| | 593 | way[highway][parking:both:fee=yes][parking:both:zone][parking:both:zone!=no][setting("highlight_conditions")]::parking_lanes_left |
| | 594 | { |
| | 595 | color: hotpink; |
| | 596 | } |
| | 597 | |
| | 598 | /* Customers parking. */ |
| | 599 | |
| | 600 | way[highway][parking:right:access=customers][setting("highlight_conditions")]::parking_lanes_right, |
| | 601 | way[highway][parking:both:access=customers][setting("highlight_conditions")]::parking_lanes_right |
| | 602 | { |
| | 603 | color: darkorange; |
| | 604 | } |
| | 605 | way[highway][parking:left:access=customers][setting("highlight_conditions")]::parking_lanes_left, |
| | 606 | way[highway][parking:both:access=customers][setting("highlight_conditions")]::parking_lanes_left |
| | 607 | { |
| | 608 | color: darkorange; |
| | 609 | } |
| | 610 | |
| | 611 | way[highway][parking:right:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_right, |
| | 612 | way[highway][parking:both:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_right |
| | 613 | { |
| | 614 | color: darkorange; |
| | 615 | } |
| | 616 | way[highway][parking:left:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_left, |
| | 617 | way[highway][parking:both:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_left |
| | 618 | { |
| | 619 | color: darkorange; |
| | 620 | } |
| | 621 | |
| | 622 | /* No public access. */ |
| | 623 | |
| | 624 | way[highway][parking:right:access=no][setting("highlight_conditions")]::parking_lanes_right, |
| | 625 | way[highway][parking:both:access=no][setting("highlight_conditions")]::parking_lanes_right |
| | 626 | { |
| | 627 | color: red; |
| | 628 | } |
| | 629 | way[highway][parking:left:access=no][setting("highlight_conditions")]::parking_lanes_left, |
| | 630 | way[highway][parking:both:access=no][setting("highlight_conditions")]::parking_lanes_left |
| | 631 | { |
| | 632 | color: red; |
| | 633 | } |
| | 634 | |
| | 635 | way[highway][parking:right:access:conditional=~/no/][setting("highlight_conditions")]::parking_lanes_right, |
| | 636 | way[highway][parking:both:access:conditional=~/no/][setting("highlight_conditions")]::parking_lanes_right |
| | 637 | { |
| | 638 | color: red; |
| | 639 | } |
| | 640 | way[highway][parking:left:access:conditional=~/no/][setting("highlight_conditions")]::parking_lanes_left, |
| | 641 | way[highway][parking:both:access:conditional=~/no/][setting("highlight_conditions")]::parking_lanes_left |
| | 642 | { |
| | 643 | color: red; |
| | 644 | } |
| | 645 | |
| | 646 | /* Customers parking. */ |
| | 647 | |
| | 648 | way[highway][parking:right:access=customers][setting("highlight_conditions")]::parking_lanes_right, |
| | 649 | way[highway][parking:both:access=customers][setting("highlight_conditions")]::parking_lanes_right |
| | 650 | { |
| | 651 | color: darkorange; |
| | 652 | } |
| | 653 | way[highway][parking:left:access=customers][setting("highlight_conditions")]::parking_lanes_left, |
| | 654 | way[highway][parking:both:access=customers][setting("highlight_conditions")]::parking_lanes_left |
| | 655 | { |
| | 656 | color: darkorange; |
| | 657 | } |
| | 658 | |
| | 659 | way[highway][parking:right:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_right, |
| | 660 | way[highway][parking:both:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_right |
| | 661 | { |
| | 662 | color: darkorange; |
| | 663 | } |
| | 664 | way[highway][parking:left:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_left, |
| | 665 | way[highway][parking:both:access:conditional=~/customers/][setting("highlight_conditions")]::parking_lanes_left |
| | 666 | { |
| | 667 | color: darkorange; |
| | 668 | } |
| | 669 | |
| | 670 | /* Disabled parking. */ |
| | 671 | |
| | 672 | way[highway][parking:right:disabled][parking:right:disabled!=no][setting("highlight_conditions")]::parking_lanes_right, |
| | 673 | way[highway][parking:both:disabled][parking:right:disabled!=no][setting("highlight_conditions")]::parking_lanes_right |
| | 674 | { |
| | 675 | color: turquoise; |
| | 676 | } |
| | 677 | way[highway][parking:left:disabled][parking:right:disabled!=no][setting("highlight_conditions")]::parking_lanes_left, |
| | 678 | way[highway][parking:both:disabled][parking:right:disabled!=no][setting("highlight_conditions")]::parking_lanes_left |
| | 679 | { |
| | 680 | color: turquoise; |
| | 681 | } |
| | 682 | |
| | 683 | way[highway][parking:right:disabled:conditional][setting("highlight_conditions")]::parking_lanes_right, |
| | 684 | way[highway][parking:both:disabled:conditional][setting("highlight_conditions")]::parking_lanes_right |
| | 685 | { |
| | 686 | color: turquoise; |
| | 687 | } |
| | 688 | way[highway][parking:left:disabled:conditional][setting("highlight_conditions")]::parking_lanes_left, |
| | 689 | way[highway][parking:both:disabled:conditional][setting("highlight_conditions")]::parking_lanes_left |
| | 690 | { |
| | 691 | color: turquoise; |
| | 692 | } |
| | 693 | |
| | 694 | /* Charging electric vehicles. */ |
| | 695 | |
| | 696 | way[highway][parking:right:restriction=charging_only][setting("highlight_conditions")]::parking_lanes_right, |
| | 697 | way[highway][parking:both:restriction=charging_only][setting("highlight_conditions")]::parking_lanes_right |
| | 698 | { |
| | 699 | color: limegreen; |
| | 700 | } |
| | 701 | way[highway][parking:left:restriction=charging_only][setting("highlight_conditions")]::parking_lanes_left, |
| | 702 | way[highway][parking:both:restriction=charging_only][setting("highlight_conditions")]::parking_lanes_left |
| | 703 | { |
| | 704 | color: limegreen; |
| | 705 | } |
| | 706 | |
| | 707 | way[highway][parking:right:restriction:conditional=~/charging_only/][setting("highlight_conditions")]::parking_lanes_right, |
| | 708 | way[highway][parking:both:restriction:conditional=~/charging_only/][setting("highlight_conditions")]::parking_lanes_right |
| | 709 | { |
| | 710 | color: limegreen; |
| | 711 | } |
| | 712 | way[highway][parking:left:restriction:conditional=~/charging_only/][setting("highlight_conditions")]::parking_lanes_left, |
| | 713 | way[highway][parking:both:restriction:conditional=~/charging_only/][setting("highlight_conditions")]::parking_lanes_left |
| | 714 | { |
| | 715 | color: limegreen; |
| | 716 | } |
| | 717 | |
| | 718 | /* Loading zone. */ |
| | 719 | |
| | 720 | way[highway][parking:right:restriction=loading_only][setting("highlight_conditions")]::parking_lanes_right, |
| | 721 | way[highway][parking:both:restriction=loading_only][setting("highlight_conditions")]::parking_lanes_right |
| | 722 | { |
| | 723 | color: lightcyan; |
| | 724 | } |
| | 725 | way[highway][parking:left:restriction=loading_only][setting("highlight_conditions")]::parking_lanes_left, |
| | 726 | way[highway][parking:both:restriction=loading_only][setting("highlight_conditions")]::parking_lanes_left |
| | 727 | { |
| | 728 | color: lightcyan; |
| | 729 | } |
| | 730 | |
| | 731 | way[highway][parking:right:restriction:conditional=~/loading_only/][setting("highlight_conditions")]::parking_lanes_right, |
| | 732 | way[highway][parking:both:restriction:conditional=~/loading_only/][setting("highlight_conditions")]::parking_lanes_right |
| | 733 | { |
| | 734 | color: lightcyan; |
| | 735 | } |
| | 736 | way[highway][parking:left:restriction:conditional=~/loading_only/][setting("highlight_conditions")]::parking_lanes_left, |
| | 737 | way[highway][parking:both:restriction:conditional=~/loading_only/][setting("highlight_conditions")]::parking_lanes_left |
| | 738 | { |
| | 739 | color: lightcyan; |
| | 740 | } |
| | 741 | |
| | 742 | /* Non-existent parking lanes with physical reason */ |
| | 743 | |
| | 744 | way[highway][parking:right=no][parking:right:reason][setting("highlight_conditions")]::parking_lanes_right, |
| | 745 | way[highway][parking:right=no][parking:both:reason][setting("highlight_conditions")]::parking_lanes_right, |
| | 746 | way[highway][parking:both=no][parking:right:reason][setting("highlight_conditions")]::parking_lanes_right, |
| | 747 | way[highway][parking:both=no][parking:both:reason][setting("highlight_conditions")]::parking_lanes_right |
| | 748 | { |
| | 749 | color: plum; |
| | 750 | } |
| | 751 | way[highway][parking:left=no][parking:left:reason][setting("highlight_conditions")]::parking_lanes_left, |
| | 752 | way[highway][parking:left=no][parking:both:reason][setting("highlight_conditions")]::parking_lanes_left, |
| | 753 | way[highway][parking:both=no][parking:left:reason][setting("highlight_conditions")]::parking_lanes_left, |
| | 754 | way[highway][parking:both=no][parking:both:reason][setting("highlight_conditions")]::parking_lanes_left |
| | 755 | { |
| | 756 | color: plum; |
| | 757 | } |
| | 758 | |
| | 759 | /* No parking restrictions */ |
| | 760 | |
| | 761 | way[highway][parking:right:restriction=no_parking][setting("highlight_conditions")]::parking_lanes_right, |
| | 762 | way[highway][parking:both:restriction=no_parking][setting("highlight_conditions")]::parking_lanes_right |
| | 763 | { |
| | 764 | color: orange; |
| | 765 | } |
| | 766 | way[highway][parking:left:restriction=no_parking][setting("highlight_conditions")]::parking_lanes_left, |
| | 767 | way[highway][parking:both:restriction=no_parking][setting("highlight_conditions")]::parking_lanes_left |
| | 768 | { |
| | 769 | color: orange; |
| | 770 | } |
| | 771 | |
| | 772 | way[highway][parking:right:restriction:conditional=~/no_parking/][setting("highlight_conditions")]::parking_lanes_right_conditional, |
| | 773 | way[highway][parking:both:restriction:conditional=~/no_parking/][setting("highlight_conditions")]::parking_lanes_right_conditional |
| | 774 | { |
| | 775 | color: orange; |
| | 776 | } |
| | 777 | way[highway][parking:left:restriction:conditional=~/no_parking/][setting("highlight_conditions")]::parking_lanes_left_conditional, |
| | 778 | way[highway][parking:both:restriction:conditional=~/no_parking/][setting("highlight_conditions")]::parking_lanes_left_conditional |
| | 779 | { |
| | 780 | color: orange; |
| | 781 | } |
| | 782 | |
| | 783 | way[highway][parking:right:restriction=no_standing][setting("highlight_conditions")]::parking_lanes_right, |
| | 784 | way[highway][parking:both:restriction=no_standing][setting("highlight_conditions")]::parking_lanes_right |
| | 785 | { |
| | 786 | color: salmon; |
| | 787 | } |
| | 788 | way[highway][parking:left:restriction=no_standing][setting("highlight_conditions")]::parking_lanes_left, |
| | 789 | way[highway][parking:both:restriction=no_standing][setting("highlight_conditions")]::parking_lanes_left |
| | 790 | { |
| | 791 | color: salmon; |
| | 792 | } |
| | 793 | |
| | 794 | way[highway][parking:right:restriction:conditional=~/no_standing/][setting("highlight_conditions")]::parking_lanes_right_conditional, |
| | 795 | way[highway][parking:both:restriction:conditional=~/no_standing/][setting("highlight_conditions")]::parking_lanes_right_conditional |
| | 796 | { |
| | 797 | color: salmon; |
| | 798 | } |
| | 799 | way[highway][parking:left:restriction:conditional=~/no_standing/][setting("highlight_conditions")]::parking_lanes_left_conditional, |
| | 800 | way[highway][parking:both:restriction:conditional=~/no_standing/][setting("highlight_conditions")]::parking_lanes_left_conditional |
| | 801 | { |
| | 802 | color: salmon; |
| | 803 | } |
| | 804 | |
| | 805 | way[highway][parking:right:restriction=no_stopping][setting("highlight_conditions")]::parking_lanes_right, |
| | 806 | way[highway][parking:both:restriction=no_stopping][setting("highlight_conditions")]::parking_lanes_right |
| | 807 | { |
| | 808 | color: red; |
| | 809 | } |
| | 810 | way[highway][parking:left:restriction=no_stopping][setting("highlight_conditions")]::parking_lanes_left, |
| | 811 | way[highway][parking:both:restriction=no_stopping][setting("highlight_conditions")]::parking_lanes_left |
| | 812 | { |
| | 813 | color: red; |
| | 814 | } |
| | 815 | |
| | 816 | way[highway][parking:right:restriction:conditional=~/no_stopping/][setting("highlight_conditions")]::parking_lanes_right_conditional, |
| | 817 | way[highway][parking:both:restriction:conditional=~/no_stopping/][setting("highlight_conditions")]::parking_lanes_right_conditional |
| | 818 | { |
| | 819 | color: red; |
| | 820 | } |
| | 821 | way[highway][parking:left:restriction:conditional=~/no_stopping/][setting("highlight_conditions")]::parking_lanes_left_conditional, |
| | 822 | way[highway][parking:both:restriction:conditional=~/no_stopping/][setting("highlight_conditions")]::parking_lanes_left_conditional |
| | 823 | { |
| | 824 | color: red; |
| | 825 | } |
| | 826 | |
| | 827 | /*------------------------------------------------------------------*/ |
| | 828 | /* Styling to read deprecated tags - a warning style is added later */ |
| | 829 | /*------------------------------------------------------------------*/ |
| | 830 | |
| | 831 | way[highway][parking:lane:right]::parking_lanes_right_deprecated, |
| | 832 | way[highway][parking:lane:both]::parking_lanes_right_deprecated |
| | 833 | { |
| | 834 | z-index: -3; |
| | 835 | linecap: none; |
| | 836 | } |
| | 837 | way[highway][parking:lane:left]::parking_lanes_left_deprecated, |
| | 838 | way[highway][parking:lane:both]::parking_lanes_left_deprecated |
| | 839 | { |
| | 840 | z-index: -3; |
| | 841 | linecap: none; |
| | 842 | } |
| | 843 | |
| | 844 | way[highway][parking:lane:right=parallel]::parking_lanes_right_deprecated, |
| | 845 | way[highway][parking:lane:both=parallel]::parking_lanes_right_deprecated |