Hi Arndt
An OSM Way rather than a Node tagged with highway=motorway_junction
would cause this error.
Patch attached to warn instead of crashing.
Ticker
On Sun, 2020-06-21 at 09:47 +0200, Arndt Röhrig wrote:> Hi @all,
>
> there is a problem in sweden. mkgmap 4553 reports an error and in the
> map a area is missing.
> The tile is missing with my style and with the default style too.
> r4507 works fine.
>
> This area:
> https://speichenkarte.de/bilder/schweden.png
>
> This tile:
> https://speichenkarte.de/bilder/88500015.osm.pbf
>
> Greets
> Arndt
>
> java.lang.ClassCastException: class
> uk.me.parabola.mkgmap.reader.osm.Way cannot be cast to class
> uk.me.parabola.mkgmap.reader.osm.Node
> (uk.me.parabola.mkgmap.reader.osm.Way and
> uk.me.parabola.mkgmap.reader.osm.Node are in unnamed module of loader
> 'app')
> at
> uk.me.parabola.mkgmap.reader.osm.HighwayHooks.finishExits(HighwayHook
> s.java:223)
> at
> uk.me.parabola.mkgmap.reader.osm.HighwayHooks.end(HighwayHooks.java:1
> 86)
> at
> uk.me.parabola.mkgmap.reader.osm.OsmReadingHooksChain.end(OsmReadingH
> ooksChain.java:78)
> at
> uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSour
> ce.java:150)
> at
> uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:160)
> at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:58)
> at
> uk.me.parabola.mkgmap.main.Main.lambda$processFilename$44(Main.java:2
> 89)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoo
> lExecutor.java:1128)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPo
> olExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> _______________________________________________
> mkgmap-dev mailing list
> [email protected]
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
Index: src/uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java (revision 4553)
+++ src/uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java (working copy)
@@ -220,7 +220,9 @@
possibleRoads.add(motorway); // save all possibilities
} else { // probably on 2+ roads, save possibilities to find the more major road (doesn't have to be motorway)
// uses an implicit call of Coord.equals()
- if (motorway.getPoints().contains(((Node) e).getLocation()))
+ if (!(e instanceof Node))
+ log.warn("Motorway exit", exitName, "expected to be a node", e);
+ else if (motorway.getPoints().contains(((Node) e).getLocation()))
possibleRoads.add(motorway);
}
}
Index: src/uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java (revision 4553)
+++ src/uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java (working copy)
@@ -219,8 +219,10 @@
if (isServices) {
possibleRoads.add(motorway); // save all possibilities
} else { // probably on 2+ roads, save possibilities to find the more major road (doesn't have to be motorway)
- // uses an implicit call of Coord.equals()
- if (motorway.getPoints().contains(((Node) e).getLocation()))
+ if (!(e instanceof Node))
+ log.warn("Motorway exit", exitName, "expected to be a Node", e);
+ else if (motorway.getPoints().contains(((Node) e).getLocation()))
+ // uses an implicit call of Coord.equals()
possibleRoads.add(motorway);
}
}
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev