Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

OSM-binary

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Jochen Topf authored
    Ant build
    7e111e67
    History

    OSMPBF

    https://github.com/openstreetmap/OSM-binary

    Osmpbf is a Java/C library to read and write OpenStreetMap PBF files. PBF (Protocol buffer Binary Format) is a binary file format for OpenStreetMap data that uses Google Protocol Buffers as low-level storage.

    For more information see https://wiki.openstreetmap.org/wiki/PBF_Format .

    Note that this is a low-level library that does only part of the encoding/decoding needed for actually writing/reading an OSM PBF file. For something more complete see libosmium.

    Github Actions C Build Status Github Actions Java Build Status

    Java Version

    Building with Maven

    We publish the Java library to Maven Central:

    <dependency>
      <groupId>org.openstreetmap.pbf</groupId>
      <artifactId>osmpbf</artifactId>
      <version>1.5.0</version>
    </dependency>

    To build the Java library run:

    mvn package

    For a Java usage example, see ReadFileTest.

    Building with Ant

    If you can not use Maven for some reason you can use the Ant instead:

    ant

    This will build osmpbf.jar in the main directory.

    This build is also used for Debian packaging.

    C++ Version

    (Earlier versions used Makefiles for building. Please switch to the CMake-based build, the Makefiles are deprecated and will be removed in a future version.)

    To compile:

    mkdir build && cd build
    cmake ..
    make

    To install:

    make install

    There is a tool named osmpbf-outline that shows a debug output of the contents of a PBF file. To run it:

    tools/osmpbf-outline osm-file.osm.pbf

    Using the C++ Library

    To include in your program use:

    #include <osmpbf/osmpbf.h>

    and link with:

    -pthread -lz -lprotobuf -losmpbf

    License

    The .proto definition files and osmpbf.h are licensed under the MIT license. The other source code is licensed under the LGPL v3+.