Carmenta Engine 5.16
Carmenta Engine 5.16 is the latest version of our core technology. You can find new features in earlier releases further down this page.
Custom Propagation in the Visibility Analysis
A new kind of custom object, the Custom Propagation, makes it possible to replace the propagation model in Carmenta Engine’s high performance visibility analysis.
The custom code only needs to handle propagation along a vertical terrain profile from the observer; based on this information Carmenta Engine will take care of calculating everything from point-to-point intervisibility to complete viewsheds.
Nap-of-the-earth Routes for Drones
The new AirRouteOperator can be used to find a nap-of-the-earth flight route for a rotary-wing aircraft along a given list of waypoints, balancing two objectives: speed and safety.
The safety can for example be based on the visibility index; this will calculate a route where the terrain is masking the flight, ensuring that the drone stays hidden from enemy observers.
Cross Platform Development
Carmenta Engine 5.16 makes it much easier to target several different platforms with a single code base, regardless of whether you’re using C++, .NET, Java or Python.
The Carmenta Engine for Windows SDK can now be used to develop applications for Windows, Android™ and Linux (using WSL2).
The Carmenta Engine for Linux SDK can be used to develop applications for both
Linux, Embedded Linux and Android.
Additional cross platform related improvements include support for the .NET MAUI user interface framework and support for C++/Qt development on Android.
The ScreenLayer now supports Screen Elements – a much easier and more flexible way to add legends, scale bars, north arrows and arbitrary texts to the map.
Other Notable Improvements
.NET MAUI Support
The .NET Standard API now includes MapControls for use in .NET Multi-platform App UI (.NET MAUI) applications on Android and Windows.
C++ on Android
The C++ API is now supported on Android. The QtQuickMapControl and associated samples have also been updated to work on Android.
The new DirectoryDataSet will monitor a directory for data files and dynamically update its contents when files are added or removed.
New Features in Earlier Releases
Carmenta Engine 5.15
This release introduces the ability to use Carmenta Engine for embedded development on Linux ARM, as well as adding Windows 11 as a supported operating system.
Other improvements include direct reading of GRIB files for meteorological visualization, as well as support for tactical graphics in MIL-STD-2525D and NATO APP-6(D) military symbol standards, and a greatly improved visibility index calculation, read more about the release here.Read more
Carmenta Engine for Linux ARM
Carmenta Engine for Linux SDK now supports deploying applications on Linux ARM platforms. This makes it easy to use low end ARM based hardware in onboard systems for different applications.
The functionality in Carmenta Engine for Linux ARM is the same as on all other platforms and has been requested by customers as an addition to Carmenta Engine’s support for Windows, Android and Linux x86.
Carmenta Engine supports Microsoft Windows 11
This release of Carmenta Engine SDK adds support for the recently released Microsoft Windows 11.
With Microsoft Windows 11 as a supported platform for Carmenta Engine SDK, you can both be sure that the application you build today can run on early adopter systems, as well as be used for a long time into the future.
Displaying weather forecasts from GRIB files
The new GribDataSet makes it possible to read meteorological data in the GRIB format, and the output can be used as any raster in Carmenta Engine, either for direct visualization, or as input to other geoprocessing operators.
With the new PointSampleOperator you can sample raster values into attributes on point features, and this can be used together with the new WindBarbSymbol that makes it easy to visualize wind direction and speed. The PointSampleOperator can be used for many other use cases where you would like to sample raster data and is available for all Carmenta Engine users without any additional extensions required.
Support for Tactical Graphics in MIL-STD-2525D and NATO APP-6 D
The Tactical Extension has been updated to support tactical graphics from the US MIL-STD-2525D and NATO APP-6(D) symbol standards, in addition to the point symbology that was added in Carmenta Engine 5.14.
This expands the capabilities for tactical visualization in Carmenta Engine that is used in many customer systems and has been verified in multinational environments.
Improved visibility calculations
With the improved VisibilityIndexOperator you can now assign both an observer area and multiple target areas. This makes it possible for you to calculate where to place an observer to see as much as possible of your targets, and where you should be located to avoid being seen. This can aid commanders in their planning, as well as be used in simulation and machine learning applications.
Additional functionality for OGC GeoPackage Files
OGC GeoPackage Metadata Extension
Carmenta Engine now supports parts of the OGC GeoPackage Metadata extension, both for reading and writing. This makes it possible to save the ISO metadata that Carmenta Engine today can handle for datasets directly in the OGC Geopackage, instead of storing it in separate XML files.
OGC GeoPackage WKT for Coordinate Reference Systems Extension
We have added support for the OGC GeoPackage WKT for Coordinate Reference Systems extension, that makes it possible to save projections both in WKT and WKT2 in OGC Geopackage. This improves Carmenta Engines handling of OGC Geopackages from different providers and makes it future proof for new projection definitions.
Community Extension for MVT data in OGC GeoPackage
With this addition to Carmenta Engine we make it possible to read Mapbox Vector Tiles data from OGC GeoPackage files using the Vector Tiles Community Extension. This makes it possible for customers that wants to use vector tiles in other projections than Google Maps Compatible to do so, and this improves accuracy of vector tiles-based maps in, among other things, polar areas.
Bundling of resources
Carmenta Engine can now efficiently read configuration files, geodata and other resources directly from zip-based bundles, without having to unpack them to the local file system. This makes it possible to deploy entire self-contained maps as single files.
In addition to bundling all configuration resources in a zip-based bundle, small resource files, such as raster symbol images, can now be embedded directly into configuration files, so that the original files do not need to be deployed separately.
Catalog Extension enhancements
A single Catalog instance can now load catalog services from multiple locations, including directly from zip-based bundles. This makes it easy to store your geodata and configurations over multiple disks if you wish to. The new class CatalogLoadDataSetSet makes it also possible to use datasets from a Catalog directly in a configuration file, without extra application code.
Using the two enhancements to Catalog Extension together, makes it easy to bundle up geodata and other resources into different geodata packages, that you can copy between different deployed systems, on all supported platforms, without any need to convert data between different formats.
Custom dataset enhancements
When working with custom datasets, you can now supply DataSetInfo information and handle DataSetInfo.FromFile requests, just like for the built-in formats in Carmenta Engine, and OrdinaryLayer now supports dynamic caching of features returned from CustomDataSet implementations for better handling of dynamic data.
Other Notable Improvements
Preload data in TileLayer
TileLayer can now be configured to preload data to reduce the visible tiling artifacts using the new preloadBehavior property.
OGC 3D Tiles support
It is now possible to use OGC 3D Tiles data sets efficiently in GlobeView, if you package them using the new MapPackageModelWriter.
Reading of Mapbox raster
The MapPackageDataSet can now read Mapbox Raster Tiles from .mbtiles files. The MvtDataSet, introduced in Carmenta Engine 5.12 can be used for reading Mapbox Vector Tiles from such files.
Visualization of nautical charts
The S52Visualizer can now remove overlapping labels in the nautical charts.
Additions to Expression syntax
Added several math functions to the expression language, like abs, sqrt, cos, sin, and exp.
Raster cache updates
The raster cache feature has been updated: It now provides better compression, especially for RGB\/RGBA data, and the raster cache is often faster to generate.
Improved handling of database timeouts
The new DatabaseDataSet properties ConnectTimeout and CommandTimeout provide improved control of database timeouts, and the new method DatabaseDataSet.StartConnect allows multiple database datasets to establish their server connections in parallel.
Carmenta Engine 5.14
This release introduces the ability to display georeferenced full motion video streams in 3D GlobeView maps. Additionally, the new volumetric line-of-sight functionality makes it possible to perform airspace coverage calculations.
Other improvements include support for the MIL-STD-2525D and NATO APP-6(D) military symbol standards and the ability to read aeronautical data directly from files in the AIXM format.Read more
Georeferenced Full Motion Video in 3D
The new Camera Projection Overlay makes it possible to display georeferenced full motion video streams in 3D GlobeView maps. This feature complements our existing, battle tested support for handling such video streams in traditional 2D maps.
The high resolution video streams can be draped in real time onto any 3D structures, including detailed 3D city models. Our efficient GPU implementation ensures that the frame rate stays smooth and that the CPU has time for other tasks.
The Line-of-Sight Operator has been extended with the ability to produce viewshed volumes that indicate which parts of its surrounding airspace an observer can see.
The volumes can be visualized in 3D GlobeView maps. They can also be cut through by the Vertical Profile analysis.
Additionally, the new Airspace Coverage Operator can be used to merge a number of such viewshed volumes into a combined volume that represents airspace covered by a sufficient number of observers. The operator can also be used to show the parts of an airspace that lacks sufficient coverage, as in the picture below.
Support for Reading Aeronautical Information Exchange Model (AIXM) Files
The new AIXM Dataset makes it possible to directly connect to aeronautical information in the XML based AIXM 5.1 and 5.1.1 formats that have been jointly developed by EUROCONTROL and FAA.
The picture below shows how information from an AIXM file can directly be visualized in the style of an Enroute Chart.
New API for Creating OGC GeoPackage Files
A new API makes it easier than ever to create and populate files in the standardized OGC GeoPackage format – an optimized, single-file container that is perfect for distribution to mobile devices.
The API supports writing both image pyramids, coverage pyramids and vector data to the GeoPackage, and any Carmenta Engine View, Layer, Operator or DataSet can be used as the data source.
A page from the Carmenta Engine SDK documentation showing one of the GeoPackage code samples.
Support for MIL-STD-2525D and NATO APP-6(D)
The Tactical Extension has been updated to support point symbols from the US MIL-STD-2525D and NATO APP-6(D) symbol standards.
A screenshot from a Carmenta Engine SDK sample application showing MIL-STD-2525D symbology.
Other Notable Improvements
New Feature Animation API on MemoryDataSet
New feature animation methods on MemoryDataSet makes it easy to smoothly move features along a 2D or 3D trajectory.
The API can also be used to animate feature transitions to a new position. This is useful to ensure a smooth behavior even when receiving infrequent position updates.
Automatic Deactivation of Layers with Errors
The new “Disable on Error” functionality makes it possible to automatically deactivate layers that are not operational, e.g. due to unavailable map servers. This allows the rest of the map to continue to operate when such errors occur.
User Defined Color Tables for Radar Video
The Radar Video layer can now visualize the sweep intensity using a user-defined color table. This type of visualization is commonly used for weather radar presentation, as in the picture below.
Carmenta Engine 5.13
This version features Next Generation Terrain Routing, Automatic Detection of Ridges and Valleys, New Mouse and Touch Interactions for Creating and Editing Circular Features, Performance Improvements and much more.Read more
Next Generation Terrain Routing
The Carmenta Engine off road routing functionality has received a major overhaul in this release. Not only have we been able to make the routing calculation significantly faster – we’ve also added several new features.
A major new addition is the possibility to calculate omnidirectional travel times from a specified starting point, resulting in so-called isochrones.
When the vehicle is using the road network, restrictions on vehicle width, height, length and weight can now be taken into account. The routing algorithm has additionally been extended to be able to handle areas that should be avoided but which are not completely forbidden.
It is now also possible to produce a more detailed representation of the calculated route suitable for generating textual driving instructions.
Automatic Detection of Ridges and Valleys
The new RidgeOperator can detect and generate features for ridges, valleys, peaks and basins from elevation data in any source and resolution.
New Mouse and Touch Interactions for Creating and Editing Circular Features
The built-in tools for mouse and touch interaction have been extended with support for creating and editing circles, rings, ellipses, circle segments and related features.
It is easy for the application to control which kinds of objects can be created and which types of interactions should be allowed.
The new release includes a number of different performance improvements applicable both to visualising and analysing data.
The viewshed algorithm used in LineOfSightOperator has been extensively parallelized and is now several times faster.
The DirectX renderer that is used in .NET WPF applications has significantly improved performance when rendering large amounts of similarly styled information such as complex road networks.
The TileLayer component now uses an even more efficient approach to read and render
its map tiles in parallel.
Other Notable Improvements
Support for Non-WMTS Tile Servers
The OgcWmtsLayer component can now be used to load tiles from tile-based map servers that do not implement the OGC WMTS standard, such as OpenStreetMap and Bing Maps.
Automatic Range Circle Generation
The new RangeCircleOperator makes it easy to generate and visualize multiple concentric circles, optionally combined with radial lines at defined directions.
The resulting “bullseyes” can either be centred on objects in the map or positioned relative to the screen.
Metadata according to GéoBase Défense and TopoBase Défense from IGN
Carmenta Engine can now read additional metadata according to the GéoBase Défense and TopoBase Défense standards specified by the French Institut Géographique National (IGN).
The metadata is easily accessible to the application through the existing DataSetInfo API.
New programming sample for NATO STANAG 4609 Full-Motion Video
The Projected Video application sample now includes an implementation of relevant parts of the MISB ST 0601.8 standard that is used in the STANAG 4609 standard for UAV digital motion imagery.
Carmenta Engine 5.12
This version introduces Hardware Accelerated Radar Intensity Displays, a new .NET Core Compatible API, improved support for Thematic Data Sources, more flexible Corridor Generation and much more.Read more
Hardware Accelerated Radar Intensity Displays
The new RadarVideoLayer makes it possible to create radar intensity displays by directly passing in the scan line data. The functionality complements our existing support for high-performance display of radar plots.
We have carefully designed the API to the new functionality to minimize the overhead when passing in scan lines, ensuring that the radar video can be updated in real time without slowing down the application.
The new hardware accelerated radar intensity displays are supported on all platforms (Windows, Linux and Android™).
New .NET Core Compatible API
Carmenta Engine 5.12 introduces a new .NET API that is compatible with .NET Standard 2.0 or later. This makes it possible to target .NET Core, Microsoft’s new, cross-platform .NET implementation. The new API is provided as NuGet packages and is supported on both Windows and Linux.
An included programming sample shows you how to use .NET Core and ASP.NET Core to create a Carmenta Engine powered geospatial micro service.
Improved Support for Thematic Data Sources
It is now possible to access so-called Raster Attribute Tables when reading thematic data such as land use databases.
The tables can contain additional information about the data classes such as human readable class descriptions or average heights for different vegetation classes.
Additionally, the VerticalProfileOperator has been extended with new inputs for thematic raster data and will use it to generate profile lines and polygons that use the same color scheme as the raster.
More Flexible Corridor Generation
The two new operators CorridorOperator2D and CorridorOperator3D simplifies the task of generating corridor geometries around arbitrary lines.
The size, cross section, texturing etc. of the generated corridors is fully configurable.
Other Notable Improvements
MVT and MBTiles Support
The new MvtDataSet component makes it possible to connect directly to web services serving Mapbox Vector Tile (MVT) data.
The new data set can also be used to read local vector tiles data from MBTiles files.
New Formats for 3D Models
The Symbol3D component can now be used to load 3D models directly from the COLLADA, OpenFlight, glTF and OBJ 3D formats.
This eliminates cumbersome model conversion work.
Hardware Accelerated Rendering Improvements
Applications built using WPF, the Windows Presentation Foundation, now benefit from a new rendering engine based on DirectX 11. Among other things, the new renderer improves the support for hardware accelerated effects.
Both the OpenGL and DirectX renderers will now use background threads to transfer information to the graphics card to enable an even more stable frame rate.
Improved OGC WMTS performance
The OgcWmtsLayer component that is used to connect to OGC WMTS web services has significantly improved performance thanks to increased parallelism when loading map tiles.
New Aeronautical Chart Sample
A new map configuration sample shows how easy it is to use Carmenta Engine to create an enroute map presentation directly from ARINC 424 data.
Carmenta Engine 5.11
Carmenta Engine 5.11 adds support for developing Carmenta Engine for Android™ applications in C# using Xamarin technology. It also brings the full 3D visualization and 3D analysis capability to Android devices.
In addition, the new version includes significant improvements in the support for nautical charts, with built-in visualization according to S-52 Presentation Library 4.0 and the NATO AML Portrayal Specification.Read more
3D Maps and 3D Analysis in Carmenta Engine for Android™
Android devices that support OpenGL ES 3.0 now have access to the full Carmenta Engine OpenGL rendering pipeline.
This makes it possible to use 3D GlobeView maps on Android. Hardware accelerated analysis functionality such as Terrain Warning and 3D Line of Sight are also fully supported.
The Carmenta Engine 3D Line of Sight functionality running on an Android phone.
Support for .NET based Android Development using Xamarin
Carmenta Engine 5.11 introduces a new .NET API that is compatible with Xamarin, the cross platform .NET implementation that is freely available in newer versions of Microsoft Visual Studio.
The new API makes it possible to create Carmenta Engine based Android apps using C#. This significantly lowers the Android development threshold for .NET developers who are already familiar with the Carmenta Engine .NET API on Windows.
It also makes it straightforward to re-use code from existing .NET based Carmenta Engine applications in the Android app development.
Working with a Carmenta Engine based Xamarin Forms application in Visual Studio 2017.
Nautical Charts according to S-52 Presentation Library 4.0
The S52Visualizer component, part of the Carmenta Engine Nautical Extension, has been updated to render nautical charts according to the S-52 Presentation Library version 4.0.
The visualizer also has a number of new properties that can be used to control aspects of the visualization, e.g. to increase the amount of details in the chart.
A nautical chart visualized according to S-52 4.0.
Support for the NATO AML Portrayal Specification
Additional Military Layers (AML) is a NATO initiative (STANAG 7170) designed to enhance situational awareness in the marine and littoral environment. Carmenta Engine has had support for S-57 AML data since version 5.6.
The new version brings built-in support for the AML Portrayal Specification which provides a standardized symbology for vector AML datasets.
Other Notable Improvements
Radar Plots in 3D
The PlotLayer component which provides optimized rendering of radar plots and other highly dynamic information can now be used in 3D GlobeView maps.
New Distribution Format for the SDK Documentation
The Carmenta Engine SDK and Carmenta Studio documentation is now distributed in HTML format and displayed in the default web browser. The new format also has improved typography and provides improved searching and indexing functionality.
Drag and Drop Visualization in Carmenta Explorer
It is now possible to drag and drop geodata files and folders to Carmenta Explorer to directly visualize the data.
More Metadata for DTED Files
Metadata fields from the DTED headers, such as accuracy and security classification, can now be retrieved via the DataSetInfo class.
Carmenta Engine 5.10
Carmenta Engine 5.10 adds support for real time visual effects. Use cases range from simple brightness and contrast adjustments to making objects “glow” and improving 3D lightning with ambient occlusion.
The new version also makes it possible to declaratively animate the map visualization for example to create blinking or pulsating objects.Read more
Hardware Accelerated Visual Effects
The pictures below provide three examples of how effects can be used to improve the map presentation: Tactical objects with a halo on top of a desaturated background map, glowing moving aircrafts on top of a GlobeView and a 3D building environment with ambient occlusion lightning.
Effects can be applied on individual map layers and are computed entirely on the GPU.
Three examples of how the new effects can be used to improve the map presentation.
Declarative Animations and Hover Visualizations
It is now possible to declaratively configure animations of colors and double values in all visualizers, as well as to configure visualization that should only be applied to hovered features.
Animations can be configured to run continuously e.g. to create blinking or pulsating objects. They can also be triggered when the selection or hover status is changed.
Refer to the documentation for AnimatedAttributeValue and VisualizationOperator.HoverVisualizers for more information.
A simple example of the new hover and animation visualization. Tactical objects get a halo and grow in size when hovered.
Improved Support for 3D Interaction
StandardTool3D and StandardTouchTool3D can now be used to edit features in a GlobeView, and the new tools CreateTool3D and CreateTouchTool3D make it easy to create new 3D features.
Additionally, the new InteractionVisualizer provides interaction handles for easy manipulation of individual nodes in 3D objects.
InteractionVisualizer providing interaction handles on a 3D airspace.
Dynamic Surface Overlays in 3D
Dynamic objects in a GlobeView can now be rendered onto the ground surface where they will be continuously updated in every frame, separately from the static surface texture.
This functionality makes it easy to visualize the 2D “footprints” of dynamic 3D objects.
Refer to the GlobeView.SurfaceOverlay documentation for more information.
Airspace footprints rendered into the surface texture in a GlobeView.
Other Notable Improvements
Label Placement Improvements
LabelOrganizingLayer can now be used to organize text and symbols in a GlobeView.
Additionally, a number of new features in LabelOrganizingLayer provide improved support for polygon labeling that comes in handy when doing complex airspace visualization.
Tile Cache in GlobeView
GlobeView can now cache loaded tiles on disk to improve loading times when the same tiles are needed at a later time. This can significantly improve the start-up time for complex 3D configurations.
New Color Palettes for Nautical Chars
The S52Visualizer now supports using either the Day, Dusk or Night palette defined in the IHO S-52 standard.
An S-52 chart visualized with different color palettes.
Support for New Android Platforms
Carmenta Engine for Android™ now includes support for 64-bit ARMv8-based CPUs
(arm64-v8a) and 64-bit x86 processors (x8664).
Among other things, this makes it much more convenient to run Carmenta Engine for Android in an emulator on a Windows or Linux development computer.
Carmenta Engine 5.9
The new version of Carmenta Engine provides the ability to perform real time line of sight calculations in detailed 3D city environments. It also makes it easy to present large point data sets as heatmaps.
Other improvements include a new, modern look-and-feel for the developer tools included in the SDK and many improvements to the API documentation.Read more
Line of Sight Analysis in Detailed 3D City Environments
The Carmenta Engine Visibility Analysis Extension has been extended with a component that performs real time line of sight calculations in detailed 3D city environments.
Unlike a traditional DEM-based line of sight analysis, this calculation e.g. makes it possible to discover that a vehicle is visible through an archway. It can also determine that an observer only sees the top three floors of a building.
A screenshot from the new 3D line of sight sample in Carmenta Engine 5.9.
Dynamic Heatmap Presentations
The new DensityDataSet component can be used to quickly calculate the density of large point feature sets.
The point density can be used directly to create heatmap presentations. It can also be used as inputs to other Carmenta Engine operators such as the contour line generation.
Two screenshots from the DensityDataSet API documentation.
Modern Look-and-Feel for Carmenta Explorer and Carmenta Studio
Carmenta Explorer and Carmenta Studio, the developer tools included in Carmenta Engine SDK, have been updated with a new, modern look and feel.
The updated applications also work great on high DPI screens.
The updated SDK applications Carmenta Studio (top) and Carmenta Explorer (bottom).
Other Notable Improvements
TileLayer and other tiling components can now optionally load and render multiple map tiles in parallel. This improves the performance on systems with many CPU cores.
Local cache for OGC WMTS Connections
The OgcWmtsLayer component can now be configured to store downloaded map tiles in a local disk cache for faster subsequent access and to support off-line availability.
The cache is automatically flushed if the WMTS service has changed.
Automatic Change Detection in Web Service Connections
All Carmenta Engine components which connect to OGC web services can now automatically detect when the services have been updated.
New Blend Mode for Map Layers
Map layers can now be configured to use the multiply blend mode. This blend mode can greatly improve the clarity of semi-transparent overlays such as hillshading or line of sight viewsheds.
When using hardware accelerated map rendering, the multiply blend operation is performed entirely by the graphics card.
Improved SDK Documentation
The SDK documentation has been updated with many new code snippets that demonstrate how to use common classes, methods and properties from C#, C++ and Java.
Carmenta Engine 5.8
The new version of Carmenta Engine provides many improvements in the support for 3D maps, as well as an optimized way to georeference and overlay full motion video streams from UAVs or other sources.
Other major improvements include a hardware accelerated terrain warning display and new data exploration features in Carmenta Explorer.Read more
Seamless, Global 3D Maps
The new GlobeView component renders the map on a seamless globe where data is dynamically loaded in the appropriate resolution depending on the position and altitude of the camera.
Other 3D improvements in this version include a much easier way to generate 3D features from 2D geospatial data, such as airspace volumes from 2D airspaces or spheres that indicate the maximum range around threats in a tactical overlay.
A screenshot from the new 3D globe included as a sample configuration in Carmenta Engine 5.8.
Real Time Terrain Warning Display
The new terrain warning component makes it easy to apply a configurable color coded terrain awareness and warning visualization in both 2D and 3D GlobeView maps, e.g. for simulation or rehearsal purposes.
When using hardware accelerated rendering, the terrain warning visualization is performed entirely on the graphics card. This means it can be continuously updated as the aircraft position and altitude changes, with virtually zero impact on the overall performance of the application.
The new terrain warning visualization in action in a 3D GlobeView map.
Georeferenced Full Motion Video
The new CameraProjectOperator can be used to project non-georeferenced imagery such as a video stream onto the ground in real time, based on camera parameters.
The new component has been designed to be easy to integrate with video and metadata streams in any format.
A programming sample is provided that explain how to use georeferencing metadata to overlay a video stream onto the map, this metadata could be extracted from a video stream encoded in accordance with the Motion Imagery Standards Board (MISB) 0601 and NATO STANAG 4609 standards.
A screenshot from the new ProjectedVideo SDK sample, showing a projected video stream playing on top of OpenStreetMap vector data.
Qt Quick Integration
Qt Quick is a modern C++ user interface technology that separates the declarative UI design and the imperative programming logic. The new QtQuickMapControl makes it easy to use Carmenta Engine with full hardware acceleration inside Qt Quick applications.
This further affirms Carmenta Engine as the number one choice for Qt based advanced geospatial applications.
A screenshot from the new Qt Quick “hello world” application
included as a sample in Carmenta Engine 5.8.
Improvements to Carmenta Explorer
In Carmenta Engine 5.8, Carmenta Explorer has gone from a simple map configuration viewer to a data exploration tool.
You can now open geographical data files directly in Carmenta Explorer – you no longer need to start by defining a map configuration file for the data in Carmenta Studio.
Additionally, the properties panel has been updated to make it possible to inspect the properties of loaded DataSets.
It is now also possible to let Carmenta Explorer display utility layers like a low-resolution background map and various map grids together with the loaded map.
A screenshot of the improved Carmenta Explorer application
displaying the “world map” sample configuration.
Other Notable Improvements
Fully Tested on Windows 10
Carmenta Engine 5.8 is the first Carmenta Engine version to be tested and fully supported on Microsoft Windows 10.
Android Studio Support
Carmenta Engine for Android now has full support for the Android Studio development environment. All code samples and tutorials have been updated for Android Studio.
Global Area Reference System (GARS)
Carmenta Engine now supports GARS, the Global Area Reference System defined by NGA. The GarsGridGenerator can be used to display a GARS grid on the map and utility methods makes it easy to work with GARS-formatted strings.
Improved Text Formatting
The TextVisualizer expression syntax has been extended with many new text formatting methods. The new interpolated string functionality provides an efficient way to define
Efficient Rendering of Overlapping Map Layers
Applications that have been configured to use many overlapping, opaque map layers will benefit from a new optimization which can automatically ensure that only the topmost layer is rendered.
C++ Debug Visualization
The Carmenta Engine SDK now includes ‘natvis’ files which provide debug visualization of objects in the C++ API in Visual Studio 2013 and later.
Carmenta Engine 5.7
The new version of Carmenta Engine provides on-the-fly calculation of the terrain and obstacle clearance of flight routes, as well as support for commercial nautical charts in the IHO S-63 format.
Other major improvements include the ability to add full-text indexes to any vector data source to enable fast address and point of interest search and a new aggregation algorithm that can be used to declutter military tactical overlays based on the order of battle (ORBAT).Read more
On-the-fly Terrain and Obstacle Clearance Calculation
The new VerticalClearanceOperator can be used to calculate the clearance of a flight route over terrain and vector obstacles. The high performance calculation is based on the same algorithms as Carmenta Engine’s existing vertical profile calculation, which makes it highly suitable for use in a dynamic scenario such as when interactively planning the route.
The output of the calculation is not only the clearance for each route leg, but also detailed information about the clearance for each obstacle, the highest points in the terrain etc.
This makes it possible to visualize the clearance in a very informative way. An example is provided below.
A route passing over mountainous terrain with various point and area obstacles. VerticalClearanceOperator is used to display terrain and obstacle clearance and to highlight dangerous areas.
IHO S-63 Nautical Chart Support
Carmenta Engine can now read and visualize commercial nautical charts that use the IHO S-63 Data Protection Scheme.
This functionality complements the existing support for reading charts in the unencrypted IHO S-57 format. Both S-57 and S-63 data can be visualized according to the IHO S-52 presentation standard.
A vector based nautical chart visualized by Carmenta Engine according to IHO S-52.
Automatic Aggregation of Hierarchical Data
The new AggregatingLayer can be used to declutter objects in a hierarchical structure, e.g. the ORBAT hierarchy of a tactical scenario. The aggregation can either be fully automatic – based on object overlap – or controlled by the application.
AggregatingLayer can also generate a graph of the hierarchical structure, as well as bounding polygons for each level in the hierarchy. Applications can use these features to further enhance the situational awareness for the end user.
An example of how AggregatingLayer can declutter a tactical overlay based on the ORBAT. With the same tactical situation shown in three different scales, AggregatingLayer automatically displays either individual teams, squads or the entire platoon.
It is now possible to add full-text indexes to any Carmenta Engine vector dataset. This enables virtually instantaneous lookups of features based on free text search strings. Partial queries are supported and the results are ranked according to how well they match the search string.
A common use case for this functionality is to add address search functionality to an application, such as in the example below. But it can for example also be used to provide quick lookup of aeronautical features in an ARINC-424 database based on ICAO and IATA codes.
Carmenta Explorer, the Carmenta Engine map configuration viewer, uses the new full-text search index functionality to empower its “Find Features” user interface.
Native Support for connecting to OGC WFS Map Servers
A Web Feature Service (WFS), provides a way to request vector features from a map server. The interface is standardized by OGC, the Open Geospatial Consortium.
OGC WFS support is now part of the core of Carmenta Engine through the OgcWfsDataSet component. This complements the existing comprehensive support for OGC services in Carmenta Engine – it is also possible to connect to WMS, WMTS and WCS services, as well as to send queries to CSW catalogues.
As a Technical Committee member of the OGC, Carmenta is dedicated to using and promoting open standards. Carmenta Server, our feature-rich map server, also has full support for OGC WFS.
Other Notable Improvements
New API for retrieving Data Source Information
The new DataSetInfo API streamlines the task of retrieving metadata about geospatial data sources on disk and instantiating Carmenta Engine data sets for the sources. It is designed to make it easy to implement a generic “add map” functionality in a Carmenta based application.
Raster Pyramid Functionality for all Data Sources
All Carmenta Engine raster datasets are now able to generate a cache of raster pyramids which speed up access to the data in zoomed-out scales. A cache can optionally also contain the data in its original resolution, which is useful if the data is slow to read in its native format.
Extended Support for MIL-STD-2525C
MIL-STD-2525C is now the new baseline symbology in the Carmenta Engine Tactical Extension, with the addition of full support for tactical graphics (Appendix B).
A MIL-STD-2525C Tactical Overlay in Carmenta Engine
Support for OGC WKT Formatting
Carmenta Engine Geometry instances can now be efficiently serialized to and from OGC WKT, Well-Known Text.
This functionality complements the existing support for OGC WKB (Well-Known Binary) in making it easy to construct spatial SQL statements from Carmenta Engine objects.
Carmenta Engine 5.6
The new version of Carmenta Engine provides a new, highly optimized way to render radar plots and other dynamic information. Other major improvements include support for the new Open Geospatial Consortium GeoPackage standard and a powerful new off‑road routing algorithm for terrain vehicles.Read more
Optimized Radar Plot Rendering
The new PlotLayer component is a new type of map layer designed specifically to render large amounts of simple point objects like radar plots.
Thanks to the highly optimized GPU accelerated rendering, PlotLayer is capable of handling millions of plots which update their positions several times per second.
The screenshot below is from the new “Dynamic Objects” sample application which uses PlotLayer to render the trails of rapidly moving objects.
Terrain Vehicle Routing Functionality
The new TerrainRouteOperator can calculate the optimal route for a terrain vehicle, based on the characteristics of the vehicle.
In addition to the road network, the sophisticated calculation takes the soil strength, roughness and slope of the terrain into account.
The real time route calculation can also avoid forbidden areas like minefields and enemy viewsheds, making it suitable for use as decision support in a Battle Management System.
OGC GeoPackage Support
GeoPackage is an SQLite-based format that efficiently stores and transfers geographic vector features and image tiles. It is standardized by OGC, the Open Geospatial Consortium.
In Carmenta Engine 5.6, the MapPackageDataSet has been updated to support version 1.0 of the GeoPackage specification (12-128r10).
As a Technical Committee member of the OGC, Carmenta is dedicated to using and promoting open standards wherever possible.
Many New Programming Samples
The Carmenta Engine SDK has been extended with a number of new programming samples which are of course provided with full source code.
There are new sample applications that demonstrate how to access the Line of Sight and Vertical Profile functionality, as well as an application which shows you how to handle large numbers of dynamic objects efficiently.
The Java based samples have also been significantly extended: A new, more comprehensive Java based “Basic Map Application” has been added, as well as Java implementations of all the custom object samples.
The screenshots below show two of the new sample applications in action.
Other Notable Improvements
MIL-STD-2525C Support in the Tactical Extension
The Tactical Extension now supports symbols from MIL-STD-2525C (appendix A, D and E).
The new functionality complements the existing support for MIL-STD-2525B and NATO App-6B.
PostgreSQL/PostGIS Database Support
The new PostgreSqlDataSet allows you to natively read spatial data from PostgreSQL/PostGIS databases.
NATO AML Support
AML, Additional Military Layers, is a NATO-endorsed standard designed to enhance situational awareness in the marine and littoral environment.
The S57DataSet now supports reading S-57 AML data versions 2.1 and 3.0.
Improved Interoperability in the OGC CSW Client
The Carmenta Engine Catalog Extension makes it possible to connect to servers that implement the OGC Catalog Service for the Web (CSW) interface.
The interoperability of the CSW client has been improved – it is now possible to connect to many more CSW implementations.
Simplified Color Table Handling
RasterVisualizer can now automatically interpolate between the colors in the color table, avoiding the need to manually specify color ramps. It can also dynamically adjust the color table to the range of the raster values actually occurring in the raster, ensuring that the full color range is always used.
Carmenta Engine 5.5
The new version of Carmenta Engine makes it much easier to configure great looking 3D maps. It also features built-in support for multi-touch interactions and high DPI displays.Read more
Streamlined 3D Configuration
The new GroundLayer3D class greatly simplifies the common use case of draping 2D map layers on top of a mesh generated from elevation data.
The pictures below shows an example GroundLayer3D configuration in Carmenta Studio, along with the resulting map in Carmenta Explorer.
Slope and Aspect Calculation
The new SlopeOperator class makes it trivial to visualize the terrain slope and aspect from any supported elevation data source.
The pictures below show two examples of SlopeOperator output.
Built-in Support for Common Touchscreen Interactions
The new MapControl.TouchTool property gives applications an easy way to control what will happen when the user interacts with the map using a touchscreen.
The StandardTouchTool class provides out-of-the-box support for navigating and editing objects using common multi-touch gestures, while the CreateTouchTool can be used to let users create new objects.
Easily Adapt the Visualization to High DPI Displays
Carmenta Engine Views can now easily be adapted for use on displays with very high pixel density using the new PixelSizeAdjustments class.
The two pictures below shows the same map rendered on a very high resolution display, with and without the pixel size adjustments applied.
Support for New Operating Systems
Just like the Windows version of the SDK, Carmenta Engine for Linux is now available in a 64 bit version. The 64 bit Linux version supports both the Ubuntu, Red Hat and SUSE distributions.
Additionally, Carmenta Engine for Linux is now fully tested on Ubuntu 12.04 LTS.
Other Notable Improvements
Simplified Raster Data Handling
Carmenta Engine 5.5 will in most cases automatically connect, merge and resample raster data when it is needed – it is no longer necessary to manually specify these processing steps to achieve high fidelity visualization and good performance.
Support for 3D Maps in the DirectX Renderer
The DirectX renderer, which is an alternative to the OpenGL renderer for using hardware acceleration on Windows, is now able to render 3D maps. The most important benefit is that this makes it much easier to display 3D maps in WPF applications.
Improved UTM and MGRS Grid Generation
The UtmGridGenerator class now automatically creates a suitable visualization for the MGRS and UTM grids it generates, minimizing the number of steps required to add such grids to Carmenta Engine based applications.
Simplified interface to the Catalog Extension
The Carmenta Engine Catalog Extension gives Carmenta Engine based applications a structured way to handle background maps and associated metadata. A Catalog can be instantiated either from a local folder or from an OGC CSW service.
In Carmenta Engine 5.5, the interface to Catalog Extension has been greatly simplified. Among other things. it is now possible to create Catalog Maps directly from
Multi-language Map Configuration Metadata
Carmenta Studio now supports editing properties such as Layer.DisplayName in multiple languages. A new API makes it easy to retrieve the localized strings in the application.
Carmenta Engine 5.4
The new version of Carmenta Engine brings significantly faster handling of moving objects on top of the map, as well as a new way to package map data for easy distribution.Read more
Map Package Extension
This extension makes it possible to package a mix of images, raster data (for example digital elevation models) and vector data into a single Map Package file.
Pregenerated spatial indexes and built-in low-resolution versions of the raster data ensure very efficient access to the package data. This is especially important for mobile devices where it is essential to minimize the amount of processing necessary to read and display data, but map packages work equally well in desktop and server installations.
Image 1. Exporting a section of a map to a Map Package using Carmenta Explorer
Since they are single, self-contained files, map packages are easy to distribute and install. Packages can be generated from regular Carmenta Engine map configuration files using Carmenta Explorer, and are accessed using the new MapPackageDataSet class.
Carmenta is committed to ensuring that our products implement open standards whenever possible. The map package structure is aligned with the current draft OGC GeoPackage specification.
Optimized Caching of Dynamic Objects
A new mechanism in the OrdinaryLayer class supports efficient, hardware accelerated caching of dynamic features stored in a MemoryDataSet. This feature can drastically improve performance for map layers which contain large numbers of moving objects.
The new mechanism is enabled by setting the OrdinaryLayer.CacheMode property to Dynamic. Refer to the documentation of this property for more information on
how to use it.
Support for New Operating Systems
Carmenta Engine 5.4 is the first Carmenta Engine version that is available for Android™. For more information, refer to the separate document “Introducing Carmenta Engine for Android”, available from carmenta.com.
Carmenta Engine is now also fully tested and supported on Microsoft Windows 8, both 32 and 64 bit versions.
Other Notable Improvements
Sharper Raster Data Rendering with OpenGL and DirectX
Improvements to the visualization of raster data using the hardware accelerated OpenGL and DirectX renderers have resulted in both significantly sharper maps and slightly reduced graphics card texture memory consumption.
Smoother Text Rendering for Moving Map Displays
The new View.RenderingHint property can be used to change the way text labels are drawn in the map. When RenderingHint is set to MovingMap, texts will move more smoothly across the screen since they will not be aligned to the nearest pixel.
Batch scripts for easier deployment of Carmenta Engine Runtime
The Carmenta Engine SDK package now includes batch scripts which can be used to copy all required Carmenta Engine Runtime libraries to an application’s deployment folder. This makes it very easy to create so-called “XCOPY deployments”.
Support for Spherical Formulas for More Projections
Carmenta Engine can now detect and instantiate spherical reference ellipsoids for more types of coordinate reference system definitions. Spherical formulas are often used for meteorological data.