Skip to main content

ChartX

A TypeScript library for rendering S-57 (ENC) nautical charts using MapLibre GL JS​


ChartX enables high performance rendering of S-57 Electronic Navigational Charts (ENCs) in the browser using optimized vector layers styled according to IHO presentation rules. It is built to deliver smooth and interactive chart visualization even at large scales and high data densities.

βš“ Built for maritime, port, and coastal applications including VTS, ECDIS like viewers and navigation or situational-awareness dashboards that demand reliable and performant chart rendering on the web.

Features​

  • πŸ—ΊοΈ Native rendering of S-57 ENC charts with MapLibre GL JS
  • ⚑ GPU-accelerated rendering using vector layers for maximum performance
  • 🎨 Fully customizable styling, supporting multiple themes and symbology profiles
  • 🧩 Seamless integration with existing MapLibre maps
  • πŸ” Scale-aware visibility with automatic decluttering
  • 🧭 Support for multiple ENC cells and usage bands
  • πŸ”„ Dynamic addition and removal of chart layers at runtime

Requirements​

  • maplibre-gl^5.15.0
info

Requires a compatible version of chartx-server to read, process and serve ENC cells along with required symbology assets.

note

ChartX uses the Noto Sans Regular and Quantico Regular font families for rendering text labels. If you are providing a custom glyphs URL in your MapLibre style, ensure that these font stacks are available on your glyphs server.

tip

You may use the glyphs endpoint provided by chartx-server, which comes prepackaged with the required fonts and works out of the box.