Real-Time Aircraft Track Visualization Using CesiumJS

Cesium 5000 Targets Display

At Manya Technologies, we specialize in building custom GIS solutions that integrate real-time data feeds with rich 3D visualization. One of our powerful implementations includes real-time radar/track display in a CesiumJS 3D globe — ideal for aviation, defense, simulation, and surveillance use cases.


✈️ Problem Statement

Modern applications demand live visualization of moving assets (like aircraft, UAVs, or ground vehicles) on a 3D globe — along with:

  • Accurate positional and orientation updates
  • Animated trail history
  • Dynamic model changes based on classification
  • Smooth, low-latency updates
  • Data-rich tooltips or side panels

💡 Our Solution: CesiumJS + Live Data

Using CesiumJS, we built a robust track rendering module. It fetches or receives track updates (e.g., via WebSocket), and updates the globe in real time. Each track is:

  • Positioned using fromDegrees(lon, lat, alt)
  • Oriented with heading via headingPitchRollQuaternion
  • Animated with SampledPositionProperty for trails
  • Colored by classification
  • Labeled with ID and metadata
  • Optionally replaced by 3D models (e.g., fighter, helicopter, transport)

🔧 Code Highlights

Here’s a quick snapshot of how we add or update a target:

const position = Cesium.Cartesian3.fromDegrees(track.lon, track.lat, track.alt);
const heading = Cesium.Math.toRadians(track.heading || 0);

const orientation = Cesium.Transforms.headingPitchRollQuaternion(
position,
new Cesium.HeadingPitchRoll(heading, 0, 0)
);

viewer.entities.add({
id: track.id,
position,
orientation,
point: {
pixelSize: 6,
color: Cesium.Color.RED,
outlineColor: Cesium.Color.WHITE,
outlineWidth: 1
},
label: {
text: `#${track.id}`,
font: "10pt sans-serif",
fillColor: Cesium.Color.WHITE,
style: Cesium.LabelStyle.FILL_AND_OUTLINE
}
});

We also use trail data (track.trail[]) with timestamps to animate the history of each entity using SampledPositionProperty.


🔄 Dynamic Updates

If the classification or location changes, the entity is updated instead of re-created. This ensures performance even with hundreds or thousands of tracks. Clustering is enabled for lower zoom levels.


📈 Use Cases

  • Radar track display in ATC or defense systems
  • UAV simulation and monitoring
  • Air traffic monitoring dashboards
  • Synthetic training environments
  • PostGIS-synced track playback

🚀 Built on a Modern Stack

Our 3D visualization module is part of a complete stack including:

  • CesiumJS (WebGL globe rendering)
  • Qt/C++ simulation backend
  • PostgreSQL/PostGIS for persistent storage
  • WebSocket-based real-time data delivery
  • Optionally integrated with QGIS for 2D fallback

🔍 Want to See It in Action?

Explore our Live Cesium Aircraft Simulation to see real-time aircraft movement visualized in 3D.

Whether you’re building a mission planning system or a real-time surveillance dashboard — we can help bring your data to life with custom integrations and simulation tools.

📧 business@manyatechnologies.com
🌐 www.manyatechnologies.com

Scroll to Top