🎨 allow specific feature selection in render order (road->water->road:bridge)

This commit is contained in:
Michael Straßburger 2016-10-01 04:47:10 +02:00
parent bc2d050581
commit 3b05be5f14

View File

@ -21,10 +21,11 @@ module.exports = class Renderer
#"poi_label", "water", #"poi_label", "water",
drawOrder: [ drawOrder: [
"water"
"admin" "admin"
"building" "building"
"road" "road"
"water"
"road:structure=bridge"
"place_label" "place_label"
"poi_label" "poi_label"
@ -106,6 +107,12 @@ module.exports = class Renderer
_drawLayers: -> _drawLayers: ->
for layer in @config.drawOrder for layer in @config.drawOrder
if layer.indexOf(':') isnt -1
[layer, filter] = layer.split /:/
[filterField, filterValue] = filter.split /=/
else
filter = false
continue unless @features?[layer] continue unless @features?[layer]
scale = Math.pow 2, @zoom scale = Math.pow 2, @zoom
@ -122,6 +129,7 @@ module.exports = class Renderer
features = @features[layer].tree.search box features = @features[layer].tree.search box
@notify "rendering #{features.length} #{layer} features.." @notify "rendering #{features.length} #{layer} features.."
for feature in features for feature in features
if not filter or feature.data.properties[filterField] is filterValue
@_drawFeature layer, feature, scale @_drawFeature layer, feature, scale
_drawFeature: (layer, data, scale) -> _drawFeature: (layer, data, scale) ->