#geospatial

ogcapi-client

Client to access OGC API Feature and STAC endpoints

2 unstable releases

0.2.0 May 19, 2024
0.1.0 Jul 21, 2022

#30 in #geospatial


Used in ogcapi

MIT/Apache

110KB
2.5K SLoC

OGC API Client

Client

The ogcapi-client crate provides a client for accessing geospatial datasets served through OGC API or SpatioTemporal Asset Catalog (STAC) with the following features:

  • Depth first iterator over catalog tree
  • Iterator over collections
  • Item search
  • Lazy pagination handling

Example

use ogcapi_client::Client;
use ogcapi_types::common::Bbox;
use ogcapi_types::stac::SearchParams;

fn main() {
    // Setup a client for a given STAC endpoint
    let endpoint = "https://data.geo.admin.ch/api/stac/v0.9/";
    let client = Client::new(endpoint).unwrap();

    // Fetch root catalog and print `id`
    let root = client.root().unwrap();
    println!("Root catalog id: {}", root.id);

    // Count catalogs
    let catalogs = client.catalogs().unwrap();
    println!("Found {} catalogs!", catalogs.count());

    // Search items
    let bbox = Bbox::from([7.4473, 46.9479, 7.4475, 46.9481]);
    let params = SearchParams::new()
        .with_bbox(bbox)
        .with_collections(["ch.swisstopo.swissalti3d"].as_slice());
    let items = client.search(params).unwrap();
    println!("Found {} items!", items.count());
}

Dependencies

~6–17MB
~243K SLoC