diff -Nru mkgmap-0.0.0+svn4555/debian/changelog mkgmap-0.0.0+svn4565/debian/changelog --- mkgmap-0.0.0+svn4555/debian/changelog 2020-07-03 12:18:16.000000000 +0000 +++ mkgmap-0.0.0+svn4565/debian/changelog 2020-08-01 06:24:34.000000000 +0000 @@ -1,3 +1,10 @@ +mkgmap (0.0.0+svn4565-1) unstable; urgency=medium + + * New upstream SVN snapshot. + * Mark patches as Forwarded: not-needed. + + -- Bas Couwenberg Sat, 01 Aug 2020 08:24:34 +0200 + mkgmap (0.0.0+svn4555-1) unstable; urgency=medium * New upstream SVN snapshot. diff -Nru mkgmap-0.0.0+svn4555/debian/patches/build_xml.patch mkgmap-0.0.0+svn4565/debian/patches/build_xml.patch --- mkgmap-0.0.0+svn4555/debian/patches/build_xml.patch 2020-03-01 05:44:52.000000000 +0000 +++ mkgmap-0.0.0+svn4565/debian/patches/build_xml.patch 2020-08-01 06:24:34.000000000 +0000 @@ -9,6 +9,7 @@ https://github.com/osmandapp/OsmAnd-tools/blob/master/OsmAndMapCreator/src/crosby/binary/Osmformat.java I need to check this out Author: Andreas Tille +Forwarded: not-needed --- a/build.xml +++ b/build.xml diff -Nru mkgmap-0.0.0+svn4555/doc/options.txt mkgmap-0.0.0+svn4565/doc/options.txt --- mkgmap-0.0.0+svn4555/doc/options.txt 2020-06-22 16:00:33.000000000 +0000 +++ mkgmap-0.0.0+svn4565/doc/options.txt 2020-07-22 19:17:33.000000000 +0000 @@ -207,7 +207,7 @@ ;--mdr7-excl=name[,name...] : Specify words which should be omitted from the road index. It was added before option road-name-config and is probably no longer needed. -: Example usage: --x-mdr7-excl="Road, Street, Weg" +: Example usage: --mdr7-excl="Road, Street, Weg" ;--mdr7-del=name[,name...] : Use this option if your style adds strings to the labels of roads which you diff -Nru mkgmap-0.0.0+svn4555/resources/help/en/options mkgmap-0.0.0+svn4565/resources/help/en/options --- mkgmap-0.0.0+svn4555/resources/help/en/options 2020-06-22 16:00:34.000000000 +0000 +++ mkgmap-0.0.0+svn4565/resources/help/en/options 2020-07-22 19:17:31.000000000 +0000 @@ -205,7 +205,7 @@ --mdr7-excl=name[,name...] Specify words which should be omitted from the road index. It was added before option road-name-config and is probably no longer needed. - Example usage: --x-mdr7-excl="Road, Street, Weg" + Example usage: --mdr7-excl="Road, Street, Weg" --mdr7-del=name[,name...] Use this option if your style adds strings to the labels of roads which you diff -Nru mkgmap-0.0.0+svn4555/resources/mkgmap-version.properties mkgmap-0.0.0+svn4565/resources/mkgmap-version.properties --- mkgmap-0.0.0+svn4555/resources/mkgmap-version.properties 2020-06-22 16:00:46.000000000 +0000 +++ mkgmap-0.0.0+svn4565/resources/mkgmap-version.properties 2020-07-22 19:17:43.000000000 +0000 @@ -1,2 +1,2 @@ -svn.version: 4555 -build.timestamp: 2020-06-22T17:00:46+0100 +svn.version: 4565 +build.timestamp: 2020-07-22T20:17:43+0100 diff -Nru mkgmap-0.0.0+svn4555/resources/styles/default/inc/roadspeed mkgmap-0.0.0+svn4565/resources/styles/default/inc/roadspeed --- mkgmap-0.0.0+svn4555/resources/styles/default/inc/roadspeed 2020-06-22 16:00:34.000000000 +0000 +++ mkgmap-0.0.0+svn4565/resources/styles/default/inc/roadspeed 2020-07-22 19:17:30.000000000 +0000 @@ -14,6 +14,11 @@ # 0 | 3 mph / 5 km/h # +maxspeed:advisory=* {set maxspeed='${maxspeed:advisory}'} +#maxspeed:practial=* {set maxspeed='${maxspeed:practial}'} +# maxspeed:practial is disabled here in the default style because verifiability of it is disputed. +# see: https://wiki.openstreetmap.org/wiki/Key:maxspeed:practical + maxspeed=walk { set maxspeed=10 } maxspeed~'.*:living_street' { set maxspeed=10 } @@ -40,3 +45,9 @@ maxspeed=* & mkgmap:road-speed-max!=* & maxspeedkmh() <= 120 { set mkgmap:road-speed-max = 6 } # mkgmap:road-speed-max = 7 has no effect #maxspeed=* & mkgmap:road-speed-max!=* { set mkgmap:road-speed-max = 7 } + +# Experiments with Garmin devices have deduced 7/unlimited speed to be device dependent; values of 112 & +# 132 km/h (70, 82 mph) seen: http://www.mkgmap.org.uk/pipermail/mkgmap-dev/2014q3/021620.html +# The following rule limits it for all countries except Germany. A few other roads elsewhere are unlimited +# and they would be expected to have a maxspeed:* tag that will override this. +highway=motorway & maxspeed!=* & mkgmap:road-speed-max!=* & mkgmap:country!=DEU {set mkgmap:road-speed-max=6} diff -Nru mkgmap-0.0.0+svn4555/resources/typ-files/mapnik.txt mkgmap-0.0.0+svn4565/resources/typ-files/mapnik.txt --- mkgmap-0.0.0+svn4555/resources/typ-files/mapnik.txt 2020-06-22 16:00:35.000000000 +0000 +++ mkgmap-0.0.0+svn4565/resources/typ-files/mapnik.txt 2020-07-22 19:17:31.000000000 +0000 @@ -2317,7 +2317,7 @@ ;1 [end] [_point] -type=0x021 +type=0x020 subtype=0x00 ;GRMN_TYPE: // String=Exit @@ -2341,7 +2341,7 @@ ;12345678 [end] [_point] -type=0x021 +type=0x023 subtype=0x0f ;GRMN_TYPE: // String=Services diff -Nru mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java --- mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java 2020-06-22 16:00:30.000000000 +0000 +++ mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java 2020-07-22 19:17:26.000000000 +0000 @@ -151,6 +151,7 @@ private final boolean linkPOIsToWays; private final boolean mergeRoads; private final boolean routable; + private boolean forceEndNodesRoutingNodes; private final Tags styleOptionTags; private static final String STYLE_OPTION_PREF = "mkgmap:option:"; private final PrefixSuffixFilter prefixSuffixFilter; @@ -224,6 +225,7 @@ admLevelNod3 = props.getProperty("add-boundary-nodes-at-admin-boundaries", 2); addBoundaryNodesAtAdminBoundaries = routable && admLevelNod3 > 0; keepBlanks = props.containsKey("keep-blanks"); + forceEndNodesRoutingNodes = !props.getProperty("no-force-end-nodes-routing-nodes", false); } /** @@ -516,6 +518,7 @@ /** One type result for nodes to avoid recreating one for each node. */ private NodeTypeResult nodeTypeResult = new NodeTypeResult(); + private class NodeTypeResult implements TypeResult { private Node node; /** flag if the rule was fired */ @@ -967,7 +970,7 @@ if ("left".equals(driveOn) && numDriveOnLeftRoads == 0 && numDriveOnRightRoads > 0) log.warn("The drive-on-left flag is set but tile contains only drive-on-right roads"); if ("right".equals(driveOn) && numDriveOnRightRoads == 0 && numDriveOnLeftRoads > 0) - log.warn("The drive-on-left flag is NOT set used but tile contains only drive-on-left roads"); + log.warn("The drive-on-left flag is NOT set but tile contains only drive-on-left roads"); } assert dol != null; return dol; @@ -1499,6 +1502,13 @@ */ private void addRoadAfterSplittingLoops(ConvertedWay cw) { Way way = cw.getWay(); + + if (routable && (forceEndNodesRoutingNodes || wayRelMap.containsKey(way.getId()))) { + // make sure the way has nodes at each end + way.getPoints().get(0).incHighwayCount(); + way.getPoints().get(way.getPoints().size() - 1).incHighwayCount(); + } + // check if the way is a loop or intersects with itself boolean wayWasSplit = true; // aka rescan required @@ -2108,7 +2118,7 @@ int replType = -1; try { replType = Integer.decode(replTypeString); - if (GType.isRoutableLineType(replType)) { + if (GType.isSpecialRoutableLineType(replType)) { replType = -1; log.error("type value in", tagKey, "should not be a routable type:" + replTypeString); } diff -Nru mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/reader/osm/GType.java mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/reader/osm/GType.java --- mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/reader/osm/GType.java 2020-06-22 16:00:30.000000000 +0000 +++ mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/reader/osm/GType.java 2020-07-22 19:17:25.000000000 +0000 @@ -260,7 +260,7 @@ * known to cause routing errors if used for non-routable lines. */ public static boolean isSpecialRoutableLineType(int type){ - return type >= 0x01 && type <= 0x13 || type == 0x16 || type == 0x1a || type == 0x1b; + return type >= 0x01 && type <= 0x13 || type == 0x16 || type == 0x1a || type == 0x1b || type >= 0x2c && type <= 0x2f; } /** diff -Nru mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/reader/osm/OsmHandler.java mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/reader/osm/OsmHandler.java --- mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/reader/osm/OsmHandler.java 2020-06-22 16:00:30.000000000 +0000 +++ mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/reader/osm/OsmHandler.java 2020-07-22 19:17:25.000000000 +0000 @@ -48,6 +48,7 @@ private long firstNodeRef; private long lastNodeRef; private boolean missingNodeRef; + private boolean removeEmptyValue = true; /** * Set a set of tags with values that are to be deleted on input. @@ -101,7 +102,7 @@ * should be discarded. */ protected String keepTag(String key, String val) { - if (val.isEmpty()) + if (removeEmptyValue && val.isEmpty()) return null; if(deletedTags != null) { Set vals = deletedTags.get(key); @@ -206,6 +207,14 @@ this.removeFixme = b; } + /** + * Enable removal of tags / value pairs where value is empty. + * @param b true: enable the filter + */ + public void setDeleteEmptyValueTag(boolean b) { + this.removeEmptyValue= b; + } + public boolean isIgnoreBounds() { return ignoreBounds; } @@ -234,4 +243,5 @@ */ public abstract void parse(InputStream is) throws FormatException; + } diff -Nru mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/reader/osm/OsmMapDataSource.java mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/reader/osm/OsmMapDataSource.java --- mkgmap-0.0.0+svn4555/src/uk/me/parabola/mkgmap/reader/osm/OsmMapDataSource.java 2020-06-22 16:00:30.000000000 +0000 +++ mkgmap-0.0.0+svn4565/src/uk/me/parabola/mkgmap/reader/osm/OsmMapDataSource.java 2020-07-22 19:17:25.000000000 +0000 @@ -220,6 +220,9 @@ if (getConfig().getProperty("ignore-fixme-values", false)) { handler.setDeleteFixmeValues(true); } + if (getConfig().getProperty("keep-empty-value-tags", false)) { + handler.setDeleteEmptyValueTag(false); + } } protected void createElementSaver() { diff -Nru mkgmap-0.0.0+svn4555/test/func/route/SimpleRouteTest.java mkgmap-0.0.0+svn4565/test/func/route/SimpleRouteTest.java --- mkgmap-0.0.0+svn4555/test/func/route/SimpleRouteTest.java 2020-06-22 16:00:37.000000000 +0000 +++ mkgmap-0.0.0+svn4565/test/func/route/SimpleRouteTest.java 2020-07-22 19:17:33.000000000 +0000 @@ -71,7 +71,7 @@ case "NOD": count++; System.out.println("NOD size " + size); - assertEquals("NOD size", 146631, size); + assertEquals("NOD size", 170201, size); break; } }