[weekly report] Week 3: local map rendering in libchamplain



Hi,

I spent the first days of the last week improving libmemphis to the
state that it can be used in libchamplain. Half a day was lost to trace
a nasty segfault, which was hard to reproduce. Tile-rendering for zoom
levels 12 to 18 is now stable. I tested lower zoom levels too and they
caused minor problems. All ways disappear because of an internal scaling
factor of the renderer, which gets below zero for zoom levels smaller
than 12. But this can be fixed. I think I will create different scaling
factors for the levels 0 to 5, 6 to 11 and 12 to 18.

A more severe problem was the acquisition of data for the lower zoom
levels. All OSM-API server I know were _very_ slow or down. I had to use
a 300MB dump of Switzerland to do my tests, which was painful. I'm
thinking about setting up my own server. I could use it for the
development of the network map source too.

After these tests I created a champlain branch and committed a first
prototype of a local map source using libmemphis with a small data set.
It worked better than expected. It runs smooth on high-end machines, but
the map locks on high zoom levels on weak systems. This week I will
evaluate a thread pool for rendering and start to implement the final
class hierarchy.

I got some feedback from the Memphis developers; they like my changes. I
will continue to GObject-ify libmemphis this week. This will improve the
performance, as less data has to be copied between old and new data
structures.

Steps to test the prototype:
clone my branch 'local-rendering' from
git://gitorious.org/~wenner/libchamplain/wenner-clone.git
make; cd demos
./launcher-gtk-local
and choose the map source 'OpenStreetMap Memphis' from the drop-down menu.

First screen shot:
http://foregroundnoise.wordpress.com/2009/06/15/gsoc-week-3/
Overall status: http://foregroundnoise.wordpress.com/gsoc-2009/

git shortlog:
      Add libmemphis revision 111 to the project.
      Add libmemphis to the buildsystem
      Fix coding style
      champlain-local-map-source prototype added, everything is still
hard-coded
      Add new demo to test the prototype with a small xml dataset
      improved default rules
      Add -Werror -pedantic and fixed all warnings
      Add support for zoom level 18
      improve the drawing speed of empty tiles

Simon


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]