NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
Mariners' Objects

Mariners' objects is a way to add both special mariners' objects such as clearing line, danger highlight, and other, and worldwide manual updates such as S57/S101 point objects and simple line and area objects as an additional chart layer. Mariners' objects geo-database is not linked to any other chart data, it creates an additional scale-independent worldwide layer.

Implementation of the mariners' objects is similar to the implementation of manual updating. However, there is a difference at the starting point: you should open a mariners' objects workspace using the workspace factory created with the SDK_MU_NAMESPACE::kMarinerObjectsWorkspaceFactoryCID class id.

The mariners' objects class id is defined in the /datalayer/inc/manual_updates/component_ids.h file.

Below is a sample of how to open a mariners' objects workspace:

  using namespace SDK_NAMESPACE;
  using namespace SDK_GDB_NAMESPACE;
  using namespace SDK_MU_NAMESPACE;

  IWorkspaceFactorySP wks_factory;
  if (SDK_OK(GetComponentInstanceT< IWorkspaceFactory >(
    kMarinerObjectsWorkspaceFactoryCID, &wks_factory))) {
    
    // The application is responsible for the mariners' objects geo-database location
    std::wstring path_to_mariner_objects = L"somepath";
      IWorkspaceSP wks;
    if (SDK_OK(wks_factory->OpenFromFile(ScopedString(path.value()), 
    NULL, &wks))) {

    // To display mariners' objects on the screen, the application should add the returned workspace to the scene
  }
}

Editing operations for mariners' objects are absolutely the same as those for manual updates; please refer to the Manual Updating guide.