FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
kml_generator.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-only
2//
3// Copyright (c) 2025-present FERS Contributors (see AUTHORS.md).
4//
5// See the GNU GPLv2 LICENSE file in the FERS project root for more information.
6
7/**
8 * @file kml_generator.h
9 * @brief KML file generator for geographical visualization of FERS scenarios.
10 */
11
12#pragma once
13
14#include <string>
15
16namespace core
17{
18 class World;
19}
20
21namespace serial
22{
23 /**
24 * @class KmlGenerator
25 * @brief Generates KML files from FERS simulation scenarios for geographical visualization.
26 *
27 * This class generates KML files for geographical visualization of FERS scenarios. It
28 * interprets the simulation coordinates based on the user-specified coordinate system
29 * in the XML file, which can be one of:
30 *
31 * - ENU (East-North-Up): Default. Local Cartesian coordinates (x, y, z) are
32 * treated as meters in an ENU tangent plane centered at a geodetic `<origin>`.
33 *
34 * - UTM (Universal Transverse Mercator): Coordinates (x, y, z) are treated as
35 * easting (m), northing (m), and altitude (m) within a specified UTM zone and
36 * hemisphere.
37 *
38 * - ECEF (Earth-Centered, Earth-Fixed): Coordinates (x, y, z) are treated as
39 * geocentric X, Y, Z values in meters.
40 *
41 * All input coordinates are converted to WGS84 geodetic coordinates (latitude,
42 * longitude, altitude) for the final KML output. The KML is written with
43 * `<altitudeMode>absolute</altitudeMode>`, where altitude is relative to Mean Sea
44 * Level (MSL).
45 */
47 {
48 public:
49 /**
50 * @brief Generates a KML file from a pre-built simulation world.
51 *
52 * @param world The simulation world containing all objects and paths.
53 * @param outputKmlPath The path for the output KML file.
54 * @return True on success, false on failure.
55 */
56 static bool generateKml(const core::World& world, const std::string& outputKmlPath);
57 };
58}
The World class manages the simulator environment.
Definition world.h:38
Generates KML files from FERS simulation scenarios for geographical visualization.
static bool generateKml(const core::World &world, const std::string &outputKmlPath)
Generates a KML file from a pre-built simulation world.