tools for a sensor observation service based client
This project contains Angular based Modules, Components, Injectables to build a sensor observation service based client.
Providing Reusable Components for Building (Sensor Web) Client Applications
52°North created the Helgoland Toolbox to facilitate the reuse of developments for Sensor Web client applications. It provides a range of modules that offer functionalities for building Web applications dealing with dynamic spatio-temporal data. The Helgoland Toolbox modules are used to build the 52°North Helgoland Sensor Web Viewer. Additional applications (e.g. the BelAir app, smle, or the developments resulting from the TaMIS project) are also built upon this library.
Features:
The most important functional modules comprise:
Core
- Communication with the APIs
- Important common services (local storage, time)
- Central interfaces and abstract classes
Caching
- Request Caching with Angular Interceptors
d3
- Trajectory Graph component
- Time Series Graph component
Depiction
- Legend entries
- Table view of data
Map
- Controls (Geo-Search, Locate, Zoom, Extent)
- Map Selector component
Selectors
- List Selector for observation data
- Service Selector for data sources
The work on the Helgoland Toolbox comprised several evolutionary improvements and enhancements that were developed as part of several projects (e.g. WaCoDiS, MuDak-WRM. SeaDataCloudk BSH, Wupperverband Framework Contract). This include:
- Enhancement to connect to instances of the OGC SensorThings API
- Improved caching
- Complementary mapping module based on open layers to support time-dependent background map layers
- Enhanced data export functionality
- Improvements in the diagram visualization
- Facet search for observation data
Key Technologies:
- JavaScript
- TypeScript
- Angular
- Leaflet
- d3
- Open Layers
Benefits:
- Reusable components for building client applications
- Modules for visualizing different types of sensor data (time series, trajectories, profiles)
- Mapping modules
- Different components for data selection
Install latest Node and NPM following the instructions. Make sure you have Node version ≥ 10 and NPM ≥ 6. brew install node
for Mac.
fork
this repository.clone
your fork to your local environment.npm install
to install required dependencies.
npm run lib:build
for building the library once
npm start
will start the test application, which provide views for the main modules and components- the app, and their corrensponding files can be found in the
src
folder
- a module based documentation can be found here: https://52north.github.io/helgoland-toolbox/
- there is also a how to page with different use cases: https://52north.github.io/helgoland-toolbox/additional-documentation/how-tos.html
- different moduls are in the projects folder
npm run lib:build
builds the complete toolbox in thedist
-folder- after build
npm run lib:pack
packs every module to a file in the following structurehelgoland-MODULENAME-CURRENT_VERSION.tgz
in theroot
-folder - every packed module can be used by installing it in app development with it's relative path, for example
npm install ../helgoland-toolbox/helgoland-MODULENAME-CURRENT_VERSION.tgz
- all implemented tests for the modules can be run by
npm test
ng lint
for performing static code analysis.
npm run compodoc
for generating documentation locallynpm run gh-pages
for generating documentation and uploading it to GitHub Pages
npm version ***
to increase library version. More on bumping.
- add
allowSyntheticDefaultImports: true
to your tsconfig.json to avoid error messages like... has no default export
- don't forget to add styles of nested dependencies