libchamplain

libchamplain is a map widget for your applications. By default, it supports many open map sources. You can build your own or add support for other sources, if their licenses allow you to!

Intuitive

To move around, drag the map! To zoom in and out, you can use the mouse wheel. By default, you can also double click on the map to zoom in but this can be disabled by the application using libchamplain.

The map is updated as soon as you move it.


Eye Candy

libchamplain takes advantages from Clutter: some actions are animated:

  • The scrolling can be direct or kinetic (à la iPhone).
  • When you scroll past the edges of the map, the action is undone in an elastic way (à la iPhone).
  • Tiles are loaded from cache and if needed loaded from network. When the latter happens, they fade in on the map.
  • Optional smooth transition from a point to another
  • Optional falling-down-from-sky animation in and fade-out-to-sky animation out for markers.

In the next major release (0.6), more animations are planned such as zoom in/out.

Mark your world

libchamplain offers a simple way to create rich markers. Markers exist to inform the user of information at a specific location. libchamplain provides a standard default text label where you can specify font and colors.

Thanks to Clutter, you can make also do what ever you want to markers, make them transparent or even animate them! They are also fully reactive: mouse press/release, mouse hovering, any event Clutter supports!

Markers are grouped on Layers. This proves to be useful if you want to hide them all at once.


libchamplain speaks your language

Starting with 0.4, the following bindings will be available (in addition to the native C api):

  • Python
Soon more bindings will be available:
  • Perl
  • Managed (C#, mono, .net)
  • Any other language that supports GObject introspection

You can then write your application in the language that suits you the best.

The Future is Now

Of course this list is incomplete, here is what you should be able to do:

  • Draw routes and shapes to highlight a territory
  • Implement your own map source, directly into your applications
  • Display a loading notification to your users when tiles are being loaded
  • Limit the visible zoom levels: if your applications only matters country wide markers, why let them wander in the streets?
There are also plans for new features:
  • Add information bubbles to markers, that would open when you click them (à la Google Maps)
  • Limit the visible area: if your applications only matters for Paris users, why let them wander in Berlin?