Skip to content

gaker/rapidgeo

Repository files navigation

rapidgeo

CI Coverage PyPI License

Geographic distance calculations, polyline encoding/decoding, and coordinate simplification libraries for Rust and Python.

Workspace Structure

This repository contains four crates:

  • rapidgeo-distance - Geographic and planar distance calculations
  • rapidgeo-polyline - Google Polyline Algorithm encoding/decoding
  • rapidgeo-simplify - Douglas-Peucker polyline simplification
  • rapidgeo-py - Python bindings for all three libraries

Installation

Rust Crates

[dependencies]
rapidgeo-distance = "0.2"
rapidgeo-polyline = "0.1"
rapidgeo-simplify = "0.1"
rapidgeo-similarity = "0.1"

Python Package

pip install rapidgeo
pip install rapidgeo[numpy]  # With NumPy array support

Usage

Distance Calculations

use rapidgeo_distance::{LngLat, haversine, vincenty};

let point1 = LngLat::degrees(-122.4194, 37.7749);  // San Francisco
let point2 = LngLat::degrees(-74.0060, 40.7128);   // New York City

let distance_m = haversine(&point1, &point2);
let precise_distance_m = vincenty(&point1, &point2);
from rapidgeo import LngLat
from rapidgeo.distance.geo import haversine

sf = LngLat(-122.4194, 37.7749)
nyc = LngLat(-74.0060, 40.7128)
distance_meters = haversine(sf, nyc)

Polyline Encoding/Decoding

use rapidgeo_polyline::{encode_coordinates, decode_polyline};

let coords = vec![
    (-122.4194, 37.7749),
    (-122.4094, 37.7849),
];
let polyline = encode_coordinates(&coords, 5);
let decoded = decode_polyline(&polyline, 5);

Coordinate Simplification

use rapidgeo_simplify::{simplify_coords_dp, DistanceType};

let coords = vec![
    (-122.4194, 37.7749),
    (-122.4144, 37.7799),
    (-122.4094, 37.7849),
];
let simplified = simplify_coords_dp(&coords, 0.001, DistanceType::Haversine);

Important Notes

  • All coordinates use longitude, latitude ordering (lng, lat)
  • Python package requires Python 3.8+
  • Optional features available: batch (parallel processing), numpy (Python array support)

Documentation

Rust Crates

Python Package

License

Licensed under either Apache License 2.0 or MIT License at your option.

About

No description, website, or topics provided.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published