Revision 14b0bb0...

Go back to digest for 24th April 2011

Optimization in Educational

Thibaut Gridel committed changes in [marble] /lib:

PlacemarkLayout: tile level caching of Placemarks

More popular placemarks get to high-level "tile level", less popular go to low-level ones.
For a given BBox, calculating the "Tile pyramid" and getting placemarks from those TileIds provides a small subset of placemarks that should get rendered.

Some figures: we have currently c.a. 22000 placemarks, and most BBox provides an 10ish TileIds Pyramid, leading so c.a. 400 placemarks.
The scalability of filtering placemarks sounds quite obvious.

Tweaking level, placemark popIdx, and radius to level is TODO:
- radius to level table (used to determine at which radius which level should be used),
- popIdx to level (used to seed placemarks to level according to their PopIdx)
- filtering the first 300 placemarks to display (should stay untouched)

RB: 6604
RevBy: Torsten Rahn

File Changes

Modified 3 files
  • /lib
  •   src/PlacemarkLayout.cpp
  •   src/PlacemarkLayout.h
  •   src/TileId.h
3 files changed in total