Vector Tiles for Marble

Here are a few requirements that need to be met for technical, common-sense or organizational reasons. Of course they don't have to be met immediately but should at least serve as a goal.

Server Requirements

  • For reasons of performance tile data files should be available statically (so it shouldn't be necessary to have a script create the tiles on demand).
  • It should be easy to set up any server based solution on the KDE server.
  • Tile update needs to be possibly regularly (e.g. once a week).
  • The tiling access scheme should be similar to the current bitmap tiles: i.e. the access urls should be similar to e.g.

Tiling Requirements

  • It needs to be possible to render single tiles alone.
  • It should be possible to show tiles from different tile levels at once.
  • It needs to be possible to identify features across tiles and across tile levels. E.g. it should be possible to identify several sections of the same river belonging together or resembling the same river. This could be done through an id that serves as a unique identifier for the same geometrical feature across tiles. This is also necessary to display the "same" feature only once in the model (despite having versions for multiple zoom levels in memory)
  • It should be possible to fill or select a certain polygon (e.g. a country) inspite of the fact that it might be distributed across different tiles that possibly belong to different tile levels.
  • The data that is stored inside a tile should stay relatively small (in the kB range).
  • The tiles rendered should adhere to cartographic standards.

Discussion of a possible Vector Tiling approach

The idea is to create tiles similar to the standard OpenStreetMap vector tiles. So the data inside the tile needs to get prefiltered: The polygons provided for display need to be carefully chosen (depending on importance) and need to be simplified in advance (Node reduction). So a simplified tile could look like this:

Hooknode a.png

Content is available under Creative Commons License SA 4.0 unless otherwise noted.