From 3b05be5f142f6b47c0e5cf71694843ed01a5d082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Stra=C3=9Fburger?= Date: Sat, 1 Oct 2016 04:47:10 +0200 Subject: [PATCH] :art: allow specific feature selection in render order (road->water->road:bridge) --- src/Renderer.coffee | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Renderer.coffee b/src/Renderer.coffee index a797a54..d8cab35 100644 --- a/src/Renderer.coffee +++ b/src/Renderer.coffee @@ -21,10 +21,11 @@ module.exports = class Renderer #"poi_label", "water", drawOrder: [ - "water" "admin" "building" "road" + "water" + "road:structure=bridge" "place_label" "poi_label" @@ -106,6 +107,12 @@ module.exports = class Renderer _drawLayers: -> 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] scale = Math.pow 2, @zoom @@ -122,7 +129,8 @@ module.exports = class Renderer features = @features[layer].tree.search box @notify "rendering #{features.length} #{layer} features.." for feature in features - @_drawFeature layer, feature, scale + if not filter or feature.data.properties[filterField] is filterValue + @_drawFeature layer, feature, scale _drawFeature: (layer, data, scale) -> feature = data.data