项目作者: DroneDB

项目描述 :
Effortless aerial data management and sharing
高级语言: C++
项目地址: git://github.com/DroneDB/DroneDB.git
创建时间: 2019-07-31T15:23:38Z
项目社区:https://github.com/DroneDB/DroneDB

开源协议:Mozilla Public License 2.0

下载


ddb-logo-banner

license commits languages Docs C/C++ CI NodeJS CI .NET CI

DroneDB is free and open source software for aerial data storage. It provides a convenient location to store images, orthophotos, digital elevation models, point clouds and vector files.

image

See it in action: https://hub.dronedb.app/r/odm/waterbury

Installation

Debian/Ubuntu

  1. # Install from the latest release
  2. sudo apt install ./ddb_X.Y.Z_amd64.deb

See Debian Package Documentation for more details.

Documentation

https://docs.dronedb.app

Project Overview

DroneDB is designed to efficiently manage, process, and share aerial and geospatial data. The project consists of several key components:

  • Core Library: A C++ library that handles file processing, metadata extraction, and database operations
  • Command-Line Interface: A powerful CLI tool to interact with DroneDB repositories
  • Plugins System: Extensible architecture for adding custom functionality

Building with vcpkg

DroneDB now uses vcpkg for dependency management. This simplifies the build process and ensures consistent dependency versions.

Prerequisites

  • CMake 3.16.3 or higher
  • C++17 compatible compiler
  • Git
  • vcpkg

Building on Linux

  1. Clone the vcpkg repository:

    1. git clone https://github.com/microsoft/vcpkg.git
    2. cd vcpkg
    3. ./bootstrap-vcpkg.sh
    4. export VCPKG_ROOT=$(pwd)
  2. Clone the DroneDB repository and build:

    1. git clone https://github.com/DroneDB/DroneDB.git
    2. cd DroneDB
    3. ./full-build-linux.sh

Building on Windows

  1. Clone the vcpkg repository:

    1. git clone https://github.com/microsoft/vcpkg.git
    2. cd vcpkg
    3. .\bootstrap-vcpkg.bat
    4. $env:VCPKG_ROOT = $(Get-Location).Path
  2. Clone the DroneDB repository and build:

    1. git clone https://github.com/DroneDB/DroneDB.git
    2. cd DroneDB
    3. .\full-build-win.ps1

Using Docker

We provide Docker images for both development and production use:

  1. Build the Docker images:

    1. # On Linux
    2. ./build-docker.sh
    3. # On Windows
    4. .\build-docker.ps1
  2. Run DroneDB in a container:

    1. docker run --rm -it -v $(pwd):/data ddb/app:latest

Requirements

Windows

  • Visual Studio 2019 or newer with C++ development tools
  • CMake 3.16 or newer
  • Git
  • vcpkg package manager

Linux

  • GCC 9.0 or newer
  • CMake 3.16 or newer
  • Git
  • vcpkg package manager
  • Additional dependencies:
    • bison
    • flex
    • libreadline-dev
    • libssl-dev

Build Instructions

Prerequisites

Before building, make sure to set the VCPKG_ROOT environment variable to point to your vcpkg installation:

Windows (PowerShell):

  1. $env:VCPKG_ROOT = "C:\path\to\vcpkg"

Linux/macOS:

  1. export VCPKG_ROOT=/path/to/vcpkg

Clone Repository

  1. git clone https://github.com/DroneDB/DroneDB.git
  2. cd DroneDB
  3. git submodule update --init --recursive

Windows Build

  1. # Configure with CMake
  2. cmake -B build -S . -A x64 -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake"
  3. # Build
  4. cmake --build build --config Release --target ALL_BUILD -- /maxcpucount:14
  5. # Run tests
  6. .\build\tests\Release\ddbtest.exe --gtest_shuffle --gtest_repeat=2 --gtest_recreate_environments_when_repeating

For a quicker build, you can use the provided batch script:

  1. .\full-build-win.bat

Linux Build

  1. # Install required dependencies
  2. sudo apt install build-essential cmake git bison flex libreadline-dev libssl-dev
  3. # Configure with CMake
  4. cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"
  5. # Build
  6. cmake --build build --config Release -j$(nproc)
  7. # Run tests
  8. ./build/tests/ddbtest --gtest_shuffle --gtest_repeat=2 --gtest_recreate_environments_when_repeating

Updating Vcpkg Dependencies

If you need to update the vcpkg dependencies:

  1. vcpkg x-update-baseline --add-initial-baseline

Running Tests

Tests are built using Google Test framework:

Windows:

  1. .\build\tests\Release\ddbtest.exe --gtest_shuffle --gtest_repeat=2 --gtest_recreate_environments_when_repeating

Linux:

  1. ./build/tests/ddbtest --gtest_shuffle --gtest_repeat=2 --gtest_recreate_environments_when_repeating

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the Mozilla Public License Version 2.0 (MPL 2.0) - see the LICENSE.md file for details.