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.
To move around, drag the map. To zoom in and out, use the mouse wheel. By default, you can also double click 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 and the missing tiles get automatically downloaded in the background.
libchamplain takes advantage of Clutter. Many actions are animated:
- 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 the cache and if needed, from the network. When the latter happens, they fade in on the map.
- Optional smooth transition from one point on the map to another.
- Optional falling-down-from-the-sky animation and fade-out-to-the-sky animation for the markers.
In the future releases more eye candy stuff is planned.
Mark Your World
libchamplain offers a simple way to create rich markers. Markers can be used to give more information about a specific location on the map. libchamplain provides a standard text label where you can specify font and colors.
Thanks to Clutter, you can customize the markers according to your needs; make them transparent or even animated! They are also fully reactive: mouse press/release, mouse hover and all other Clutter events are supported.
Markers are grouped in Layers. This proves to be useful if you want to display or hide them all at once.
libchamplain Speaks Your Language
The following bindings are available in addition to the native C API:
- Any other language that supports GObject introspection
You can write your application in the language that suits you best.
The Future is Now
Of course this feature list is incomplete. Here are a few more things you can do:
- Draw routes and shapes to highlight a territory.
- Display the scale.
- Implement your own map sources.
- Display a notification when tiles are being loaded.
- ...and many more.
We have many ideas for new features and improvements - see our enhancemens list in the bugzilla. Feel free to suggest a feature you are missing. Or better, contribute the code and join the team now!