[solved] is_in() and Running topical mkgmap on Debian Buster

Hi,

I’m used to generate my maps using mkgmap version 4262 from the Debian Buster repo.

#1
Playing with is_in() in lines

railway='rail' & is_in(landuse, military, all_in_or_on) = true    {set railway=light_rail}

or

railway='rail' & is_in(landuse, military, all_in_or_on) = true    [0x14 level 0]

I constantly got errors like

finished check-styles
   Error in style: Error: (lines:564): Expecting ), instead saw landuse

#2
Because I know others successfully using identical syntax, I assume, the is_in() style function may have been introduced to mkgmap on some later relaease. That true?

While I am able to run topical versions of splitter on Buster

java -jar '/home/..../splitter-r615/splitter.jar' ...

I can’t make it work for mkgmap. Download, unzip, make mkgmap (and optionally any .jar in .lib subdir executable) and invoking

java -jar mkgmap.jar ...

either directly from its directory as well as using its full path always results in errors:

finished check-styles
   Mkgmap version 4802
   Time started: Sat Aug 07 21:01:41 CEST 2021
   SCHWERWIEGEND (global): Unexpected error
   java.lang.NullPointerException
	   at uk.me.parabola.mkgmap.reader.osm.POIGeneratorHook.getPlacementOrder(POIGeneratorHook.java:237)
	   at uk.me.parabola.mkgmap.reader.osm.POIGeneratorHook.addPOIsForWays(POIGeneratorHook.java:252)
	   at uk.me.parabola.mkgmap.reader.osm.POIGeneratorHook.end(POIGeneratorHook.java:227)
	   at uk.me.parabola.mkgmap.reader.osm.OsmReadingHooksChain.end(OsmReadingHooksChain.java:78)
	   at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSource.java:151)
	   at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:165)
	   at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:58)
	   at uk.me.parabola.mkgmap.main.Main.lambda$processFilename$1(Main.java:290)
	   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	   at java.base/java.lang.Thread.run(Thread.java:829)
   SCHWERWIEGEND (global): Exiting due to unexpected error
   Number of ExitExceptions: 1

Can somebody give me some pointers?

Thanks, Felix

Hi Felix,

yes, r42262 doesn’t know the is_in() style function.
The traceback for the r4802 version seems to indicate a problem with the use of the ----pois-to-areas-placement option.
Expected is something like --pois-to-areas-placement=entrance=main;entrance=yes;building=entrance

Edit: Yes, I can reproduce the crash with e.g.

java -jar dist\mkgmap.jar --add-pois-to-areas --pois-to-areas-placement=xyz= 4711 ...

(a blank where none is expected)

Hey Gerd,

THANKS.

I was totally on the wrong track, assuming missing or incompatible dependencies. Had tried using other versions before, same result. Next time I will read any traceback more carefully, but still doubt, it will help much.

Indeed, the culprit was in the pois-to-areas-placement parameter, although no blank. I’m doing simplified maps for race-bike use, sparely use POIs at all and so far didn’t care much for their exact placement.

From some template my .cfg had

pois-to-areas-placement=shop=*;amentity=*

I’m now using the default, as in your reply.

And I still used, but got complaints about

check-roundabouts

Is that no longer needed at all?

Greets, Felix

The

option was replaced by different other options. Please check the docs
https://www.mkgmap.org.uk/doc/options

Coincidence?
Jeeze, that’s quick… :smiley: