About this release

The 2023.1 release of LuciadCPillar adds a set of tools to enrich your operational view and visualize the data as required for your application domain. New raster, line and point styling options allow you to create the required presentation of your business data. Moreover, LuciadCPillar now also supports the visualization of longitude-latitude grids, and of the Military Grid Reference System (MGRS), including support for parsing and formatting for coordinates in both formats. Note that all new features work on desktop and on Android, and are available via all supported programming languages (C++, C# and Java for Android/Kotlin). This release also includes some format-specific improvements.

luciad portfolio
Figure 1. The Luciad portfolio.

Benefits of the new features

This section provides an overview and introduction of new features that are available in LuciadCPillar 2023.1. The new features are available for all supported platforms and in all programming languages currently offered for LuciadCPillar.

Offer an accurate and rich common operational view

This release brings exciting extra possibilities for styling your feature and raster data. Apply your business-specific symbology and use 3D icons to offer a better understanding of the situation.

Apply any stroke and stroke pattern to your feature data

Figure 2. An illustration of a line stroked with a repeating pattern and with a label as decoration.

The complex stroking capability makes it possible to visualize lines by stroking repeating graphical patterns and decorations along the line. The Complex stroke example figure shows a zigzag line with an arrow and a text decoration. LuciadCPillar offers a new API for this purpose. Using this powerful API, you can visualize a line in virtually any way you want. This also applies to the outline of polygons.

Sample code to get you started

A new sample has been added specifically for the complex strokes capability. In the Complex Strokes sample, you will see various shapes and lines that are stroked using the Complex Stroke API, grouped into themes. You can see how the shape is styled in the sample code.

You can select an object to start editing it. The Complex stroke samples figures show how the patterns dynamically follow the shape while editing.

Desktop complex strokes
Figure 3. The complex strokes sample illustrates various line patterns.
Mobile complex strokes
Figure 4. Also offered on Android.

The Step-by-step guide to complex strokes explains how complex stroking works, and shows how you can build a complicated complex stroke in a sequence of steps. It applies the main complex stroking principles along the way.

Use 3D models as icons, for the representation of static or moving units

You can now use 3D icons encoded as glTF to style points.

You can configure the following aspects of the 3D icon:

  • Orientation

  • Rotation

  • Scale

  • Translation

  • Transparency

Sample code to get you started

The tutorial Visualize glTF data includes example code for a 3D icon painter.

Figure 5. A 3D icon depicting an airplane is used to style a moving track.

There is a new tutorial Visualize glTF data, explaining how to work with 3D models in the glTF data format. This tutorial and an accompanying FAQ can be found under Data Formats: glTF.

Finetune the appearance of your raster layers

Imagery data is typically brought into the operational picture as background or reference data, not to be altered by users. However, depending on the other information in the view, the combined picture can be enhanced by slightly adapting the rendering of the image. With a different contrast or opacity, business data overlaid on the image may be clearer for the human observer. The LuciadCPillar RasterStyle object groups a set of styling settings that allow you to alter contrast, brightness and opacity, and set a modulation color.

Figure 6. Using the new layer control in the LuciadCPillar samples to adapt the opacity of image data.

The layer control in the LuciadCPillar samples has been extended with raster styling UI to illustrate how the raster styling API can be used in an interactive way.


The article Introduction to styling raster data has been extended to reflect the new raster styling options.

Overlay your 2D or 3D view with a grid for improved situational awareness

You can now add grid layers to the map. Grid layers don’t contain actual data. Their purpose is to provide a visual, usually uniform reference that makes it easier to locate data. We included two types of grid layers: the traditional longitude-latitude (lon-lat) grid and the military MGRS grid.

Support for longitude-latitude grids

You can add a lon-lat grid as a separate layer to your map and have control over the styling of the grid lines and the labeling of the lines. Additionally, there is new API to format longitude-latitude coordinates in a readable format.

Sample code to get you started

Most samples in the LuciadCPillar release now display a lon-lat grid by default. We feel it really makes a difference for users to orient themselves on the map!

Figure 7. Illustration of a longitude-latitude grid overlaid on the map.

We added Visualizing a lon-lat grid article that explains how to add a lon-lat grid layer to the map and how to style the grid. The Formatting points locations as coordinates article explains how to format lon-lat coordinates into a human-readable form.

Support for MGRS grids

The MGRS is a NATO geocoordinate standard for locating points on Earth. The MGRS is derived from the Universal Transverse Mercator (UTM) grid system and the Universal Polar Stereographic (UPS) grid system but uses a different labeling convention.

The new feature has two aspects. First, it offers the capability to parse and format coordinates according to the MGRS standard, and second, you can display a MGRS grid layer on a LuciadCPillar map.

Sample code to get you started
MGRS grid
Figure 8. Illustration of an MGRS grid overlaid on the map.
overview level
Figure 9. MGRS grid with a zoom-in overview level

The Military Symbology sample has been extended with an illustration of MGRS grid and MGRS coordinate formatting. The sample shows a coordinate readout where the mouse location is formatted as an MGRS coordinate instead of a latitude-longitude coordinate. The grid lines are labeled, and an overview level is shown at the top of the page when you zoom in to a large detail level.


A new article Working with MGRS has been added to the documentation. It contains information on how to add a grid to the map, visualize an overview label, and how to format coordinates to an MGRS-formatted string.

GeoPackage editing support and persistence API

LuciadCPillar now offers support to edit an existing Geopackage file. It is possible to add, remove and change features.

The new LuciadCPillar persistence API gives you full control over when you persist these changes. This allows you to take the performance impact on your application into consideration. For example, when you are editing a polyline on the map, you most likely want to save the change to the GeoPackage file when you’re done editing. Saving every change, even while you are dragging your finger over your screen to move the polyline around, may be detrimental to the application’s performance, but it is still possible if that is really what you need.


An article on GeoPackage feature editing was added to the documentation, as well as an article on Working with feature models with save support.

Support for .NET standard 2.0

LuciadCPillar has been upgraded to support .NET standard 2.0, which allows you to integrate LuciadCPillar in modern .NET projects. We also increased the minimal Visual Studio version to 2019. If you have any questions or concerns related to this change, please contact Luciad Product Management at product.management.luciad.gsp@hexagon.com.

Product license versioning

Starting from the 2031.1 release, you only need a new product license for a major LuciadCPillar product version.

More specifically, for version 2022.0 and 2022.1, you still need separate licenses. If you use your license file for LuciadCPillar version 2023.0 with LuciadCPillar version 2023.1, it will work. Of course, both product versions must have matching configurations, with an equivalent product name, product tier and options list.

Other improvements

Support .ovr files for GeoTIFF data

.ovr files contain an external pyramid with lower-resolution levels for the accompanying GeoTIFF file. If present, LuciadCPillar will use the information in the .ovr files, offering a smoother rendering. Note that the pyramid information can also be embedded within a GeoTIFF file.

Support for GeoTIFF elevation data

LuciadCPillar now supports elevation data in the GeoTIFF format with the values encoded as 16-bit unsigned integers.