This is documentation of an archived release.
For documentation on the current version, please check Knowledge Base.

Introduction to API Concepts

If you are new to the Orbit 3DMC Mapping Viewer SDK, this page will give you an overview of what you need to know, in order to start implementing plugins.

The Orbit 3D Mapping Viewer SDK was designed to integrate the 3DMC Viewer into other mapping applications, with the least amount of work possible.

Below are some topics that are essential to understanding the SDK.
The central Viewer component is named Viewer3DM.

What is available?

First of all, what can you expect from the API?

The API has everything you need to :

  • Visualize resource footprints (where is data available?)
  • Visualize field-of-views (where are the views?)
  • Visualize measurements
  • Use measurements (add them to your own layers for example)
  • Integrate with Viewer zoom-to-extent
  • Integrate with Viewer position picking
  • Open a View at a location
  • Focus all Views on a location
  • Add your own objects to the Viewer

A Unified API

We decided on creating one API reference and implementing that on multiple platforms. This means that you only ever need to learn one API. Different implementations are available : at the moment we have an SDK for JavaScript and .NET.

Visualisation of Data : MapObjects

To represent objects to be rendered, we decided on introducing a self-describing type called a MapObject.

  • It describes its own spatial component (point, line, area)
  • It describes its own legend component (line color, etc…)

Currently we have 4 types of MapObjects that are to be rendered in their own layer.

  • Field-of-views : visualisation of view states.
  • Measurements : Visualisation of measurements.
  • Globals : Visualisation of global state (focus, mouse hover).
  • Footprints : Visualisation of where resources have data available.

By using MapObjects, we move the complexity of representing Viewer data out of your code and into the Viewer SDK itself. Let us worry about presentation.

Signals and MapObjects

With version 19.3.0, we introduced a simplified API. Part of that simplification is that there is now one Signal (previously there were many) that notifies you of a change in one type of MapObjects.

This is how that works :

  1. The SDK dispatches a Signal
  2. The SDK user retrieves MapObjects.
  3. The SDK user renders the MapObjects (for example).

By combining Signals and MapObjects, you can greatly simplify your code. You don't need to be occupied with what to render or when. Let us worry about that.

Coordinate System

By default, all data returned by the SDK is expressed in WGS/84. To change the CRS of data returned by the SDK, please provide the Constants.STARTUP_CRS option at Viewer startup.

The default CRS is EPSG:4326 (2D WGS/84).

 
Last modified:: 2019/10/08 11:17