From 0171ba39a00a46abccd48f02a01a5340d480a55e Mon Sep 17 00:00:00 2001 From: Arndt Brenschede Date: Sun, 24 Sep 2017 17:01:20 +0200 Subject: [PATCH] preprocesor hack for concrete:lanes/plates -> concrete=lanes/plates --- .../java/btools/mapcreator/OsmCutter.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/brouter-map-creator/src/main/java/btools/mapcreator/OsmCutter.java b/brouter-map-creator/src/main/java/btools/mapcreator/OsmCutter.java index 47d4c60..63ee8b1 100644 --- a/brouter-map-creator/src/main/java/btools/mapcreator/OsmCutter.java +++ b/brouter-map-creator/src/main/java/btools/mapcreator/OsmCutter.java @@ -11,8 +11,8 @@ import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; +import java.util.HashMap; -import btools.expressions.BExpressionContext; import btools.expressions.BExpressionContextNode; import btools.expressions.BExpressionContextWay; import btools.expressions.BExpressionMetaData; @@ -139,6 +139,33 @@ public class OsmCutter extends MapCreatorBase } + private void generatePseudoTags( HashMap map ) + { + // add pseudo.tags for concrete:lanes and concrete:plates + + String concrete = null; + for( String key : map.keySet() ) + { + if ( "concrete".equals( key ) ) + { + return; + } + if ( "surface".equals( key ) ) + { + String value = map.get( key ); + if ( value.startsWith( "concrete:" ) ) + { + concrete = value.substring( "concrete:".length() ); + } + } + } + if ( concrete != null ) + { + map.put( "concrete", concrete ); + } + } + + @Override public void nextWay( WayData w ) throws Exception { @@ -148,6 +175,8 @@ public class OsmCutter extends MapCreatorBase // encode tags if ( w.getTagsOrNull() == null ) return; + generatePseudoTags( w.getTagsOrNull() ); + int[] lookupData = _expctxWay.createNewLookupData(); for( String key : w.getTagsOrNull().keySet() ) {