Skip to content

Latest commit

 

History

History
114 lines (82 loc) · 3.91 KB

README.md

File metadata and controls

114 lines (82 loc) · 3.91 KB

Ingress Drone Explorer - C++

CI Lines of code

An offline CLI tool to analyze reachable Portals for Ingress Drone Mark I.

Implementations in different languages are listed and compared in Benchmark.

The CI workflow builds universal binary for macOS, x86_64 and aarch64 binaries for Linux and x86_64 binary for Windows, the files are available as artifacts.

Build from Source

Requirements

  • CMake (3.23 is marked but backporting should be possible)
  • Boost (1.79 is used in CI)
    • JSON
    • Program Options
  • CXX that supports C++20 (Backporting is possible and should be easy)

Build

$ cmake -B build
$ cmake --build build

Exploration Guide

Prepare Files

All the files should be JSON.

  1. Portal list file(s), should be an array of:
    {
        "guid": "GUID of Portal",
        "title": "Title of Portal",
        "lngLat": {
            "lng": 90.0,    // Longitude
            "lat": 45.0     // Latitude
        }
    }
  2. Portal Key list file, should be an array of GUID (Not required but strongly recommended)

Maybe an IITC plugin like this helps.

Usage

$ ingress-drone-explorer <portal-list-file> -s <longitude,latitude> [options...]

Options

Explore with key list:

$ ... -k <path-to-key-list-file>

Output cells JSON for IITC Draw tools:

$ ... --output-drawn-items <path-to-output>

Help information:

$ ingress-drone-explorer -h

Benchmark

Sample Data

  • Area: Shenzhen downtown and Hong Kong
  • Portals: 34,041 Portals in 13,451 cells
  • Keys: 11 matched
  • Start Point: Shenzhen Bay Sports Center
  • Result: 30,462 Portals and 11,342 cells are reachable

Result

Average exploration time consumed of 100 executions on MacBook Air (M2).

Lines Commit Consumed
C++ Current 0.583 s
Node.js 7ad90e9 1.295 s
Python 841b9f0 2.813 s
Rust cb21807 0.371 s
Swift 2c73a58 0.722 s

The results of other implementations may be outdated, please check their repositories for latest results.