georust / Geo
Licence: other
Geospatial primitives and algorithms for Rust
Stars: ✭ 655
Programming Languages
rust
11053 projects
Labels
Projects that are alternatives of or similar to Geo
Graphhopper
Open source routing engine for OpenStreetMap. Use it as Java library or standalone web server.
Stars: ✭ 3,457 (+427.79%)
Mutual labels: geospatial
H3 Js
h3-js provides a JavaScript version of H3, a hexagon-based geospatial indexing system.
Stars: ✭ 418 (-36.18%)
Mutual labels: geospatial
Cga.js
CGA 3D 计算几何算法库 | 3D Compute Geometry Algorithm Library webgl three.js babylon.js等任何库都可以使用
Stars: ✭ 313 (-52.21%)
Mutual labels: geospatial
Blendergis
Blender addons to make the bridge between Blender and geographic data
Stars: ✭ 4,642 (+608.7%)
Mutual labels: geospatial
Mapsui
Mapsui is a .NET Map component for WPF, Xamarin.Forms, Xamarin.Android, Xamarin.iOS and UWP
Stars: ✭ 447 (-31.76%)
Mutual labels: geospatial
Awesome Gee
A curated list of Google Earth Engine resources
Stars: ✭ 292 (-55.42%)
Mutual labels: geospatial
Cassandra Lucene Index
Lucene based secondary indexes for Cassandra
Stars: ✭ 584 (-10.84%)
Mutual labels: geospatial
Orb
Types and utilities for working with 2d geometry in Golang
Stars: ✭ 378 (-42.29%)
Mutual labels: geospatial
Wicket
A modest library for moving between Well-Known Text (WKT) and various framework geometries
Stars: ✭ 484 (-26.11%)
Mutual labels: geospatial
Ofbiz Framework
Apache OFBiz is an open source product for the automation of enterprise processes. It includes framework components and business applications for ERP, CRM, E-Business/E-Commerce, Supply Chain Management and Manufacturing Resource Planning. OFBiz provides a foundation and starting point for reliable, secure and scalable enterprise solutions.
Stars: ✭ 315 (-51.91%)
Mutual labels: geospatial
Whitebox Tools
An advanced geospatial data analysis platform
Stars: ✭ 362 (-44.73%)
Mutual labels: geospatial
Go Geom
Package geom implements efficient geometry types for geospatial applications.
Stars: ✭ 456 (-30.38%)
Mutual labels: geospatial
Buntdb
BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
Stars: ✭ 3,583 (+447.02%)
Mutual labels: geospatial
Worldwindjava
The NASA WorldWind Java SDK (WWJ) is for building cross-platform 3D geospatial desktop applications in Java.
Stars: ✭ 526 (-19.69%)
Mutual labels: geospatial
Leaflet.freedraw
🌏 FreeDraw allows the free-hand drawing of shapes on your Leaflet.js map layer – providing an intuitive and familiar UX for creating geospatial boundaries similar to Zoopla and others. Included out-of-the-box is the concaving of polygons, polygon merging and simplifying, as well as the ability to add edges and modify existing shapes.
Stars: ✭ 446 (-31.91%)
Mutual labels: geospatial
Webworldwind
The NASA WorldWind Javascript SDK (WebWW) includes the library and examples for creating geo-browser web applications and for embedding a 3D globe in HTML5 web pages.
Stars: ✭ 628 (-4.12%)
Mutual labels: geospatial
Pyproj
Python interface to PROJ (cartographic projections and coordinate transformations library)
Stars: ✭ 582 (-11.15%)
Mutual labels: geospatial
geo
Geospatial Primitives, Algorithms, and Utilities
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:
- Coordinate transformation and projection
- Serialization to and from GeoJSON and WKT
- Geocoding
- Working with GPS data
Example
use geo::{line_string, polygon};
use geo::convex_hull::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: 0.0, y: 0.0),
(x: 0.0, y: 4.0),
(x: 1.0, y: 4.0),
(x: 4.0, y: 1.0),
(x: 4.0, y: 0.0),
(x: 0.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.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].