All Projects → georust → Geo

georust / Geo

Licence: other
Geospatial primitives and algorithms for Rust

Programming Languages

rust
11053 projects

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
Magellan
Geo Spatial Data Analytics on Spark
Stars: ✭ 507 (-22.6%)
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
Mapdeck
R interface to Deck.gl and Mapbox
Stars: ✭ 296 (-54.81%)
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
Gmt
The Generic Mapping Tools
Stars: ✭ 468 (-28.55%)
Mutual labels:  geospatial

geo

Build Status geo on Crates.io Coverage Status Documentation

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:

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

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].