Hi Thorsten

If you send me details about your procedures/scripts... that produced your last 
working sea.zip and how/where to get the latest base data to run it on I'll 
have a go at running it and see if I can diagnose the OutOfMemoryError you 
reported on 28th May.

I don't want to try varying the procedure yet.

I used to understand the sea generation logic within a tile when not using 
sea.zip and the things that went wrong when bits of coastline were missing, 
crossed, in the wrong direction or applied incorrectly, but haven't tackled 
sea/optional/PrecompSea{Generator/Merger/Saver}.java

Ticker


On Sat, 2026-06-27 at 18:17 +0200, Thorsten Kukuk via mkgmap-dev wrote:
> 
> Hi,
> 
> I finally found a solution for the heap overflow errors when using the 
> mkgmap SeaGenerator, seems a combination of several security updates 
> including java.
> I have now a container with a software combination which works with old 
> land_polygons.shp files, but not with new ones.
> 
> If I use the land_polygons.shp file from OSM mkgmap SeaGenerator seems 
> to be stuck somewhere in an endless loop, it doesn't seem to do 
> anything.
> With my own generated ones, I get:
> 
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 48.867188,83.320313, index key is 
> 2260992_3866624
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 48.164063,83.320313, index key is 
> 2228224_3866624
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 48.164063,84.023438, index key is 
> 2228224_3899392
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 47.460938,84.023438, index key is 
> 2195456_3899392
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 47.460938,84.726563, index key is 
> 2195456_3932160
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 46.757813,84.023438, index key is 
> 2162688_3899392
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 46.757813,84.726563, index key is 
> 2162688_3932160
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 46.054688,84.023438, index key is 
> 2129920_3899392
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 46.054688,84.726563, index key is 
> 2129920_3932160
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 45.351563,84.726563, index key is 
> 2097152_3932160
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 44.648438,84.726563, index key is 
> 2064384_3932160
> SCHWERWIEGEND (SeaGenerator): Precomp sea data seems to be wrong, 
> land-only tile is flooded around 43.945313,84.726563, index key is 
> 2031616_3932160
> 
> If I load the land_polygons.shp file, everything is fine. This tile is 
> land only, no sea. Same for all tiles around this tile. The OSM data 
> does not contain any coastline in this tile and the tiles around, too.
> 
> Any ideas what's still wrong here?
> 
> AI claims this:
>    Here's what's happening:
> 
>    1. PrecompSeaMerger processes your land polygons from the shapefile
>    2. If a tile has no land polygons intersecting it, the merger creates 
> a sea polygon for that tile (line 159)
>    3. This sea polygon is returned with just one way tagged as 
> natural=sea
>    4. PrecompSeaSaver receives this single sea way and writes it to the 
> index as "sea" (line 108)
>    5. The reference file (sea-check.txt) expects this tile to be land 
> ('l')
>    6. This causes the mismatch error
> 
>    Why This Happens
> 
>    The logic assumes that if no land polygons from the shapefile 
> intersect a tile, the tile must be sea. This is WRONG for interior 
> continental areas far from any coastline!
> 
>    A tile can have:
>    - No land polygons intersecting it (because the shapefile only 
> contains coastal land polygons)
>    - AND still be a land tile (because it's in the interior of a 
> continent)
> 
>    The shapefile likely only contains land polygons near coastlines, not 
> complete continental coverage. Interior tiles (like the one at 
> 48.867188,83.320313 in Kazakhstan) have no polygons in
>    the shapefile, so the code incorrectly marks them as sea.
> 
>    Solution
> 
>    The code in PrecompSeaMerger.java needs to be fixed to handle the case 
> where a tile has no intersecting polygons.
> 
> 
> Does this make sense to anybody?
> 
> Thanks,
> Thorsten
> _______________________________________________
> mkgmap-dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> %(web_page_url)slistinfo/%(_internal_name)s
_______________________________________________
mkgmap-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo/%(_internal_name)s

Reply via email to