A high-performance Rust library and CLI for land parcel overlap and boundary analysis.
- Geometry Primitives: Robust Point, Line, and Polygon implementations.
- Spatial Analysis: Calculate Area, Perimeter, and check for Intersections/Overlaps.
- Topological validation: Ensure polygons are valid (closed, no self-intersections).
- Fast: Built with Rust for maximum performance.
- Cross-platform: Runs on Windows, Linux, and macOS.
To build the project, run:
cargo build --releaseTo run the tests:
cargo testThe project includes a Command Line Interface (CLI) for easy interaction.
Calculates area, perimeter, and validates the topology.
cargo run -- analyze --path <path_to_file>Example:
cargo run -- analyze --path sample_parcel.geojsonChecks if two polygons intersect or overlap.
cargo run -- compare --poly1 <file1.geojson> --poly2 <file2.geojson>A Python script is provided to generate random, valid GeoJSON polygons for testing.
- Python 3.x installed
Generate a single random polygon:
python scripts/generate_data.py --output my_parcel.geojsonGenerate a feature collection with 10 random parcels:
python scripts/generate_data.py --output city_parcels.geojson --count 10