NextGIS Manager consists the set of libraries and executable which uses them. The libraries briefly described below. This diagram shows the dependencies between them:
Please note that arrows indicate the "depends from" relation and that all blue libraries depend are non-GUI libraries, and all green libraries are GUI libraries.
This are core classes needed in other libraries:
The library contains the classes to read and write spatial data in various formats (raster and vector spatial data in file system, databases or via internet). Also several functions to operate with data is present.
Requires wxGISCore.
The library needed to communicate with different NextGIS Manager components. Using the library classes applications can transfer data or messages throw the network or inside the same PC. The background processes (e.g. geoprocessing) communicate with foreground (e.g. wxGISCatalog application) using library or wxGISProcess from the wxGISCore library. There are client side and server side classes. The main classes are:
Requires wxGISCore.
Basic GUI classes such as controls, dialogues, buttons, menus, toolbars, accelerators, progressors and progress animations are in this library. All NextGIS Manager GUI components (usually library name ended with UI) must link against this library, only console mode libraries don't. There are several classes to construct the main application interface:
Requires wxGISCore.
This library contains display class (wxGISDisplay) for drawing map content on the cairo
surfaces
. Also the needed coordinate conversions from spatial to display coordinates and vice versa present. The display can be rotated, all data drawing are properly.
Requires wxGISCore and wxGISDatasource.
The library consists classes to present the data tree. This tree include several root elements (folder connections, database connections, web connections, spatial reference systems, etc.). Each datasource has it representation in tree. The base class for all elements is wxGxObject. For representing the folders or complex data there is wxGxObjectContainer class. All the element have no GUI as this is virtual for data navigation inside programs.
Requires wxGISCore and wxGISDatasource.
The library include classes to representation tree elements in GUI (e.g. TreeView or ContentsView). This classes provides icons, user friendly names and more.
Requires wxGISCore, wxGISDatasource, wxGISDisplay, wxGISFramework and wxGISCarto.
The library provides functions to create maps and control their contents and styles. The main classes are:
Requires wxGISCore, wxGISDatasource, wxGISDisplay and wxGISFramework.
The library consist functions to interacted with maps, such as controls (zoom, pan, extent, identify etc.), dialogues and grid views.
Requires wxGISCore, wxGISDatasource, wxGISDisplay, wxGISFramework and wxGISCarto.
The geoprocess is one or several operation with spatial data (e.g. buffer, reprojection, etc.). The library provides unified interface for such operations. The geoprocessing operations executed with special application, which controlled by NextGIS Manager UI components (e.g. wxGISCatalog application). If geoprocessing crashed this is not influence on host application. User will be notified about problem with geoprocessing operation.
Requires wxGISCore, wxGISDatasource, wxGISCatalog and wxGISNet.
The library provide classes to manage geoprocessing operations (create, change, delete, start, stop and etc.). There is an unified dialogue for creating all geoprocessing operations. Also, the special tree of geoprocessing operations exist (toolbox).
Requires wxGISCore, wxGISDatasource, wxGISCatalog, wxGISCatalogUI, wxGISNet, wxGISCarto, wxGISCartoUI, wxGISDisplay, wxGISFramework and wxGISGeoprocessing.