[Marble-devel] Re: Review Request: PlacemarkLayout: Tile Pyramid mecanism to provide scalable perfo
Torsten Rahn
rahn at kde.org
Fri Apr 15 16:41:46 CEST 2011
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/6604/#review10058
-----------------------------------------------------------
Ship it!
Ship it! ... with fixes.
I tested it and it works extremely well. There are only a few subtle visual differences compared to the previous implementation which we can fix later on.
One thing that still keeps me wondering is the current concept that basically puts a single entry into a single "tile" (and loads the required "upper tile levels" into memory at the same time with all data/tiles being merged in the view). Have you made up your mind how this would work for vector coasts? I guess with polylines we have to do this differently since I guess it's not a viable solution to have the "important" nodes of a polyline stored in lower tile levels and only the more detailed nodes which belong to the higher tile levels "merged in" ... . Any thoughts about this?
/trunk/KDE/kdeedu/marble/src/lib/PlacemarkLayout.h
<http://svn.reviewboard.kde.org/r/6604/#comment11304>
include "GeoDataCoordinates.h"
/trunk/KDE/kdeedu/marble/src/lib/PlacemarkLayout.cpp
<http://svn.reviewboard.kde.org/r/6604/#comment11305>
Can we have some 3-line explanation what this placemarkToTileId does? :-) I figured it but it took me a bit.
/trunk/KDE/kdeedu/marble/src/lib/PlacemarkLayout.cpp
<http://svn.reviewboard.kde.org/r/6604/#comment11303>
const GeoDataCoordinates &
- Torsten
On March 8, 2011, 11:49 p.m., Thibaut Gridel wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/6604/
> -----------------------------------------------------------
>
> (Updated March 8, 2011, 11:49 p.m.)
>
>
> Review request for marble.
>
>
> Summary
> -------
>
> I introduce a "TileId" based storage, whereas each placemarks receives a TileId depending on position and popularity.
> 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.
>
>
> Diffs
> -----
>
> /trunk/KDE/kdeedu/marble/src/lib/PlacemarkLayout.h 1224176
> /trunk/KDE/kdeedu/marble/src/lib/PlacemarkLayout.cpp 1224176
>
> Diff: http://svn.reviewboard.kde.org/r/6604/diff
>
>
> Testing
> -------
>
> Proof of concept of that Pyramid of TileId storage.
> Please report on the Perfo impression and help tweaking:
>
> - 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)
>
>
> Thanks,
>
> Thibaut
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/marble-devel/attachments/20110415/bff119e4/attachment.htm
More information about the Marble-devel
mailing list