14 September 2009

libchamplain hits 0.4

About a month after its 1 year birthday, libchamplain hit the 0.4 mark – the first stable release of this new version.  It’s a Clutter based ClutterActor and Gtk+ widget to display street maps, cycle maps or other maps.  It comes with eye candy.

Special thanks to all contributors to this release (in chronological order of first contribution):
Pierre-Luc Beaudoin, Jonathon Jongsma, Lorenzo Masini, Packz Enoch, Thomas Van Machelen, Anders M-Pedersen, Stephane Delcroix, Denk Padje, Mike Sheldon, Emmanuel Rodriguez, Emmanuele Bassi, Lionel Dricot, Simon Wenner, Kritarth Upadhyay, Debarshi Ray, Paulo Cabido, Sjoerd Simons, Victor Godoy Poluceno, Javier Jardón, Patryk Zawadzki, Sebastian Reichel, Tim Horton, Frederic Peters, Cosimo Cecchi, Vincent Untz, Felix Riemann

Libchamplain in action in Eye of Gnome,
displaying a picture of Lübeck, Germany.

New in this release (since 0.2.10)

  • Support for custom map sources: embedding apps can define their own map sources and provide tiles for libchamplain to display.  This includes a way to list available map sources.
  • Zoom on double click is now configurable.
  • View keeps centred when you resized the view.
  • A way to convert screen coordinates to map coordinates: lets you interact with the map and its markers.
  • Cache tiles: downloaded tiles are cached.  The cache is intelligently validated against the server every 7 days for now.
  • Revamped marker API: Default markers now have a nicer look with rounded corners, nicer colors and a shadow.  The API allows easy image and label markers to be created.
  • Limit visible zoom levels: you can now limit what the user can view.
  • Feedback during loading: ChamplainView will emit a state change when loading resources from network providing better feedback possibilities to the user.
  • Line and polygon drawing API: You can now easily draw lines and polygon over the map.  This is useful for indicating routes or highlighting areas.
  • User Agent: libchamplain now identifies itself in HTTP requests
  • Marker selection support: libchamplain provides a helpful API when you want to let user select a bunch of markers (or only one).  This API has been designed with Gtk+’s selection API in mind.
  • Ported to Clutter 1.0: libchamplain now depends and use Clutter 1.0.  It allowed us to add the very nice in and out for markers.
  • Bindings: the API is now bindable.  Only the Python bindings works for now but that’s not because the Perl binder didn’t try hard to get some too, try having a baby close to a release! :)   C# bindings and C++ have been worked on but didn’t make it on time for the release.
  • Many bug fixes.

Plans for the future

Now that 0.4 is behind us, we already have a huge list of nice to have in 0.6 (due in same time as Gnome 2.30 or Gnome 3.0):

  • Smooth zooming and animation;
  • Rotation of the map;
  • Display cached tiles while downloading new ones;
  • Add a clustering layer: a layer where markers very close on a map will be merged into one marker;
  • An MVC API for layers: use ClutterModel and support GtkTreeModel as sources of Marker data;
  • Limit the visible area on the map;
  • Have the map wrap horizontally;
  • Have a nice dragging mode for markers;
  • Add a map scale;
  • Provide better accessibility;
  • Better cache policies;
  • Better animations;

And most importantly: local rendering of maps. This project is well on its way with the recent conclusion of the Google Summer of Code 2009.  Simon Wenner, which you probably read the progress on planet.gnome.org, did a marvellous job on this.  His work should be included in the first development release of libchamplain 0.5.

Comments (8)

  1. 14 September 2009
    Vincent Untz said...

    Wow, really cool stuff! Congratulations for this release! But with all the 0.6 plans, I’m already waiting for 0.6 ;-)

  2. 15 September 2009
    hb said...

    Absolutely awesome! Thanks for all the work you guys are putting in this.

  3. 15 September 2009
    simone said...

    Great! Thank you!

  4. 15 September 2009
    DeeJay1 said...

    I think it’s “Patryk Zawadzki” ;)

  5. 15 September 2009
    Pierre-Luc Beaudoin said...

    DeeJay1: fixed. He never complained on the git commits :)

  6. 15 September 2009
    martin said...

    When will there be Vala VAPI bindings for libchamplain? I’d love to integrate my app with libchamplain!!

  7. 15 September 2009
    Pierre-Luc Beaudoin said...

    Considering there should be little work needed to port instrospection (it was working in 0.3.5), it should be a bliss. It just needs someone to care enought :) (I don’t know much about vala nor introspection).

  8. 19 September 2009

    [...] 0.4 Après avoir fêté sa première année d’existence, l’équipe de LibChamplain a publié la version 0.4 de sa librairie. Pour rappel, Libchamplain fournit les librairies nécessaires à [...]