What is NAVTOR SDK?
The NAVTOR Software Development Kit is a set of components that help to build
various geographic applications such as ECDIS, ECS, planning stations and geographic information systems.
With NAVTOR SDK you can:
- Read S57/S63 data and updates through the NAVTOR SENC, which is public format for OEMs.
- Display geographic data in compliance with the S-52 standard
- Use geographic data for various ECDIS application tasks
- Display custom data with custom styles
What's New
General
- New feature: The SDK now supports Inland ENC. No additional functions to support Inland ENC in OEM’s code are required. The SDK supports Inland ECDIS Standard 2.4.
- New feature: New graphical backend based on OpenGL (Scene manager GL).
- New feature: Custom geodatabase in memory, intended for the implementation of temporary geodatabases in memory e.g. EBL, VRM, Object highlight, User chart editing.
- New feature: Support of standalone AIO databases in Grounding check.
- New feature: Light weight ethernet interconnection module intended for implementation of functionality that bases on IEC 61162-450 e.g. Route transfer, IEC 61162-1 sentences transferred over ethernet.
- New feature: NavBox client to get access to SENC on NavBox over REST API.
- New feature: OS Android support.
- Bug fixes.
General
- The complex coverage of the AML datasets has been mitigated.
- Bug fixes.
General
- Support of new ECDIS requirements listed in S-52 (Specification for Chart content, Edition 6.1.1, Presentation library, Edition 4.0.1, ENC Symbol catalogue, Edition 4.0.0) and IEC 61174, edition 4.0
- Look-up tables and symbols design
- Implementation of renewed version of Look-up tables for objects symbolization
- Changes in symbols design
- New symbols design
- Conditional Symbolization Procedures
- Implementation of renewed version of CSP: LIGHTS06, LITDSN02, SNDFRM04, DEPARE03, SLCONS04, SYMINS02
- Date dependent features
- Implementation of a means to insert date or date range to display date dependent features
- Highlighting Date dependent features
- Grounding check
- Implementation of standard check objects lists and alerts groups
- Implementation of check object filter for graphical indication of Navigational hazards, Areas with Special Exists, Objects that constitute the safety contour, User defined areas
- Implementation of danger objects scene layer
- Implementation of Automatic updates review
- ECDIS Viewing group Layer implementation
- Renewed Text group Layer implementation
- Data Overlap indication
- Overscale factor indication
- Interrogation of ECDIS chart 1
- Support of national attributes
- Implementation of presentation of centered symbols in case when areas are split by ECDIS chart window
- Implementation of Standards Terms and Definitions listed in IEC 61174
- Support of several databases in Grounding check.
- Support of standalone AIO databases in Grounding check.
- New feature: Light sector legs highlight.
- New feature: Full lights info.
- New feature: Palette manager returns colour descriptions.
- New feature: Mariner object feature extended (has fill and line colour, fill opacity and line width).
- New feature: Base library returns stack of critical SDK errors.
- New feature: Support of Admiralty Total Tide (Windows).
- New feature: Support of NETCDF regular grids.
- New feature: Support of chart drawing without transparency (dotted patterns are used)
- New feature: Coordinate grid improved.
- Bug fixes.
General
- Faster rendering.
- Added support for feet and fathoms for chart depth units.
- Added management for S63 database SERIAL.ENC and PRODUCTS.TXT.
- ENC information is available through IENCInfo.
- Bug fixes.
General
- First release of the NAVTOR SDK entirely compliant with IEC-61174, IEC-62288 and IHO S-52 Presentation library, version 3.4
- Includes anti-grounding functionality.
- Includes manual updating functionality.
- Includes mariners' objects functionality.
- Includes INT-1 portrayal.
- Many C++ helpers were added to simplify programming with the NAVTOR SDK.
General
- The
SDKShutdown base method is
implemented. Use the method whet shutting down your application. The
method unloads all libraries currently in use.
- Significant performance improvement due to parallel
rendering.
- Background 1:50 000 000 and 1:20 000 000 charts are added
to the SDK installation.
- Implemented background rendering of visualization layers.
- Bug fixes.
Data
- Modifications in the senc geodatabase reader related to the
“lazy” loading of information sections. Now, to get information from a
dataset, e.g. dataset properties or dataset coverage, you can load the
dataset without any performance or memory consumption penalties.
Geometry
- Geodesic calculations are now implemented in the
IGeodesicCalculations
interface.
Visualization
- New parameters are added for the
ISceneManager::AddDataSource
method: Previous declaration: SceneManager::AddDataSource(wks,
&view) Current declaration: SceneManager::AddDataSource(wks,
type_of_data, flags, &view, &view_id) The
new parameters are: - type_of_data
- only default value is supported by now
"kDataSourceView_TypeName_Navigational," adds data from wks to the
chart layers
- flags
- one value "ReplaceView", unloads existing views of an
added workspace
- Instead of the
ISceneManager::SetProjectionParameters
method, use the ISceneManager::GetSceneParameters
and ISceneManager::SetSceneParameters
methods. The methods allow setting latitude, longitude and scale for
the scene.
- Instead of the
ISceneManager::WinToScene
and ISceneManager::SceneToWin methods, use
the ISceneManager::CoordinateTransform
method. The method provides the following transformations: WinToScene,
SceneToWin, WinToGeo, GeoToWin, ViewportToGeo, and GeoToViewport
- New SceneManager properties are added:
- kSceneManagerPropertyID_MinScale
- Minimum possible scale. Default 10.
- kSceneManagerPropertyID_MaxScale
- Maximum possible scale. Default 10^8.
- kSceneManagerPropertyID_SceneWidth
- Width of the scene in pixels.
- kSceneManagerPropertyID_SceneHeight
- Height of the scene in pixels.
- Instead of the
ISceneManager::Render
and the ISceneManager::Display methods, use
the ISceneManager::UpdateScene method. It can
have the following flags:
kUpdateSceneFlags_RenderingAndDisplay
to render and display the scene
kUpdateSceneFlags_Display to
only display the scene
kUpdateSceneFlags_WaitRendering
to stop the main thread till all is rendered
NB: The way of controlling the scene when rendering to window has
changed (see samples):
- Change the viewport and call the
UpdateScene
method with the kUpdateSceneFlags_Display
flag for fast picture moving.
- Then call the
UpdateScene
method with the kUpdateSceneFlags_RenderAndDisplay
flag to apply viewport changes to the projection (the viewport is reset
automatically).
- The
kPP_DisplayMode portrayal
parameter is replaced with two properties in the IDisplayGroupsManager
interface:
- sdk::vis::kDisplayGroupsManagerProperty_DisplayMode
with possible values: Base- | Base | Base+ | Standard | Standard+ |
Other
- sdk::vis::kDisplayGroupsManagerProperty_DisplayMode_Short
with possible values: Base | Standard | Other
- A new concept is introduced: "Portrayal Layer" – a group of
data portrayed together. New methods were added to the
IPortrayalManager
interface and a new interface implemented:
IPortrayalManager::CreatePortrayalLayer
IPortrayalManager::GetPortrayalLayer
IPortrayalManager::RemovePortrayalLayer
IPortrayalLayer interface
- A new method added to the
IPortrayalManager
interface: IPortrayalManager::EnumPossiblePortrayals
– indicates which portrayals are available for a specified PRSP.
- Methods renamed:
IPortrayalManager::SetPortrayal
renamed to IPortrayalManager::SetCurrentPortrayal
IPortrayalManager::GetPortrayal
renamed to IPortrayalManager::GetCurrentPortrayal
IPortrayalManager::SetCurrentPortrayal
renamed to IPortrayalManager::SetCurrentPortrayalVersion
IPortrayalManager::GetPortrayalInfo
renamed to IPortrayalManager::GetPortrayalInfoFromPath
ISceneLayersManager::FindLayer(scene::LayerID)
renamed to ISceneLayersManager::FindLayerByID
ISceneLayersManager::FindLayer(SDKString)
renamed to ISceneLayersManager::FindLayerByName
- Methods moved:
ISceneControl::GetSceneLayersManager
moved to the ISceneManager interface and is
now called ISceneManager::GetSceneLayersManager
ISceneManager::GetPortrayalParameter
moved to the IPortrayalManager interface and
is now called IPortrayalManager::GetPortrayalParameter
ISceneManager::SetPortrayalParameter
moved to the IPortrayalManager interface and
is now called IPortrayalManager::SetPortrayalParameter
- Behavior of the
AddLayer method
has changed: now you need to create a layer first and then add it to
the layers list: Instead of the ISceneLayersManager::AddLayer
method use the ISceneLayersManager::CreateLayer
and ISceneLayersManager::AddLayer methods. In
the AddLayer method you can now specify a
parent layer, it this case a 'Logic layer' will be created and drawn to
the parent texture.
- The viewing group "21030" has been divided into two
groups:
- "21030" – Chart scale boundary
- "21040" – Over scale data (OVERSCO1)
See Also
See the following topics for more details: