open-standards/map/map-rs/crates/map-index/src/lib.rs
Transaction Science ba1212361f Add aac, map, sandbox standards; catalog the standards family
Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:

- aac/    — communication cargo class: portable boards + a ten-level
            offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/    — geospatial cargo class: range-requestable signed tilesets +
            an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
            compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.

Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-07 17:04:36 -04:00

46 lines
1.8 KiB
Rust
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//! Map index — pure-Rust S2 cell geometry and the bridge to the standard's
//! address space.
//!
//! The geometry modules ([`cell_id`], [`covering`], [`lat_lng`], [`point`],
//! [`projection`], [`region`], [`polygon`], [`edge`], [`metrics`]) are the S2
//! hierarchical, Hilbert-ordered decomposition of the sphere — the basis for the
//! horizontal axis of a [`map_schema::CellKey`] and for turning a viewport into
//! the set of cells a reader must fetch (SPEC §2, §4). They are pure Rust (no
//! PROJ, no C), so the whole crate compiles to WASM unchanged.
//!
//! The [`bridge`] module connects this geometry to `map-schema`: it builds a
//! `CellKey` from real coordinates and covers a viewport into the cell keys that
//! drive [`map_schema::Directory::ranges_for`].
pub mod cell_id;
pub mod covering;
pub mod edge;
pub mod lat_lng;
pub mod metrics;
pub mod point;
pub mod polygon;
pub mod projection;
pub mod region;
pub mod volume;
pub mod bridge;
// The upstream `polygon` module shipped with broken containment/area routines
// (it fails its own tests in joule-s2) and never implemented `S2Region`. The
// port corrects both algorithms (spherical winding-angle containment + van
// Oosterom–Strackee signed area) and adds `impl S2Region for S2Polygon`, so the
// coverer (SPEC §4) can cover an arbitrary boundary / footprint / geofence — not
// just caps and rectangles. See `polygon.rs`.
// Re-exports for convenience (mirrors the upstream joule-s2 surface).
pub use cell_id::S2CellId;
pub use covering::S2RegionCoverer;
pub use lat_lng::S2LatLng;
pub use point::S2Point;
pub use polygon::S2Polygon;
pub use region::{S2Cap, S2Rect, S2Region};
pub use bridge::{
alt_band, cell_key, cover_region, cover_viewport, cover_volume, schema_cell, time_bucket,
ViewportCover,
};