Hi,
about the flooded tiles: the coastline is currently really broken, but
geofabrik.de doesn't show it. No idea why I don't see it in the
shapefiles but mkgmap...
I'm currently in discussion with the geofabrik people what could be the
root cause that their tool stopped working for some kind of errors (not
all, that's why nobody noticed).
After fixing the coastline in that area the tiles are no longer flooded,
at least when I'm using an old java-1.8.0.
Regards,
Thorsten
Am 2026-06-27 18:17, schrieb Thorsten Kukuk:
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