pub struct OsmAdapter {
pub id: &'static str,
pub overpass_endpoint: String,
pub tile_endpoint: String,
}Expand description
Stub adapter for OpenStreetMap Overpass API and MVT vector tile endpoints.
Fields§
§id: &'static str§overpass_endpoint: String§tile_endpoint: StringImplementations§
Source§impl OsmAdapter
impl OsmAdapter
Source§impl OsmAdapter
impl OsmAdapter
pub fn adapter_id(&self) -> &'static str
pub fn build_fetch_request( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<AdapterHttpRequest, String>
pub fn fetch_region( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<(), String>
Sourcepub fn parse_features(&self, body: &str) -> Result<Vec<NQuin>, String>
pub fn parse_features(&self, body: &str) -> Result<Vec<NQuin>, String>
Parse an OpenStreetMap Overpass API JSON response body into provenance NQuins.
Each element of the top-level elements array (a node, way, or relation) is
mapped to a set of Dublin Core / RDF / WGS84 provenance quins, using
generate_60bit_token for IRI/literal hashing so the emitted data is queryable
by the SPARQL layer (which hashes IRIs the same way). If elements is absent an
empty Vec is returned. Only invalid JSON yields an Err.
Trait Implementations§
Source§impl DataAdapter for OsmAdapter
impl DataAdapter for OsmAdapter
Source§fn adapter_id(&self) -> &'static str
fn adapter_id(&self) -> &'static str
Returns the unique identifier for this adapter (e.g., “dem_adapter”)
Source§fn build_fetch_request(
&self,
bbox: (f64, f64, f64, f64),
time_range: (u64, u64),
registry: &NetworkDisclosureRegistry,
) -> Result<AdapterHttpRequest, String>
fn build_fetch_request( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<AdapterHttpRequest, String>
Build the outbound request for a spatial bounding box [x1, y1, x2, y2]
and temporal range [t0, t1]. Implementations must check
NetworkDisclosureRegistry
before returning an actual network request.Source§fn primary_endpoint(&self) -> &str
fn primary_endpoint(&self) -> &str
Primary egress endpoint for disclosure checks and fetch reports.
Source§fn estimate_tile_count(&self, bbox: (f64, f64, f64, f64)) -> u32
fn estimate_tile_count(&self, bbox: (f64, f64, f64, f64)) -> u32
Honest estimate of how many tile/API units would be requested (no fake payloads).
Source§fn fetch_region(
&self,
bbox: (f64, f64, f64, f64),
time_range: (u64, u64),
registry: &NetworkDisclosureRegistry,
) -> Result<(), String>
fn fetch_region( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<(), String>
Initiate fetching through the native blocking transport. Browser WASM
cannot legally block on network I/O, so wasm callers use
fetch_region_async.Source§fn needs_fetch_body(&self) -> bool
fn needs_fetch_body(&self) -> bool
Whether the adapter consumes the response body instead of only checking
that the endpoint accepted the request.
Source§fn handle_fetch_body(&self, _body: &str) -> Result<(), String>
fn handle_fetch_body(&self, _body: &str) -> Result<(), String>
Parse or enqueue the fetched body. Most adapters currently only verify
access; CKAN consumes JSON discovery results here.
Source§fn parse_response(&self, _body: &str) -> Result<Vec<NQuin>, String>
fn parse_response(&self, _body: &str) -> Result<Vec<NQuin>, String>
Parse a fetched response body into provenance
NQuins (title / license /
created / source / lat / long, hashed with the same generate_60bit_token
the SPARQL layer uses, so the results are queryable). Adapters that can
interpret their response format override this — GBIF, OSM/Overpass, STAC,
OGC 3D Tiles and SPARQL-results do — and the default yields none. This is
how a fetched response becomes graph data rather than being discarded.Source§fn fetch_region_features(
&self,
bbox: (f64, f64, f64, f64),
time_range: (u64, u64),
registry: &NetworkDisclosureRegistry,
) -> Result<Vec<NQuin>, String>
fn fetch_region_features( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<Vec<NQuin>, String>
Native fetch that returns the parsed provenance
NQuins: build the
consent-gated request, execute it, and run parse_response on the body.
A caller can then route the quins into the graph. (WASM callers fetch via
fetch_region_async and call parse_response on the returned body.)Auto Trait Implementations§
impl Freeze for OsmAdapter
impl RefUnwindSafe for OsmAdapter
impl Send for OsmAdapter
impl Sync for OsmAdapter
impl Unpin for OsmAdapter
impl UnsafeUnpin for OsmAdapter
impl UnwindSafe for OsmAdapter
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more