Libosmscout is a C++ library for offline map rendering, routing and location lookup based on OpenStreetMap data.
Supported platforms:
- 32bit or 64 bit platforms in general are supported. We recommend 64 bit on desktop.
- Requires a compiler that supports C++20.
- Supported build systems are CMake and Meson.
- Linux using recent versions of gcc or clang.
- Mac OS X and iOS using XCode/clang.
- Windows using MinGW-based gcc compiler or Visual Studio 2019.
- Android 7 or newer using NDK r26 or newer (with C++20 support).
The libraries itself are under LGPL. For details see the LICENSE file.
The official homepage is at: http://libosmscout.sourceforge.net/.
Please subscribe to the mailing list and ask your questions. English is the preferred language but other languages might be supported, too.
You can also get support in the matrix room #libosmscout.matrix.org. While
it is a interactive chat room, an answer still may take some
time, though.
You can find detailed instruction how to get libraries and applications build and working and other introductory documentation on the homepage.
The documentation in the OpenStreepMap Wiki is currently still correct but is not activily maintained by the libosmscout team.
You can find a list of features here. Note that the features pages are currently not up to date. We are unsure how to best represent all the features of libosmscout.
You can find some documentation and tutorials on the homepage and some other documentation in the git repository.
There are a number of demo applications that show how to make use of the various features of the library.
We plan to move all documentation for the repository to the homepage.
This project uses Uncrustify 0.83.0 for
consistent C++ code formatting. The configuration file is .uncrustify at the
project root, tuned to produce minimal diffs on existing code.
To apply formatting to all tracked source files:
./scripts/format-check.sh apply
To verify files are correctly formatted (exit 0 = clean, exit 1 = unformatted):
./scripts/format-check.sh check
To see what changes uncrustify would make without modifying anything:
./scripts/format-check.sh diff
Note: Directories Android/, Apple/, and subprojects/ are excluded.
They contain platform-specific or third-party code with their own formatting.
Automatic builds can be found at Github Actions. Static code analysis on Sonar cloud. Goal is to check all supported platforms, compilers and build systems to keep project in good condition.
Current build status: