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:
- for chart display within an ECDIS navigation system
- to display available charts within a chart licensing system
- within any application which is intended to be used by experienced mariners, such as SpiffyMap's own LOC8 system, which displays GPS and AIS data via a web browser
SpiffyChart is available for use within third-party software products under license. For enquiries, please contact firstname.lastname@example.org.
We have a live demo showing SpiffyChart running in your web browser.