[Marble-devel] [Patch] fix access to local maps

Torsten Rahn torsten.rahn at credativ.de
Sun Apr 13 12:08:55 CEST 2008


On Saturday 12 April 2008 23:22:08 Jens-Michael Hoffmann wrote:
> Am Samstag, 12. April 2008 20:44:39 schrieb Torsten Rahn:
> > Be aware though that "MapTheme" is soon to be replaced by the new
> > MapThemeManager class (and support from our new DGML2 parser).
>
> Thanks for the hint, I was just starting to refactor MapTheme a little bit.
>
>  I would like to improve the support for OpenStreetMap, so this is where
> I'm working at the moment.

Hi Jens-Michael,

Sounds great.

Please have a look at our "design documents" in marble/docs to find out what 
our current refactoring is working towards. - Any suggestions and input is 
appreciated of course.

What approach did you have in mind?

There are several possible approaches: And we'd like to support solution A1 or 
A2 in the short term (for KDE 4.1) and solution B1.) in the mid term future 
(somewhen after KDE 4.1).

A) Texture tile 

A1.) Create your own tile set for Marble - This would probably deliver the 
highest quality (as you'd create tiles in Equirectangular projection as 
opposed to the Mercator projection that OSM is using).  But it would require 
you to render your own tiles (KDE would very likely provide server space for 
that however). 
Ideally Marble would be extended to deal with transparent overlay texture 
tiles to be able to render the OSM data on top of other map themes. For this 
we should extend the MergedLayerPainter (soon: "MergedLayerDecorator") class 
(which is currently being refactored by David Roberts I guess).

A2.) Reuse the tileset that OSM is publically offering: This would require to 
introduce an interface for alternative TileLoader classes. The tile loader 
for OSM would need to "translate" the lat/lon position requested into OSM 
tile positions and would download the tiles needed and would possibly need to 
get reprojected (depending on which approach would be taken in detail).

B) Polygon / Vector rendering

As a GSoC project it has been suggested that similar to the texture tiles that 
get downloaded we'd create "vector tiles" which contain the polygons needed 
to draw the vector data on the fly. This is a lot more complex than approach 
A and will require some larger refactoring. We are currently in the planning 
stage for this one. There are two possible methods:

B1.) (re-)render the data live onto the widget for each frame that gets 
displayed.

B2.) render the data onto the texture tiles. This would require the data to 
only get drawn onto the tiles once.

Given that texture tile are Marble's most obvious performance bottleneck and 
given that approach B1.) would give us better render quality, speed and more 
flexibility (in terms of being able to select objects) we'd like to go for 
approach B1.)

Any input? Suggestions? :-)

Best Wishes,

Torsten


> Bye
>
> Jens-Michael
> _______________________________________________
> Marble-devel mailing list
> Marble-devel at kde.org
> https://mail.kde.org/mailman/listinfo/marble-devel



-- 
 Torsten Rahn

 Tel.: 0 21 61 - 46 43 - 192

credativ GmbH, HRB Mönchengladbach 12080
Hohenzollernstr. 133, 41061 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Jörg Folz


More information about the Marble-devel mailing list