Removable Component - 23.1

Spectrum Spatial Analyst Extensibility Guide

Product type
Software
Portfolio
Locate
Product family
Spectrum
Product
Spectrum > Spatial > Spectrum Spatial Analyst
Version
23.1
Language
English
Product name
Spectrum Spatial Analyst
Title
Spectrum Spatial Analyst Extensibility Guide
Topic type
Reference
Overview
Tips
How Do I
Configuration
First publish date
2007

The Spectrum Spatial Analyst user interface has multiple containers and components such as the Left panel, Right panel, Map, Legend, and Search box. Some of these can be removed or replaced with custom components using the Spectrum Spatial Analyst Extensibility Platform. You can remove components using the functionality profiles in Spatial Manager or using the Spectrum Spatial Analyst Extensibility Platform config file.

To inject a new component at one of the available extension points, a configuration file called CustomAnalystModuleConfig.json is used. This file configures containers for third-party extensions, indicates which components to remove, and includes parameters for using extensions.

Spectrum Spatial Analyst capabilities have been exposed as APIs, which third-party components can use in their logic. For example, adding and removing map layers, calling different Spectrum Spatial services such as data flows, specifying queries, thematically styling map layers, and so on. All these services have APIs which encapsulate a wide variety of third-party libraries that are part of Spectrum Spatial Analyst, such as Openlayers (mapping), Proj4JS (re-projection of vector data), JSTS (geometry operations on vector data), jsPDF (for exporting to PDF), XLSXJS (for parsing Excel spreadsheets) and Papa Parse (for parsing CSV files).

Spectrum Spatial Analyst uses an architecture based on NgRx Store (https://ngrx.io/guide/store) for maintaining state and providing inter-component communications. Many services are available to developers via store actions and their corresponding selectors. The store is a bridge between the caller and executor. To draw a layer on a map, you would dispatch an action with the relevant parameters via store.dispatch.