Libosmscout (Sourceforge, GitHub) is a C++ library for offline map drawing, routing, location lookup on mobile devices (and of course desktop, too). It uses OpenStreetMap (OSM) as source for its geographic data.
Libosmscout runs under Linux, Windows, OS X and iOS. It also runs under Android using Qt. Using JNI it should also run under Android, but this is still work in progress.
Libosmscout imports a given OSM export, transforms and mangles the data in various ways and creates a sophisticated database from it. This database is then origin of the offline data that is required for map rendering routing and location lookup.
The following rendering backends are supported:
- Cairo (with/without Pango)
- SVG (initial work done)
- OS X/iOS
What did I learn?
Libomscout teaches me much about modern C++. I also (again) learn much about performance and memory usage optimization, which the focus on processing of big data (batch processing).
I also learned to enjoy the use of docker and central build environments like Travis-CI and Appveyor. It it also my entry to github (instead of sourceforge I used before). And finally I learned a lot about not giving up and community building. This is the first project that has a bigger number of users and even several committers.
Why did I stop?
This project is still active, healthy and growing and I currently do not see any reason to stop working on it.