Open Source Routing Machine - C++ backend
Go to file
Dennis Luxen c0402345f7 Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea
8bcd4ea Add explicit cast operator from osmium::Timestamp to uint32_t.
0b24814 Fixed the full_queue_sleep_duration const (again).
5e19dd2 Try different workaround for windows...
df5d6c9 Fix build error on Windows.
1553adf Workaround for missing support for u8 string literals on Windows.
aa5e44a Do not build benchmarks in Appveyor to speed up build.
2b22b31 Remove warning generated by assert by casting to largest type.
148c5e3 Fix inclusion of our own css file into doxygen documentation.
13bce6f Split out test thats fails on Windows and do not run it on appveyor.
ca04757 Make CMake add_unit_test() function more flexible.
6c04a63 Tell CMake to output json file with compile commands.
c0dd848 Fix indentation in some tests.
dfa7e4b Formatting: Consistently use spaces around equal signs.
08fe6db Add change log, release version 2.1.0.
667192e Add XML tests.
28acfc7 Make sorting the PBF stringtables optional.
8184781 Fix PBFInputFormat. Use member variable instead of static variable.
2b48945 Fix comment.
6d37054 Rename m_done to m_quit_input_thread to clarify what it is for.
bc23083 Fix race condition in PBF reader.
7fc380e Add various docs, noexcepts, asserts, and tests.
aeaf4d7 Not a good idea to how overbroad patterns in .gitignore.
c1ef2f9 Bugfix: Multipolygon collector was accessing non-existent NodeRef.
0ef9a13 Add noexcept and docs to some functions in NodeRefList class.
da4d764 Workaround for Doxygen bug.
e67d5d9 use absolute paths to osmium in YouCompleteMe configuration
38abeac remove template parameter from NodeRefList
c47adf0 Add check that osm xml file has <osm> or <osmChange> as top-level element.
5e4af90 Updated version number to 2.0.0.
5b2bc3e Workaround in cmake test for sparsehash size.

git-subtree-dir: third_party/libosmium
git-subtree-split: 8bcd4ea771696812bbb08ebc58e3ee22d0538070
2015-04-13 15:44:38 +02:00
benchmarks Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
cmake Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
doc Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
examples Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
include Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
test Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
.gitignore Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
.travis.yml Squashed 'third_party/libosmium/' changes from 6522da5..f074d94 2015-03-04 12:50:42 +01:00
.ycm_extra_conf.py Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
appveyor.yml Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
CHANGELOG.md Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
CMakeLists.txt Squashed 'third_party/libosmium/' changes from f074d94..8bcd4ea 2015-04-13 15:44:38 +02:00
CONTRIBUTING.md Squashed 'third_party/libosmium/' content from commit 910f8f1 2015-01-13 16:54:25 +01:00
LICENSE.txt Squashed 'third_party/libosmium/' content from commit 910f8f1 2015-01-13 16:54:25 +01:00
Makefile Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
osmium.imp Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00
README.md Squashed 'third_party/libosmium/' changes from 910f8f1..6522da5 2015-02-05 15:13:48 +01:00

Libosmium

http://osmcode.org/libosmium

A fast and flexible C++ library for working with OpenStreetMap data.

Build Status Build status

Libosmium is developed on Linux, but also works on OSX and Windows (with some limitations).

There are a few applications that use the Osmium library in the examples directory. See the osmium-contrib repository for more example code.

Prerequisites

Because Libosmium uses many C++11 features you need a modern compiler and standard C++ library. Osmium needs at least GCC 4.8 or clang (LLVM) 3.4. (Some parts may work with older versions.)

Different parts of Libosmium (and the applications built on top of it) need different libraries. You DO NOT NEED to install all of them, just install those you need for your programs.

For details see the list of dependencies.

Directories

  • benchmarks: Some benchmarks checking different parts of Libosmium.

  • cmake: CMake configuration scripts.

  • doc: Config for documentation.

  • examples: Osmium example applications.

  • include: C/C++ include files. All of Libosmium is in those header files which are needed for building Osmium applications.

  • test: Tests (see below).

Building

Osmium is a header-only library, so there is nothing to build for the library itself.

But there are some tests and examples that can be build. Libosmium uses cmake:

mkdir build
cd build
cmake ..
make

This will build the examples and tests. Call ctest to run the tests.

For more see the Libosmium Wiki.

Testing

See the Libosmium Wiki for instructions.

Osmium on 32bit Machines

Osmium works well on 64 bit machines, but on 32 bit machines there are some problems. Be aware that not everything will work on 32 bit architectures. This is mostly due to the 64 bit needed for node IDs. Also Osmium hasn't been tested well on 32 bit systems. Here are some issues you might run into:

  • Google Sparsehash does not work on 32 bit machines in our use case.
  • The mmap system call is called with a size_t argument, so it can't give you more than 4GByte of memory on 32 bit systems. This might be a problem.

Please report any issues you have and we might be able to solve them.

Switching from the old Osmium

If you have been using the old version of Osmium at https://github.com/joto/osmium you might want to read about the changes needed.

License

Libosmium is available under the Boost Software License. See LICENSE.txt.

Authors

Libosmium was mainly written and is maintained by Jochen Topf (jochen@topf.org). See the git commit log for other authors.