camptocamp / ogc-client

A TypeScript library for interacting with geospatial services
https://camptocamp.github.io/ogc-client/
BSD 3-Clause "New" or "Revised" License
66 stars 12 forks source link
ogc ogc-api typescript wfs wms

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:

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 } 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.