Skip to content

Latest commit

 

History

599 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ogc-client Latest version on NPM Latest @dev version on NPM

A Typescript library for interacting with OGC-compliant services

ogc-client is a Typescript library which implements several OGC standards and will help you interact with them in a user-friendly and consistent way.

Documentation and live demo here!

The following standards are partially implemented:

  • WMS - Web Map Service
  • WFS - Web Feature Service
  • WMTS - Web Map Tile Service
  • WPS - Web Processing Service
  • OGC API (Records and Features)
  • TMS - Tile Map Service
  • STAC API - SpatioTemporal Asset Catalog
  • NcWMS - Extended WMS for scientific data (Thredds, ERDDAP, CMEMS…)

Why use it?

  1. ogc-client will abstract the service version so you don't have to worry about it
  2. ogc-client will handle XML so you only have to deal with native Javascript objects
  3. ogc-client will hide the complexity of OGC standards behind straightforward APIs
  4. ogc-client will run heavy tasks in a worker to avoid blocking the main thread
  5. ogc-client will keep a persistent cache of operations to minimize requests and processing
  6. ogc-client will tell you if a service is not usable for CORS-related issues

Instructions

To install ogc-client, run:

$ npm install --save @camptocamp/ogc-client

To use, import API symbols like so:

import {
  WmsEndpoint,
  WfsEndpoint,
  StacEndpoint,
  NcwmsEndpoint,
} from '@camptocamp/ogc-client';

Note: if you want to disable web worker usage, for example to solve issues with the Referer header on outgoing requests, use:

import { enableFallbackWithoutWorker } from '@camptocamp/ogc-client';

enableFallbackWithoutWorker();

All processing will be done on the main thread after this call, including HTTP requests.

Use the latest development version

The @camptocamp/ogc-client NPM package is updated on every commit on the main branch under the @dev tag. To use it:

$ npm install --save @camptocamp/ogc-client@dev

Application

A provided application containing the documentation and demo is located in the app folder. To start it locally, clone the repository and run the following commands:

$ npm install
$ cd app
$ npm install
$ npm start

The app is based on Vue.js and will showcase most features implemented in the library. You will need to supply it with valid OGC service urls.

Quick Examples

NcWMS

import { NcwmsEndpoint } from '@camptocamp/ogc-client';

const endpoint = new NcwmsEndpoint(
  'https://my.thredds.server/thredds/wms/dataset',
);

// Detect NcWMS and get available palettes and scale range
const details = await endpoint.getLayerDetails('temperature');
if (details) {
  console.log(details.palettes); // ['rainbow', 'occam', ...]
  console.log(details.scaleRange); // [-2, 35]
  console.log(details.units); // '°C'
}

// Auto-detect min/max from the current map extent
const { min, max } = await endpoint.getMinMax('temperature', [-10, 30, 10, 50]);

// Build a legend image URL (no network request)
const legendUrl = endpoint.getLegendUrl('temperature', {
  style: 'boxfill/rainbow',
  colorScaleRange: [min, max],
  logScale: false,
});

STAC API

See the examples/ directory for more complete examples, including:

  • examples/stac-query.js - Full STAC API query example with spatial and temporal filters
  • examples/wps-sextant.mjs - WPS 1.0.0 example: read service info, list/describe processes and run one asynchronously

Run examples with:

npm run build
node examples/stac-query.js

About

A TypeScript library for interacting with geospatial services

Topics

Resources

Stars

89 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages