NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1890 most downloaded on crates.io
Geospatial primitive data types
Last release 2 months ago
02 Aug 2026
Ships fairly regularly
a new release about every 4 months
Nearly every release is documented
notes for 35 of 35 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
35 releases · first in 2018
prepare for geo-types-0.7.20 release
prepare for geo-types-0.7.20 release
rstar 0.13 via the rstar_0_13 feature, alongside the existing rstar versions.
rstar support for Rect.
thiserror instead of hand-written Display/Error impls.
Geometry::static_name() to get the type of geometry like Point and MultiLineString as a static string.
GeometryCollection::is_empty is a purely structural check (zero geometries) and does not recurse into element emptiness, unlike geo::HasDimensions::is_empty.
One column per quarter.
prepare for geo-types v0.7.19 release
prepare for geo-types v0.7.19 release
Triangle::from([a, b, c]) now enforces CCW winding (same as Triangle::new).Triangle::unchecked_winding(v1, v2, v3) for callers that have pre-verified CCW order or don't require a specific winding.Triangle::v1(), Triangle::v2(), Triangle::v3() getters.Triangle's public tuple fields (.0, .1, .2); use the constructors and getters above.
let multi_point = wkt!(MULTIPOINT(0 0,1 1,2 2,3 3));
let point = multi_point[1];
let three_points = multi_point[0..3];
// panics!
let no_point = multi_point[4]
prepare for geo-types-0.7.18 release
prepare for geo-types-0.7.18 release
use-rstar, use-rstar-0_8, etc. to simply rstar, rstar-0_8, etc. (removing the use- prefix)
and deprecated the old spelling.
rstar::AABB<Point> and rstar::AABB<Coord> when enabling the rstar and serde features.
prepare for 0.7.17 release
prepare for 0.7.17 release
wkt! geometry creation macro for LINE, RECT, and TRIANGLE geometries.
empty convenience initializer for constructing empty geometries
Add LineString::rev_lines to iterate segments from end to start
LineString::rev_lines to iterate segments from end to start
wkt crate for that.
lines and coords iterators and to_polygon method now return ccw-oriented geometry
Implement RTreeObject for Triangle.
RTreeObject for Triangle.AsRef<Coord> for Point and Coord.POSSIBLY BREAKING: Minimum supported version of Rust (MSRV) is now 1.75
multithreading), disabled by default, enabled by default when geo-types is used by geoPOSSIBLY BREAKING: Minimum supported version of Rust (MSRV) is now 1.70
Add Polygon::try_exterior_mut and Polygon::try_interiors_mut.
Polygon::try_exterior_mut and Polygon::try_interiors_mut.
https://github.com/georust/geo/pull/1071wkt! macro to define geometries at compile time.
https://github.com/georust/geo/pull/1063- Bump rstar dependency
Implement From<&Line> for LineString
From<&Line> for LineStringReturn DoubleEndedIterator from LineString::points and LineString::points_mut
DoubleEndedIterator from LineString::points and LineString::points_mut
no_std compatibility when the new default std feature is disabled
rstar version 0.10 in feature use-rstar_0_10.Rename Coordinate to Coord; add deprecated Coordinate that is an alias for Coord
Coordinate to Coord; add deprecated Coordinate that is an alias for Coordarbitrary version to 1.1.3 until our MSRV catches up with its latest releasepoint.x_mut() and point.y_mut() methods on PointsFixed: using empty polygon![] macro no longer requires including line_string! macro
polygon![] macro no longer requires including line_string! macroYou may now specify Geometry rather than Geometry since we've added a default trait implementation. You may still explicitly declare the numeric type
Geometry rather than Geometry<f64> since we've added
a default trait implementation. You may still explicitly declare the numeric
type as f64, or any other implementation of CoordNum, but this should save
you some typing if you're using f64. The same change applies to Coordinates
and all the geometry variants, like Point, LineString, etc.
geometry module now re-exports all the inner geometry variants, so you
can use geo_types::geometry::* to concisely include Point, LineString, etc.
Deprecate GeometryCollection::from(single_geom) in favor of GeometryCollection::from(vec![single_geom])
split_x and split_y methods on Rect
Polygon in RTree
GeometryCollection::from(single_geom) in favor of GeometryCollection::from(vec![single_geom])
GeometryCollection has a new_from(...) constructor. GeometryCollection::new() has been deprecated - use GeometryCollection::default() instead. Do not…
Rect::to_lines return lines in winding order for Rect::to_polygon.
coord!, point!, line_string!, and polygon! now support trailing commas such as coord! { x: 181.2, y: 51.79, }
use-rstar_0_8 and use-rstar_0_9 features to be explicit which rstar version is being used. For backward compatibility, the use-rstar feature will still enable use-rstar_0_8.
point! macro to support single coordinate expression arguments point!(coordinate) (coordinate can be created with the coord! macro)
LineString, MultiPoint, MultiPolygon, Triangle, MultiLineString now have a new constructor new(...). GeometryCollection has a new_from(...) constructor. GeometryCollection::new() has been deprecated - use GeometryCollection::default() instead. Do not use tuple constructors like MultiPoint(...)MultiPoint::new(...) and similar ones instead.
DEPRECATION: Deprecate Point::lng, Point::lat, Point::set_lng and Point::set_lat
Point::lng, Point::lat, Point::set_lng and Point::set_lat
rstar version 0.9 in feature use-rstar_0_9
Geometry and GeometryCollection now support serde.
Coordinate iterators to LineString, regularise its iterator methods, and refactor its docs
Implement RelativeEq and AbsDiffEq for fuzzy comparison of remaining Geometry Types
RelativeEq and AbsDiffEq for fuzzy comparison of remaining Geometry Types
From<Line> for LineString
arbitrary feature for integration with the arbitrary crate
Implement Default on Coordinate and Point structs (defaults to (x: 0, y: 0))
Default on Coordinate and Point structs (defaults to (x: 0, y: 0))
geo_types::Error
BREAKING: geo_types::CoordinateType now extends Debug and has been deprecated in favor of geo_types::CoordNum and geo_types::CoordFloat
geo_types::CoordinateType now extends Debug and has been deprecated in favor of geo_types::CoordNum and geo_types::CoordFloat
use-rstar feature rather than rstar so that approx dependency can be optional
approx::{RelativeEq, AbsDiffEq} for geo-types when using the approx feature
geo_types::LineString::num_coords has been deprecated in favor of geo::algorithm::coords_iter::CoordsIter::coords_count
Rect::new automatically determines min/max points. Deprecates Rect::try_new which can no longer fail.
into_iter, iter and iter_mut methods for MultiPolygon, MultiPoint, and MultiLineString
Rect::new automatically determines min/max points. Deprecates Rect::try_new which can no longer fail.
MultiLineString::is_closed method
Add documentation on semantics (based on OGC-SFA)
Coordinate and Point
Remove COORD_PRECISION which was an arbitrary constant of 0.1m
COORD_PRECISION which was an arbitrary constant of 0.1m
Triangle and Rect to Geometry
Rect::try_new constructor which does not panic
Rect::center method
Eq for types when applicable
From<Triangle> for Polygon
Make geo-types Rect fields private to force users to use constructor (breaking change)
LineString in docs
Hash for all types in geo-types
Introduce point!, line_string!, and polygon! macros.
point!, line_string!, and polygon! macros.
Rect constructor that enforces min.{x,y} < max.{x,y}
- Add Polygon::num_coords -
Polygon::num_coords
Add Polygon::interiors_push - Adds an interior ring to a Polygon
Polygon::interiors_push - Adds an interior ring to a Polygon
Rewrite Polygon structure to enforce closed LineString rings
Polygon structure to enforce closed LineString rings
Into<Geometry> for Line
Index<usize> for LineString to get the coordinate at that position
rstar dependency
MultiPolygon from Vec of anything that implements Into<Polygon>
new, is_empty, len functions on GeometryCollection
Geometry method names slightly
Replace the spade crate with the rstar crate
Fix misnamed serde feature flag.
serde feature flag.
width and height helpers on Rect.
Add to_lines method on a Triangle
to_lines method on a Triangle
Introduce Line::{dx, dy, slope, determinant} methods.
Line::{dx, dy, slope, determinant} methods.
Copy types.
x_y method on Point and Coordinate
Line and LineString to be a series of Coordinates (not Points).
Allow LineString creation from vec of two-element CoordinateType array
New crate with core types from geo
geo
Your coding agent can read these notes before it upgrades. Set up the MCP server →