Vertical View

This sample demonstrates how a map with a Cartesian reference can be used to create a vertical view. The map displays airspaces and aircraft trajectories, while the vertical view shows which airspaces are intersected by the selected trajectory. It also helps identify the locations and altitudes where the aircraft enters and exits those airspaces.

The trajectories are represented by a green polyline in both the regular map and the vertical view. The airspaces are represented by polygons. The airspaces have a minimum and maximum height property. Those heights represent the lower and upper altitude bounds of the airspace.

When you select a trajectory, the vertical view updates to show that specific track. The X-axis represents the distance along the trajectory (0 meter meaning the start of the track) and the Y-axis represents the altitude in FL (flight levels). This allows you to determine the aircraft’s height at any point along its path.

The vertical view also shows the airspaces whose boundaries are crossed by the aircraft, represented as rectangles. The lower and upper height of the rectangle (the Y-coordinates) are determined by the minimum and maximum altitude of the airspace. The X-coordinates indicate where the trajectory enters and exits the airspace. When the aircraft passes below or above an airspace, the polyline in the vertical view runs below or above the corresponding rectangle. When the aircraft enters the airspace, the polyline passes through the corresponding rectangle. Airspaces not intersected by the aircraft are not shown in the vertical view.

Note that the trajectory and airspace layers in the vertical share the same models as their layers on the main map. The conversion from a feature contained in the model to the shape displayed in the vertical view is handled by a ShapeProvider on the FeatureLayer (see the AirspaceShapeProvider and TrajectoryShapeProvider). For more information about the ShapeProvider, see the non-map view documentation.

Because the model is shared between the main map and the vertical view, any updates to the trajectory on the map (right-click → Edit, then double-click to confirm) are immediately reflected in the vertical view.

The layout of the vertical view is created by the @luciad/ria-toolbox-map-borders toolbox, which constructs the main Cartesian map together with the bottom and left border maps configured as axes. For more information on how to use the Map Borders toolbox, see the "How to draw a map with borders" article.

Navigation is supported in the main map, the vertical view, and the border maps. The border maps allow zooming along a single axis without changing the scale of the other axis (non-uniform zooming). Use the mouse wheel on a border to zoom in or out along that axis. Using the mouse wheel inside the Cartesian view scales both axes simultaneously.

Note that airspaces and trajectory control points are drawn on border maps, using dedicated FeaturePainter logic implemented by AirspaceBorderPainter and TrajectoryBorderPainter.