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

Reply via email to