On Wed, 2009-05-06 at 10:12 +1200, John Stowers wrote: > > As the maintainer of osm-gps-map [1], a non-clutter mapping library > with comparable features, I support libchamplain's proposal. Thanks for your support. > I do not intend to add clutter support to osm-gps-map, it will remain > a Gdk/Cairo only library as its intended, and my current, use of it is > on embedded devices with no OpenGl support. Clutter is the new cool, > so I support all ways to get this into the platform. Clutter will be supported on Maemo 5, I hope to make it useful on this platform at some point! > However, looking over the libchamplain API (quickly, sorry if I > mis-characterize something) I have a few comments > > * It is good to see you have added support for specifying map uri's. I > would also like to see you support quadtree encoding, and > randomization of hosts. See osm-gps-map for what I mean... I will have a look, but little code can be shared as osm-gps-map is GPL :) but if the method is generic enough method I'll see how to reproduce it. > * Where is the simple API? It seems like quite a few lines of code are > required to get something to show. Actually, you should be able to have something show up with: ChamplainView *view = champlain_view_new (); ChamplainViewEmbed *embed = champlain_view_embed_new (view); // put that embed in a GtkContainer That should bring a OpenStreetMap Mapnik centered at 0,0 at zoom level 0 in PUSH mode. Which are boring defaults for demos :) > * What is the sqlite dependecy for? Cache? Did you feel that using a > database for cache was a performance benefit? In osm-gps-map we use an > in memory cache of the last N tiles + a border around what is already > showing, and just load the rest of the tiles from disk. Performance of > that approach is more than sufficient (on any of the embedded targets > I have tried, for example) sqlite got introduced when we figured out that we'll need a place to save a 20 char string for every tiles downloaded. OpenStreetMaps send an ETag in their http headers along with the tile. You can reuse that ETag to validate your cache. The sqlite db is also used to maintain statistics about the tiles so that tiles that are the most used are not the first to be purged from the cache. Finally, it is used to determine the cache size, since all tiles are in the db anyway. -- Pierre-Luc
Attachment:
signature.asc
Description: This is a digitally signed message part