When working with geospatial applications, a common operation is to convert coordinates between screen pixel coordinates and geographical coordinates. This can be useful in various cases, such as displaying the geographical coordinate for the mouse cursor position, working with custom tools for user interaction, editing feature geometries from code, and more.
Category: Carmenta Engine
Custom objects are a flexible plugin mechanism in Carmenta Engine for integrating customized operations in a regular map configuration. More functionality is added in new Carmenta Engine versions to make this integration more seamless compared to the built-in objects. In this guide, we will focus on the custom dataset use case, for retrieving a customized DataSetInfo, and dynamically instantiating the dataset based on a file on disk.
In Carmenta Engine we define data flows by linking operators together. An operator reads features from its input, processes or manipulates those features and pass the result to the next operator. In the typical case, operators are added and configured in a configuration file and calls are managed by the map view without direct user interaction with the operators.
But in some cases a more custom approach is necessary and the application need to access the processed features directly in code. For example, the application may want to display information produced by the operators or an external component (or service) may want to use the result as input. In this article, we will explain how to approach such use-case.
Geographical data and map views are defined in a Coordinate Reference Systems (CRS). There are many different coordinate systems, which can be used for different purposes. It is for example very common to use a Mercator coordinate projection for visualization of worldwide data on a map. In contrast, Mercator is not recommended for calculations or data storage, because of risk for lack of precision, especially near the poles.
An application often needs to handle geodata in different CRSs or visualize it in another CRS than the CRS of the data source. This means that the data needs to be reprojected at some point. These projections can both affect performance and cause a loss of accuracy if they are not performed efficiently.
Carmenta Engine has in-depth support for efficient coordinate transformations. In this article, we will describe how geographical coordinates are generally handled in the Carmenta Engine workflow, as well as go into some more advanced use cases and best practices.
Analyzing visibility within a geographical area is often key for a better understanding of the environment. Line-of-sight coverage analyses are often applied to highly dynamic objects with varied characteristics, such as a set of sweeping security cameras in an urban environment, a soldier with a pair of binoculars, or radar systems and other sensors. This guide will help you configure the visibility operators in Carmenta Engine to tackle your specific use cases and handle dynamic application data.
For an introduction on the different visibility analyses available, you can read the Visibility Analysis article in the Carmenta Engine SDK documentation. For this guide, we will use the LineOfSightOperator in a 2D view to get an easy example, but keep in mind that the behavior of the other visibility operators is the same. There are some additional data inputs that will need configuring, and the results you get are different, but the core concepts of dynamic visibility analysis are the ones presented in the following sections.
Through its tactical extension, Carmenta Engine provides support for visualization and editing of tactical symbols and graphics according to widely used military standards. Currently, the supported standards are MIL-STD-2525 versions B, C and D, as well as NATO App-6 versions B, C and D.
Using a few well-chosen feature attributes, it becomes easy to visualize objects from an already existing dataset as a tactical overlay on a background map. Carmenta Engine’s standard tools have full support for dynamically creating and modifying tactical features directly on the map.
In this article, we will cover the basic layer chain which can be used to display a tactical overlay, as well as how to control the symbol modifiers from Feature attributes.