LuciadRIA supports several geodetic calculations and the calculation of intersection points. This capability is useful for various applications. For example, you can:

• Calculate the geodetic distance between two points on the map

• Calculate intersection points to find the points where roads cross, or where a trajectory crosses the border of a country

LuciadRIA offers distinct classes for each of the calculation types:

 LuciadRIA also provides support for constructive geometry boolean operations as part of the LuciadRIA component "Advanced GIS Engine". You can use this component to calculate the union, intersection, and difference of shapes in 2D spaces. You need to purchase and install this component before you can make use of its functionality.

## Performing geodetic calculations

Geodetic calculations are calculations performed on georeferenced data.

It supports these main operations:

• `distance`: calculates the distance between two points in meters.

• `forwardAzimuth`: calculates the forward azimuth between two points in degrees.

• `interpolate`: interpolate a point along the line between two other points.

To perform the geodetic calculations, you need to create `Geodesy` objects. The `geodesy` module provides the factory class `GeodesyFactory`.You can use it to create a Cartesian, spherical, or ellipsoidal `Geodesy` object. You use that object to perform the actual geometric calculations.

You must give a geographic reference `CoordinateReference` to the geodesy factory. This reference determines in which spatial reference system the geodesy object performs its calculations.

Program: Calculating distances between two points illustrates how you get a geodesy object from a given reference to perform geodetic calculations on the ellipsoid. It shows how you can calculate the distance between two points.

Program: Calculating distances between two points (from `samples/verticalview/shapeproviders/AirspaceShapeProvider.ts`)
``this.geodesy = createEllipsoidalGeodesy(reference);``

## Performing topology calculations

LuciadRIA supports these geometric operations for a topology on georeferenced data:

• `calculateIntersections`: calculates intersection points between two shapes.

To perform this calculation, you must create `Topology` objects. The `geometry` module offers the factory class `TopologyFactory` for this purpose. You can create Cartesian or ellipsoidal `Topology` objects with it.

You must give a geographic reference `CoordinateReference` to the topology factory.