SpiffyChart is a software component (library) which performs the drawing of marine charts to the IMO's S-52 standard (it follows the 2014 version of this standard and so may not exactly match older ECDIS systems). It takes vector charts (S-57 format; we also support charts supplied as S-63) as its input, either loaded locally or fetched from our proprietary API. The output is a chart using the symbology and colours defined in the standard, drawn according to the available screen area. The chart displayed may be made of multiple cells, shows the correct scale and can be panned (moved) and zoomed by the user. The library works cross-platform in a web browser, as part of a desktop application (running on Windows or Linux or MacOSX), or as part of a mobile app (running on iOS, Android or Windows Mobile). SpiffyChart provides an API to select what is displayed and how it is displayed which can be used by any JVM and iOS language and Javascript.

S-52 example

Why marine charts are not like Google Maps

Google maps and other similar "slippy maps", which work in web browsers and in mobile apps, draw the map based on "tiles" which are standardised segments of the world, mostly containing road data. The original version of Google maps did all the map drawing on their servers and only sent completed map tiles to the browser. The latest version of Google Maps sends a mixture of pre-drawn map tiles and "data tiles" to the browser, allowing certain features like roads and points of interest to remain visible during zooming.

A key characteristic of these maps is that the rules which govern how the map is drawn are extremely simple, and they don't vary depending on the "viewport" or area visible to the user. For example, if a map feature appears close to the edge of the map, its label simply crosses the edge of the window and is half-visible (so if you look to the west of London, you may see the letters LOND going off the edge of the screen).

However, this type of simplicity is not allowed by the S-52 charts, and the symbology for many types of feature is dependent on how much of the feature is in the visible area. Whenever the map is moved, it must be redrawn according to exactly what area is visible. This means that standard tiles cannot be pre-drawn on a server and transmitted to all users; every user must have their map drawn specifically for the exact area they are looking at.


Because it works on any kind of platform, SpiffyChart can be used wherever standards-compliant marine charts are needed, for example:

SpiffyChart is available for use within third-party software products under license. For enquiries, please contact licensor@spiffymap.com.


We have a live demo showing SpiffyChart running in your web browser.