Popularity
7.4
Growing
Activity
9.1
-
1,458
37
186

Programming language: Rust
License: GNU General Public License v3.0 or later
Tags: Geospatial

# GeoRust alternatives and similar packages

Based on the "Geospatial" category.
Alternatively, view GeoRust alternatives based on common mentions on social networks and blogs.

• ### rust-reverse-geocoder

A fast, offline, reverse geocoder

Do you think we are missing an alternative of GeoRust or a related project?

## geo

### Geospatial Primitives, Algorithms, and Utilities

#### Chat or ask questions on Discord

The `geo` crate provides geospatial primitive types such as `Point`, `LineString`, and `Polygon`, and provides algorithms and operations such as:

• Area and centroid calculation
• Simplification and convex hull operations
• Euclidean and Haversine distance measurement
• Intersection checks
• Affine transforms such as rotation and translation.

Please refer to the documentation for a complete list.

The primitive types also provide the basis for other functionality in the `Geo` ecosystem, including:

### Example

``````// primitives
use geo::{line_string, polygon};

// algorithms
use geo::ConvexHull;

// An L shape
let poly = polygon![
(x: 0.0, y: 0.0),
(x: 4.0, y: 0.0),
(x: 4.0, y: 1.0),
(x: 1.0, y: 1.0),
(x: 1.0, y: 4.0),
(x: 0.0, y: 4.0),
(x: 0.0, y: 0.0),
];

// Calculate the polygon's convex hull
let hull = poly.convex_hull();

assert_eq!(
hull.exterior(),
&line_string![
(x: 4.0, y: 0.0),
(x: 4.0, y: 1.0),
(x: 1.0, y: 4.0),
(x: 0.0, y: 4.0),
(x: 0.0, y: 0.0),
(x: 4.0, y: 0.0),
]
);
``````

### Contributing

Contributions are welcome! Have a look at the issues, and open a pull request if you'd like to add an algorithm or some functionality.