Index: osm-map-features-z17.xml =================================================================== --- osm-map-features-z17.xml (revision 8737) +++ osm-map-features-z17.xml (working copy) @@ -293,82 +293,82 @@ <!-- Bridge casings --> <rule e="way" k="bridge" v="yes|true"> <rule e="way" k="railway" v="rail"> - <line class="bridge-casing railway-rail-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-rail-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="railway" v="abandoned"> - <line class="bridge-casing railway-rail-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-rail-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="railway" v="light_rail|incline"> - <line class="bridge-casing railway-light-rail-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-light-rail-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="railway" v="subway"> - <line class="bridge-casing railway-subway-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-subway-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="railway" v="tram"> - <line class="bridge-casing railway-tram-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-tram-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="railway" v="narrow_gauge"> - <line class="bridge-casing railway-narrow-gauge-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-narrow-gauge-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="railway" v="preserved"> - <line class="bridge-casing railway-preserved-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-preserved-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="railway" v="monorail"> - <line class="bridge-casing railway-monorail-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing railway-monorail-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="motorway"> - <line class="bridge-casing highway-motorway-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-motorway-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="trunk"> - <line class="bridge-casing highway-trunk-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-trunk-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="primary"> - <line class="bridge-casing highway-primary-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-primary-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="motorway_link"> - <line class="bridge-casing highway-motorway-link-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-motorway-link-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="trunk_link"> - <line class="bridge-casing highway-trunk-link-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-trunk-link-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="primary_link"> - <line class="bridge-casing highway-primary-link-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-primary-link-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="secondary"> - <line class="bridge-casing highway-secondary-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-secondary-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="tertiary"> - <line class="bridge-casing highway-tertiary-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-tertiary-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="unclassified|residential|minor|living_street|road"> - <line class="bridge-casing highway-unclassified-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-unclassified-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="service"> - <line class="bridge-casing highway-service-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-service-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="unsurfaced"> - <line class="bridge-casing highway-unsurfaced-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-unsurfaced-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="track"> - <line class="bridge-casing highway-track-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-track-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="byway"> - <line class="bridge-casing highway-byway-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-byway-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="bridleway"> - <line class="bridge-casing highway-bridleway-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-bridleway-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="cycleway"> - <line class="bridge-casing highway-cycleway-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-cycleway-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="pedestrian"> - <line class="bridge-casing highway-pedestrian-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-pedestrian-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="footway|footpath"> - <line class="bridge-casing highway-footway-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-footway-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> <rule e="way" k="highway" v="steps"> - <line class="bridge-casing highway-steps-bridge-casing" smart-linecap="no"/> + <line class="bridge-casing highway-steps-bridge-casing" smart-linecap="no" suppress-markers-tag="bridge"/> </rule> </rule> @@ -871,108 +871,82 @@ <!-- Tunnels --> <rule e="way" k="tunnel" v="true|yes"> <rule e="way" k="highway" v="steps"> - <line class="tunnel-casing highway-steps-casing tunnel" mask-class="tunnel-core highway-steps-core"/> - <line class="highway-steps-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-steps-casing tunnel" mask-class="tunnel-core highway-steps-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="footway|footpath"> - <line class="tunnel-casing highway-footway-casing tunnel" mask-class="tunnel-core highway-footway-core"/> - <line class="highway-footway-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-footway-casing tunnel" mask-class="tunnel-core highway-footway-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="pedestrian"> - <line class="tunnel-casing highway-pedestrian-casing tunnel" mask-class="tunnel-core highway-pedestrian-core"/> - <line class="highway-pedestrian-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-pedestrian-casing tunnel" mask-class="tunnel-core highway-pedestrian-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="cycleway"> - <line class="tunnel-casing highway-cycleway-casing tunnel" mask-class="tunnel-core highway-cycleway-core"/> - <line class="highway-cycleway-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-cycleway-casing tunnel" mask-class="tunnel-core highway-cycleway-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="bridleway"> - <line class="tunnel-casing highway-bridleway-casing tunnel" mask-class="tunnel-core highway-bridleway-core"/> - <line class="highway-bridleway-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-bridleway-casing tunnel" mask-class="tunnel-core highway-bridleway-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="byway"> - <line class="tunnel-casing highway-byway-1-casing tunnel" mask-class="tunnel-core highway-byway-1-core"/> - <line class="highway-byway-1-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-byway-1-casing tunnel" mask-class="tunnel-core highway-byway-1-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="track"> - <line class="tunnel-casing highway-track-casing tunnel" mask-class="tunnel-core highway-track-core"/> - <line class="highway-track-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-track-casing tunnel" mask-class="tunnel-core highway-track-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="unsurfaced"> - <line class="tunnel-casing highway-unsurfaced-casing tunnel" mask-class="tunnel-core highway-unsurfaced-core"/> - <line class="highway-unsurfaced-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-unsurfaced-casing tunnel" mask-class="tunnel-core highway-unsurfaced-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="service"> - <line class="tunnel-casing highway-service-casing tunnel" mask-class="tunnel-core highway-service-core"/> - <line class="highway-service-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-service-casing tunnel" mask-class="tunnel-core highway-service-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="unclassified|residential|minor|tertiary|living_street"> - <line class="tunnel-casing highway-unclassified-casing tunnel" mask-class="tunnel-core highway-unclassified-core"/> - <line class="highway-unclassified-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-unclassified-casing tunnel" mask-class="tunnel-core highway-unclassified-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="road"> - <line class="tunnel-casing highway-unclassified-casing tunnel" mask-class="tunnel-core highway-road-core"/> - <line class="highway-unclassified-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-unclassified-casing tunnel" mask-class="tunnel-core highway-road-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="tertiary"> - <line class="tunnel-casing highway-tertiary-casing tunnel" mask-class="tunnel-core highway-tertiary-core"/> - <line class="highway-tertiary-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-tertiary-casing tunnel" mask-class="tunnel-core highway-tertiary-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="secondary"> - <line class="tunnel-casing highway-secondary-casing tunnel" mask-class="tunnel-core highway-secondary-core"/> - <line class="highway-secondary-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-secondary-casing tunnel" mask-class="tunnel-core highway-secondary-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="primary_link"> - <line class="tunnel-casing highway-primary-link-casing tunnel" mask-class="tunnel-core highway-primary-link-core"/> - <line class="highway-primary-link-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-primary-link-casing tunnel" mask-class="tunnel-core highway-primary-link-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="trunk_link"> - <line class="tunnel-casing highway-trunk-link-casing tunnel" mask-class="tunnel-core highway-trunk-link-core"/> - <line class="highway-trunk-link-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-trunk-link-casing tunnel" mask-class="tunnel-core highway-trunk-link-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="motorway_link"> - <line class="tunnel-casing highway-motorway-link-casing tunnel" mask-class="tunnel-core highway-motorway-link-core"/> - <line class="highway-motorway-link-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-motorway-link-casing tunnel" mask-class="tunnel-core highway-motorway-link-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="primary"> - <line class="tunnel-casing highway-primary-casing tunnel" mask-class="tunnel-core highway-primary-core"/> - <line class="highway-primary-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-primary-casing tunnel" mask-class="tunnel-core highway-primary-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="trunk"> - <line class="tunnel-casing highway-trunk-casing tunnel" mask-class="tunnel-core highway-trunk-core"/> - <line class="highway-trunk-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-trunk-casing tunnel" mask-class="tunnel-core highway-trunk-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="highway" v="motorway"> - <line class="tunnel-casing highway-motorway-casing tunnel" mask-class="tunnel-core highway-motorway-core"/> - <line class="highway-motorway-casing highway-tunnel-ends"/> + <line class="tunnel-casing highway-motorway-casing tunnel" mask-class="tunnel-core highway-motorway-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="railway" v="monorail"> - <line class="tunnel-casing railway-monorail-casing tunnel" mask-class="tunnel-core railway-monorail-core"/> - <line class="railway-monorail-casing highway-tunnel-ends"/> + <line class="tunnel-casing railway-monorail-casing tunnel" mask-class="tunnel-core railway-monorail-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="railway" v="preserved"> - <line class="tunnel-casing railway-preserved-casing tunnel" mask-class="tunnel-core railway-preserved-core"/> - <line class="railway-preserved-casing highway-tunnel-ends"/> + <line class="tunnel-casing railway-preserved-casing tunnel" mask-class="tunnel-core railway-preserved-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="railway" v="narrow_gauge"> - <line class="tunnel-casing railway-narrow-gauge-casing tunnel" mask-class="tunnel-core railway-narrow-gauge-core"/> - <line class="railway-narrow-gauge-casing highway-tunnel-ends"/> + <line class="tunnel-casing railway-narrow-gauge-casing tunnel" mask-class="tunnel-core railway-narrow-gauge-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="railway" v="tram"> - <line class="tunnel-casing railway-tram-casing tunnel" mask-class="tunnel-core railway-tram-core"/> - <line class="railway-tram-casing highway-tunnel-ends"/> + <line class="tunnel-casing railway-tram-casing tunnel" mask-class="tunnel-core railway-tram-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="railway" v="subway"> - <line class="tunnel-casing railway-subway-casing tunnel" mask-class="tunnel-core railway-subway-core"/> - <line class="railway-subway-casing highway-tunnel-ends"/> + <line class="tunnel-casing railway-subway-casing tunnel" mask-class="tunnel-core railway-subway-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="railway" v="light_rail|incline"> - <line class="tunnel-casing railway-light-rail-casing tunnel" mask-class="tunnel-core railway-light-rail-core"/> - <line class="railway-light-rail-casing highway-tunnel-ends"/> + <line class="tunnel-casing railway-light-rail-casing tunnel" mask-class="tunnel-core railway-light-rail-core" suppress-markers-tag="tunnel"/> </rule> <rule e="way" k="railway" v="rail"> - <line class="tunnel-casing railway-rail-casing tunnel" mask-class="tunnel-core railway-rail-1-core"/> - <line class="railway-rail-casing highway-tunnel-ends"/> + <line class="tunnel-casing railway-rail-casing tunnel" mask-class="tunnel-core railway-rail-1-core" suppress-markers-tag="tunnel"/> </rule> </rule> @@ -2139,7 +2113,7 @@ stroke: white; font-family: "DejaVu Sans"; font-weight: normal; - text-anchor: middle; + text-anchor: middle; } .highway-name { @@ -2175,6 +2149,8 @@ stroke-linecap: butt; stroke-linejoin: round; fill: none; + marker-start: url(#marker-tunnel-start); + marker-end: url(#marker-tunnel-end); } .tunnel-core { @@ -3446,13 +3422,6 @@ fill: white; } - .highway-tunnel-ends { - stroke-opacity: 0; - fill: none; - marker-start: url(#marker-tunnel-start); - marker-end: url(#marker-tunnel-end); - } - /* Osmarender built-in styles - do not remove */ .osmarender-stroke-linecap-round { stroke-linecap: round; } .osmarender-stroke-linecap-butt { stroke-linecap: butt; } @@ -3460,7 +3429,6 @@ .osmarender-mask-white { stroke: white; } .osmarender-no-marker-start { marker-start: none; } .osmarender-no-marker-end { marker-end: none; } - </style> <svg:pattern x="0" y="0" width="200" height="200" id="wood-deciduous-pattern" patternUnits="userSpaceOnUse" patternTransform="scale(0.1)"> @@ -3601,11 +3569,34 @@ <svg:path fill="none" stroke="#ff4040" stroke-width="0.1" d="M5,0 L0,5 M0,0 L5,5"/> </svg:pattern> - <svg:marker id="bridge-casing-start" fill="none" stroke-width="0.1px" stroke="#777777" markerWidth="1px" markerHeight="1px" orient="auto"> - <svg:path d="M-0.25,0.75 L0.5,0 L-0.25,-0.75"/> + <svg:marker + id="bridge-casing-end" + markerUnits="strokeWidth" + fill='none' + stroke-width='0.06px' + viewBox='-1 -1 2 2' + refX='1' + refY='1' + markerWidth='2' + markerHeight='2' + stroke='#777777' + orient="auto"> + <svg:path d="M -0.05,0.45 L 0.3,0.8 M -0.05,-0.45 L 0.3,-0.8" /> </svg:marker> - <svg:marker id="bridge-casing-end" fill="none" stroke-width="0.1px" stroke="#777777" markerWidth="1px" markerHeight="1px" orient="auto"> - <svg:path d="M0.25,0.75 L-0.5,0 L0.25,-0.75"/> + + <svg:marker + id="bridge-casing-start" + markerUnits="strokeWidth" + fill='none' + stroke-width='0.06px' + viewBox='-1 -1 2 2' + refX='1' + refY='1' + markerWidth='2' + markerHeight='2' + stroke='#777777' + orient="auto"> + <svg:path d="M 0.05,0.45 L -0.3,0.8 M 0.05,-0.45 L -0.3,-0.8" /> </svg:marker> <svg:marker id="marker-tunnel-start" viewBox="0 0 10 10" refX="5px" refY="5px" markerUnits="strokeWidth" fill="none" stroke-width="0.5px" stroke="#777777" markerWidth="2px" markerHeight="2px" orient="auto"> Index: osmarender.xsl =================================================================== --- osmarender.xsl (revision 8737) +++ osmarender.xsl (working copy) @@ -446,11 +446,27 @@ Foundation, Inc., 59 Temple Place, Suite <!-- The current way element if applicable --> <xsl:param name="layer"/> + <xsl:variable name="extraClasses"> + <xsl:if test="$instruction/@suppress-markers-tag != ''"> + <xsl:variable name="suppressMarkersTag" select="$instruction/@suppress-markers-tag" /> + <xsl:variable name="firstNode" select="key('nodeById',$way/nd[1]/@ref)"/> + <xsl:variable name="firstNodeMarkerGroupConnectionCount" + select="count(key('wayByNode',$firstNode/@id)/tag[@k=$suppressMarkersTag and ( @v = 'yes' or @v = 'true' )])" /> + <xsl:variable name="lastNode" select="key('nodeById',$way/nd[last()]/@ref)"/> + <xsl:variable name="lastNodeMarkerGroupConnectionCount" + select="count(key('wayByNode',$lastNode/@id)/tag[@k=$suppressMarkersTag and ( @v = 'yes' or @v = 'true' )])" /> + + <xsl:if test="$firstNodeMarkerGroupConnectionCount > 1">osmarender-no-marker-start</xsl:if> + <xsl:if test="$lastNodeMarkerGroupConnectionCount > 1"> osmarender-no-marker-end</xsl:if> + </xsl:if> + </xsl:variable> + <xsl:choose> <xsl:when test="$instruction/@smart-linecap='no'"> <xsl:call-template name='drawPath'> <xsl:with-param name='pathId' select="concat('way_normal_',$way/@id)"/> <xsl:with-param name='instruction' select='$instruction'/> + <xsl:with-param name="extraClasses" select='$extraClasses'/> </xsl:call-template> </xsl:when> <xsl:otherwise> @@ -458,6 +474,7 @@ Foundation, Inc., 59 Temple Place, Suite <xsl:with-param name="instruction" select="$instruction"/> <xsl:with-param name="way" select="$way"/> <xsl:with-param name="layer" select="$layer"/> + <xsl:with-param name="extraClasses" select='$extraClasses'/> </xsl:call-template> </xsl:otherwise> </xsl:choose> @@ -469,6 +486,7 @@ Foundation, Inc., 59 Temple Place, Suite <xsl:param name="way"/> <!-- The current way element if applicable --> <xsl:param name="layer"/> + <xsl:param name="extraClasses"/> <!-- The first half of the first segment and the last half of the last segment are treated differently from the main part of the way path. The main part is always rendered with a butt line-cap. Each end fragment is rendered with @@ -505,21 +523,21 @@ Foundation, Inc., 59 Temple Place, Suite <xsl:call-template name='drawPath'> <xsl:with-param name='pathId' select="concat('way_start_',$way/@id)"/> <xsl:with-param name='instruction' select='$instruction'/> - <xsl:with-param name="extraClasses">osmarender-no-marker-end</xsl:with-param> + <xsl:with-param name="extraClasses"><xsl:value-of select="$extraClasses"/> osmarender-no-marker-end</xsl:with-param> </xsl:call-template> </xsl:when> <xsl:when test="$firstNodeLowerLayerConnectionCount>0"> <xsl:call-template name='drawPath'> <xsl:with-param name='pathId' select="concat('way_start_',$way/@id)"/> <xsl:with-param name='instruction' select='$instruction'/> - <xsl:with-param name="extraClasses">osmarender-stroke-linecap-butt osmarender-no-marker-end</xsl:with-param> + <xsl:with-param name="extraClasses"><xsl:value-of select="$extraClasses"/> osmarender-stroke-linecap-butt osmarender-no-marker-end</xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name='drawPath'> <xsl:with-param name='pathId' select="concat('way_start_',$way/@id)"/> <xsl:with-param name='instruction' select='$instruction'/> - <xsl:with-param name="extraClasses">osmarender-stroke-linecap-round osmarender-no-marker-end</xsl:with-param> + <xsl:with-param name="extraClasses"><xsl:value-of select="$extraClasses"/> osmarender-stroke-linecap-round osmarender-no-marker-end</xsl:with-param> </xsl:call-template> </xsl:otherwise> @@ -532,6 +550,7 @@ Foundation, Inc., 59 Temple Place, Suite <!-- Count the number of segments connecting to the last node. If there is only one (the current segment) then draw a default line. --> <xsl:variable name="lastNodeConnectionCount" select="count(key('wayByNode',$lastNode/@id))" /> + <!-- Count the number of connectors at a layer lower than the current layer --> <xsl:variable name="lastNodeLowerLayerConnectionCount" select=" count(key('wayByNode',$lastNode/@id)/tag[@k='layer' and @v < $layer]) + @@ -544,21 +563,21 @@ Foundation, Inc., 59 Temple Place, Suite <xsl:call-template name='drawPath'> <xsl:with-param name='pathId' select="concat('way_end_',$way/@id)"/> <xsl:with-param name='instruction' select='$instruction'/> - <xsl:with-param name="extraClasses">osmarender-no-marker-start</xsl:with-param> + <xsl:with-param name="extraClasses"><xsl:value-of select="$extraClasses"/> osmarender-no-marker-start</xsl:with-param> </xsl:call-template> </xsl:when> <xsl:when test="$lastNodeLowerLayerConnectionCount>0"> <xsl:call-template name='drawPath'> <xsl:with-param name='pathId' select="concat('way_end_',$way/@id)"/> <xsl:with-param name='instruction' select='$instruction'/> - <xsl:with-param name="extraClasses">osmarender-stroke-linecap-butt osmarender-no-marker-start</xsl:with-param> + <xsl:with-param name="extraClasses"><xsl:value-of select="$extraClasses"/> osmarender-stroke-linecap-butt osmarender-no-marker-start</xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name='drawPath'> <xsl:with-param name='pathId' select="concat('way_end_',$way/@id)"/> <xsl:with-param name='instruction' select='$instruction'/> - <xsl:with-param name="extraClasses">osmarender-stroke-linecap-round osmarender-no-marker-start</xsl:with-param> + <xsl:with-param name="extraClasses"><xsl:value-of select="$extraClasses"/> osmarender-stroke-linecap-round osmarender-no-marker-start</xsl:with-param> </xsl:call-template> </xsl:otherwise>