Maritime & Logistics – EMSA Electronic Nautical Charts mapping services with GeoServer

Project types: Application development
Customer: c-EMSA

European Maritime Safety Agency (EMSA) mission is to serve EU maritime interests for a safe, secure, green and competitive maritime sector and act as a reliable and respected point of reference in the maritime sector in Europe and worldwide. EMSA capitalises on its unique know-how to position itself as an essential player in the maritime cluster in Europe and beyond.  EMSA works on maritime safety, security, climate, environment and single market issues and tasks, first as a service provider to Member States and the Commission, but also as an innovative and reliable partner and knowledge hub for the European maritime cluster and potentially beyond as a reference internationally.

GeoSolutions has been working with EMSA since 2016 in various projects; in this post we are going to briefly cover the the Electronic Nautical Charts (ENC) distribution system which we have developed and we are mantaining which powers most of the maps that EMSA is sharing with its end users through its own portals. EMSA ENC uses OGC protocols via GeoServer for disseminating background maps made with ENC from CMAP ENC SDK data according to the S52 styling to the EMSA Maritime Applications. This system is providing ENCs, using a standard WMS interface, that are used as the base layer on the EMSA Maritime Applications.

GeoServer Layer Preview Serving Nautical Charts from CMAP SDK

The ENC architecture is based on:

  1. a .Net Web Services running on its own Windows server which wraps the CMAP SDK and exposes a proprietary HTTP interface to access underlying SDK capabilities, like rendering, filtering and so on
  2. A GeoServer instance with a custom CMAP datastore which is able to turn OGC requests (WMS, WMTS, WFS and WPS) into something that the CMAP .Net Web Service can understand

With this architecture we can serve OGC compliant maps from CMAP ENC data to maritime applications in order to use them as basemaps.

GeoServer CMAP DataStore for GeoServer

Display Group Management for CMAP layers in GeoServer

A few more details on the work that GeoSolutions performed is provided below:

  • Backup and restore of GeoServer configuration as well as of the .NET wrapper configuration has been implemented with an automatic migration process for the previous configuration was also implemented. This functionaly allows also to port configuration changes from the various environments available at EMSA (STG, PREPROD and PROD).
  • Extensive performance tests were performed using JMeter plan with Jenkins automation.
  • The workflow for publishing ENC maps includes a display page tgat automatically publishes the corresponding layers in GeoServer and create the necessary data stores and layers if needed. It is also possible to validate the published layers with GeoServer layers preview, as shown above.

We also implemented the following capabilities:

  • support for the use of OGC standard resolution in standard WMS requests.
  • support for polar projections both in the .Net CMap Service as well as in the GeoServer EMSA specific module.
  • support for Orthographic projection in the .Net CMap Service.
  • WMTS support in the .Net CMap Service.
  • support for map rotation in the .Net CMap Service.
  • support for UTM projections in the .Net CMap Service.
  • support for Google Mercator (EPSG:4326) in the .Net CMap Service.
  • support for WGS84 (EPSG:4326) in the .Net CMap Service.

We are proud to work with organizations like EMSA in such challenging projects where we actually see our work impacting important use cases and being able to make a difference.

If you are interested in learning about how we can help you achieving your goals with open source products like GeoServerMapStoreGeoNode and GeoNetwork through our Enterprise Support Services Subscription Services or Professional Training Services offer, feel free to contact us!

The GeoSolutions Team,




  • GeoServer