wiki:Styles/SidewalksAndFootways

Version 4 (modified by JeroenHoek, 5 years ago) ( diff )

Meta translations updated.

Useful for pedestrian mapping. Visualizes the sidewalk, sidewalk:left, and sidewalk:right attribute of highways, and renders various hihgway=footway types in different patterns. Ways that do not permit pedestrian use are made translucent.

Sample (NOZIP)

This style probably misses lots of useful functionality. Please let me know if you want to modify this style (if I don't reply within a reasonable span of time, go ahead and edit this style yourself).

meta {
    title: "Sidewalks and footways (with knobs on)";
    description: "Useful for pedestrian mapping. Visualizes the sidewalk, sidewalk:left, and sidewalk:right attribute of highways, and renders various highway=footway types in different patterns. Ways that do not permit pedestrian use are made translucent.";
    link: "https://wiki.openstreetmap.org/wiki/Key:sidewalk";
    icon: "icon.svg";
    author: "Jeroen Hoek";
    version: "1.16_2023-12-17";
    min-josm-version: "17428";
}

/* 
    This style is a fork of https://josm.openstreetmap.de/wiki/Styles/Sidewalks
    
    Because this style introduces few more features than the above I have forked it for now. If the author of the original is willing the two may be combined in the future.
*/

meta[lang=de] {
    title: "Geh- und Fußwegen (mit allen Schikanen)";
    description: "Praktisch für Fußgängerangelegenheiten. Visualisiert die sidewalk, sidewalk:links und sidewalk:rechts Eigenschaften von Straßen und zeichnet die verschiedenen Arten von highway=footway mit unterschiedlichen Mustern. Straßen auf denen Fußgänger keinen Zutritt haben, werden durchscheinend gemacht."
}

meta[lang=nl] {
    title: "Stoepen en voetpaden (met alles dr'op en dr'aan)";
    description: "Handig voor voetgangerszaken. Visualiseert de sidewalk, sidewalk:left, en sidewalk:right eigenschappen van wegen, en tekent de verschillende highway=footway soorten met verschillende patronen. Wegen waar voetganers niet mogen komen worden doorschijnend gemaakt.";
}

way[sidewalk]::sidewalks_right,
way["sidewalk:right"]::sidewalks_right {
    width: 3;
    dashes: 5, 1;
    offset: min(eval(0 - 10 - (prop("width") * 0.5) - (prop("width", "default") * 0.5)), -10);
}
way[sidewalk]::sidewalks_left,
way["sidewalk:left"]::sidewalks_left {
    width: 3;
    dashes: 5, 1;
    offset: max(eval(10 + (prop("width") * 0.5) + (prop("width", "default") * 0.5)), 10);
}

way[sidewalk=right][!"sidewalk:right"]::sidewalks_right,
way[sidewalk=both][!"sidewalk:right"]::sidewalks_right {
    set sidewalk-yes;
}
way[sidewalk=left][!"sidewalk:left"]::sidewalks_left,
way[sidewalk=both][!"sidewalk:left"]::sidewalks_left {
    set sidewalk-yes;
}

/* left, no, and none mean no sidewalk on the right if sidewalk:right is not set. */
way[sidewalk=~/^(left)|(no(ne)?)$/][!"sidewalk:right"]::sidewalks_right {
    set sidewalk-no;
}
/* right, no, and none mean no sidewalk on the left if sidewalk:left is not set. */
way[sidewalk=~/^(right)|(no(ne)?)$/][!"sidewalk:left"]::sidewalks_left {
    set sidewalk-no;
}

way[sidewalk=separate][!"sidewalk:right"]::sidewalks_right {
    set sidewalk-separate;
}
way[sidewalk=separate][!"sidewalk:left"]::sidewalks_left {
    set sidewalk-separate;
}

/* More specific values can override the general sidewalk=* tag. */

way["sidewalk:left"=yes]::sidewalks_left {
   set sidewalk-yes;
}
way["sidewalk:right"=yes]::sidewalks_right {
   set sidewalk-yes;
}

way["sidewalk:left"=~/^no(ne)?$/]::sidewalks_left {
   set sidewalk-no;
}
way["sidewalk:right"=~/^no(ne)?$/]::sidewalks_right {
   set sidewalk-no;
}

way["sidewalk:left"=separate]::sidewalks_left {
   set sidewalk-separate;
}
way["sidewalk:right"=separate]::sidewalks_right {
   set sidewalk-separate;
}

/* Styling. */

way.sidewalk-yes::sidewalks_left {
    color: #00ff00;
}
way.sidewalk-yes::sidewalks_right {
    color: #00ff00;
}

way.sidewalk-separate::sidewalks_left {
    color: #00aa00;
    dashes: 5, 10;
    opacity: 0.7;
}
way.sidewalk-separate::sidewalks_right {
    color: #00aa00;
    dashes: 5, 10;
    opacity: 0.7;
}

way.sidewalk-no::sidewalks_left {
    color: #ff0000;
    opacity: 0.5;
}
way.sidewalk-no::sidewalks_right {
    color: #ff0000;
    opacity: 0.5;
}

/* Styling of other related highways. */

way[highway=footway] {
    color: #00ff00;
    width: 1;
}

way[highway=footway][footway=sidewalk] {
    width: 3;
}

way[highway=footway][footway=crossing] {
    width: 3;
    color: #00aa80;
    dashes: 3, 6;
}
way|z19-[highway=footway][footway=crossing] {
    width: 1;
    color: #00aa80;
    dashes: none;
}
way|z19-[highway=footway][footway=crossing]::sidewalks_left {
    offset: 11.5;
    width: 2;
    color: #00aa80;
    dashes: 5;
}
way|z19-[highway=footway][footway=crossing]::sidewalks_right {
    offset: -11.5;
    width: 2;
    color: #00aa80;
    dashes: 5;
}

way[highway=footway][footway=traffic_island] {
    width: 3;
    color: #00aa80;
}
way|z19-[highway=footway][footway=island],
way|z19-[highway=footway][footway=traffic_island] {
    width: 1;
    color: #00aa80;
}
way|z19-[highway=footway][footway=island]::sidewalks_left,
way|z19-[highway=footway][footway=traffic_island]::sidewalks_left {
    offset: 10;
    width: 5;
    color: #00aa80;
    dashes: 5;
}
way|z19-[highway=footway][footway=island]::sidewalks_right,
way|z19-[highway=footway][footway=traffic_island]::sidewalks_right {
    offset: -10;
    width: 5;
    color: #00aa80;
    dashes: 5;
}

way[highway=footway][footway=link] {
    width: 3;
    color: #69aa00;
    dashes: 2, 4;
}

way[highway=footway][footway=alley],
way[highway=footway][footway=access_aisle],
way[highway=footway][footway=access] {
    width: 2;
    dashes: 5, 10;
}

way[foot=use_sidepath],
way[foot=private],
way[foot=no] {
    width: max(prop("width"), 1);
    opacity: 0.3;
}

Styles_SidewalksAndFootways-style.mapcss, Styles_SidewalksAndFootways.zip

Attachments (13)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.