Awesome
S2
This is a library for manipulating geometric shapes. Unlike many geometry libraries, S2 is primarily designed to work with spherical geometry, i.e., shapes drawn on a sphere rather than on a planar 2D map. (In fact, the name S2 is derived from the mathematical notation for the unit sphere.) This makes it especially suitable for working with geographic data.
Status of the Rust Library
This library is principally a port of the C++ S2 library, adapting to Rust idioms where it makes sense. We detail the progress of this port below relative to that C++ library.
ℝ¹ - One-dimensional Cartesian coordinates
Not started.
ℝ² - Two-dimensional Cartesian coordinates
Not started.
ℝ³ - Three-dimensional Cartesian coordinates
Partial implemention of R3Vector.
S¹ - Circular Geometry
Not started.
S² - Spherical Geometry
Partial implementations of:
- S2CellId
- S2LatLng
- S2Point
TODO
- in-memory representation of S2CellId as a struct/enum/etc
- audit which methods are public
- reconsider the s2::S2LatLng naming studder
- implement the same operator overloads as the c++ library
- consider using the c++ library as a reference impl in tests (via ffi)