logo separator

[mkgmap-dev] A few thoughts on non-rectangular tiles

From Steve Ratcliffe steve at parabola.me.uk on Mon Dec 1 12:17:20 GMT 2014


Here are a few thoughts on non-rectangular tiles. The main problem is
knowing where to start really.

The Files

I looked into this a few years ago and I don't think that there is
anything fundamentally different about producing non-rectangular

It is normal to split tiles at land based country borders, so that the
tile follows the border exactly.  For countries separated by sea, such
as Sweden and Finland straight lines can often be used without regard
to the alignment that we currently use.

- You just create a tile with an arbitrary shape, the background
   polygon if any follows the shape.
- The TRE section still records the bounding box of the tile.
- the TDB file still contains those rectangular bounding boxes and so
   they will, in general, overlap.
- You add add the actual shape of the tile as a 'map selection area' to
   the overview map.

So we need to allow an arbitrary polygon as background in mkgmap.

The majority of tiles would remain rectangular as they at present.
Tiles that would contain a land border need to be further split
along that border. This could be done
1. Directly by splitter
2. By running mkgmap once for each country.
3. Some intermediate process.

I believe it would be best in the long term for splitter to make the
split, but perhaps the other strategies could be used temporarily in
order to concentrate on other parts of the process.

I think that the bounds file (or some similar purpose built file)
should be used.

There is no need to split along coastal boundaries.
Only if a tile would reach to another country does it need to be

When splitter creates the tiles, the actual boundary of a tile needs
to be communicated to mkgmap in some way.


Currently we have restrictions on the alignment of tile boundaries,
these can all go, as this is a constraint to make things easier for us
and not a feature of the format.  There will probably be a few things
to fix up so that the tiles still meet and route without gaps.

I would suggest starting out with one tile cut in two with a sloping
line. If we can get that to work without routing problems or
visible gaps across all zoom levels, then most of the problems should
be sorted out before putting in the work to support completely
arbitrary boundaries.

Then we add a more complex background polygon.


More information about the mkgmap-dev mailing list