Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Supercluster | 1,739 | 2,458 | 185 | a month ago | 24 | April 05, 2022 | 31 | isc | JavaScript | |
A very fast geospatial point clustering library for browsers and Node. | ||||||||||
Geo | 1,143 | 46 | 74 | a day ago | 21 | June 24, 2022 | 98 | other | Rust | |
Geospatial primitives and algorithms for Rust | ||||||||||
Rtreego | 559 | 4 | 10 | 4 months ago | 4 | February 25, 2022 | 7 | bsd-3-clause | Go | |
an R-Tree library for Go | ||||||||||
Geoos | 537 | 9 months ago | 22 | May 26, 2022 | 11 | lgpl-2.1 | Go | |||
A library provides spatial data and geometric algorithms | ||||||||||
Projects | 366 | 6 days ago | ||||||||
A list of awesome open source projects Volodymyr Agafonkin is involved in. | ||||||||||
Turf Swift | 195 | 20 | 3 months ago | 22 | August 11, 2022 | 22 | isc | Swift | ||
A Swift language port of Turf.js. | ||||||||||
Richdem | 189 | 3 | 10 | 6 months ago | 18 | July 13, 2018 | 40 | gpl-3.0 | C++ | |
High-performance Terrain and Hydrology Analysis | ||||||||||
Rust Geo Booleanop | 60 | 1 | 4 | a year ago | 7 | June 27, 2020 | 12 | mit | Rust | |
Rust implementation of the Martinez-Rueda Polygon Clipping Algorithm | ||||||||||
Polylabel Rs | 42 | 1 | 3 | 13 days ago | 32 | April 21, 2022 | 1 | mit | Rust | |
A Rust implementation of the Polylabel algorithm, with FFI. | ||||||||||
Olturf | 29 | a year ago | 11 | April 24, 2018 | 3 | mit | JavaScript | |||
A Turf toolbar for OpenLayers. |
The geo
crate provides geospatial primitive types such as Point
, LineString
, and Polygon
, and provides algorithms and operations such as:
Please refer to the documentation for a complete list.
The primitive types also provide the basis for other functionality in the Geo
ecosystem, including:
// 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),
]
);
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.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.